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)); } }
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); }