Esempio n. 1
0
        private async Task GatewayDiscovered(DiscoverGatewayRsp response)
        {
            var sids = JsonConvert.DeserializeObject <string[]>(response.data);

            Interlocked.Add(ref _awaitedDevices, 1 + sids.Length);


            _tokenKeeper.SetTokenForGateway(response.sid, response.token);
            _devicesMap.SetGatewayDevices(response.sid, sids);

            await _communication.ExecuteCommand(new DiscoverDeviceCmd(response.sid));

            foreach (string sid in sids)
            {
                await _communication.ExecuteCommand(new DiscoverDeviceCmd(sid));
            }
        }
Esempio n. 2
0
        public ICommandResponse ParseCommand(string commandString)
        {
            if (commandString.Contains("get_id_list_ack"))
            {
                DiscoverGatewayRsp resp = JsonConvert.DeserializeObject <DiscoverGatewayRsp>(commandString);
                return(resp);
            }
            else if (commandString.Contains("read_ack") || commandString.Contains("write_ack"))
            {
                DiscoverDeviceRsp resp = JsonConvert.DeserializeObject <DiscoverDeviceRsp>(commandString);
                return(resp);
            }
            else if (commandString.Contains("heartbeat"))
            {
                HeartBeatRsp resp = JsonConvert.DeserializeObject <HeartBeatRsp>(commandString);
                return(resp);
            }

            return(null);
        }