71 lines
1.8 KiB
Erlang
71 lines
1.8 KiB
Erlang
%%-*- mode: erlang -*-
|
|
%% emqx_sn config mapping
|
|
{mapping, "mqtt.sn.port", "emqx_sn.port", [
|
|
{default, 1884},
|
|
{datatype, [integer, ip]}
|
|
]}.
|
|
|
|
{translation, "emqx_sn.port", fun(Conf) ->
|
|
case cuttlefish:conf_get("mqtt.sn.port", Conf, undefined) of
|
|
Port when is_integer(Port) ->
|
|
{{0,0,0,0}, Port};
|
|
{Ip, Port} ->
|
|
case inet:parse_address(Ip) of
|
|
{ok ,R} -> {R, Port};
|
|
_ -> {Ip, Port}
|
|
end
|
|
end
|
|
end}.
|
|
|
|
{mapping, "mqtt.sn.advertise_duration", "emqx_sn.advertise_duration", [
|
|
{default, "15s"},
|
|
{datatype, {duration, ms}}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.gateway_id", "emqx_sn.gateway_id", [
|
|
{default, 1},
|
|
{datatype, integer}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.username", "emqx_sn.username", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.password", "emqx_sn.password", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.idle_timeout", "emqx_sn.idle_timeout", [
|
|
{default, "30s"},
|
|
{datatype, {duration, ms}}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.enable_stats", "emqx_sn.enable_stats", [
|
|
{datatype, flag}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.enable_qos3", "emqx_sn.enable_qos3", [
|
|
{datatype, flag}
|
|
]}.
|
|
|
|
{mapping, "mqtt.sn.predefined.topic.$id", "emqx_sn.predefined", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_sn.username", fun(Conf) ->
|
|
Username = cuttlefish:conf_get("mqtt.sn.username", Conf),
|
|
list_to_binary(Username)
|
|
end}.
|
|
|
|
{translation, "emqx_sn.password", fun(Conf) ->
|
|
Password = cuttlefish:conf_get("mqtt.sn.password", Conf),
|
|
list_to_binary(Password)
|
|
end}.
|
|
|
|
{translation, "emqx_sn.predefined", fun(Conf) ->
|
|
List = cuttlefish_variable:filter_by_prefix("mqtt.sn.predefined.topic", Conf),
|
|
TopicIdList = lists:sort([{list_to_integer(I), iolist_to_binary(TopicName)}
|
|
|| {["mqtt", "sn", "predefined", "topic", I], TopicName}
|
|
<- List, I =/= "0"])
|
|
end}.
|