private MsGUdp() {
try {
_udp=new UdpClient(1883);
_udp.EnableBroadcast=true;
_udp.BeginReceive(new AsyncCallback(ReceiveCallback), null);
_gates.Insert(0, this);
_advTick=new Timer(SendAdv, null, 4500, 900000);
_nodes=new List<MsDevice>();
IPAddress wla_ip, wlm_ip;
Topic wla_t, wlm_t;
if(Topic.root.Exist("/local/cfg/MQTT-SN.udp/whitelist_addr", out wla_t) && Topic.root.Exist("/local/cfg/MQTT-SN.udp/whitelist_mask", out wlm_t)
&& wla_t.valueType==typeof(string) && wlm_t.valueType==typeof(string)
&& IPAddress.TryParse((wla_t as DVar<string>).value, out wla_ip) && IPAddress.TryParse((wlm_t as DVar<string>).value, out wlm_ip)) {
_wla_arr=wla_ip.GetAddressBytes();
_wlm_arr=wlm_ip.GetAddressBytes();
} else {
_wla_arr=new byte[]{ 0, 0, 0, 0 };
_wlm_arr=_wla_arr;
}
}
catch(Exception ex) {
Log.Error("MsGUdp.ctor() {0}", ex.Message);
}
}
private void ReceiveCallback(IAsyncResult ar) {