private static bool ManagementLeave(Model.ZigBee.ZigBeeEndDevice endDevice) { bool rtn = false; if (ZigBeeAdapter != null) { rtn = ZigBeeAdapter.SendManagementLeave(endDevice.MacAddress); } return(rtn); }
public static void GetReturnData(ValueSet message, ref ValueSet returnData) { string command = message["Command"] as string; switch (command.ToUpper()) { case "ZIGBEESTATUS": { returnData.Add("Result", IsZigBeeStatus); } break; case "DISCOVER": { StartDeviceDiscovery(); returnData.Add("Status", "OK"); } break; case "GETDISCOVERRUNNING": { bool rst = IsRunningDiscoverDevices(); //loggingServices.Write(Log, rst.ToString(), LogLevel.Debug); returnData.Add("Result", rst); returnData.Add("Status", "OK"); } break; case "GETENDDEVICES": { string result = ""; try { result = JsonConvert.SerializeObject(GetEndDevices()); } catch (Exception e) { loggingServices.Write(Log, e.Message, LogLevel.Error, e); } returnData.Add("Result", result); returnData.Add("Status", "OK"); } break; case "SETENDDEVICES": { List <string> result = null; try { result = SetEndDevices(JsonConvert.DeserializeObject <List <ValueSet> >(message["Param"].ToString())); } catch (Exception e) { loggingServices.Write(Log, e.Message, LogLevel.Error, e); } returnData.Add("Result", JsonConvert.SerializeObject(result)); returnData.Add("Status", "OK"); } break; case "ONOFFTOGGLE": { string result = "OnOffToggle Success"; string status = "OK"; Model.ZigBee.ZigBeeEndPoint endPoint = JsonConvert.DeserializeObject <Model.ZigBee.ZigBeeEndPoint>(message["endPoint"].ToString()); if (endPoint != null) { if (!OnOffToggle(endPoint, "OnOffToggle")) { result = "Failed to On/Off Toggle"; status = "NG"; } } else { result = "EndPoint is Null"; status = "NG"; } returnData.Add("Result", result); returnData.Add("Status", status); } break; case "PLUGPOWERON": { string result = "Power On Success"; string status = "OK"; Model.ZigBee.ZigBeeEndPoint endPoint = JsonConvert.DeserializeObject <Model.ZigBee.ZigBeeEndPoint>(message["endPoint"].ToString()); if (endPoint != null) { if (!OnOffToggle(endPoint, "PowerOn")) { result = "Failed to Power On"; status = "NG"; } } else { result = "EndPoint is Null"; status = "NG"; } returnData.Add("Result", result); returnData.Add("Status", status); } break; case "PLUGPOWEROFF": { string result = "Power Off Success"; string status = "OK"; Model.ZigBee.ZigBeeEndPoint endPoint = JsonConvert.DeserializeObject <Model.ZigBee.ZigBeeEndPoint>(message["endPoint"].ToString()); if (endPoint != null) { if (!OnOffToggle(endPoint, "PowerOff")) { result = "Failed to Power Off"; status = "NG"; } } else { result = "EndPoint is Null"; status = "NG"; } returnData.Add("Result", result); returnData.Add("Status", status); } break; case "MANAGEMENTLEAVE": { string result = "Management Leave Success"; string status = "OK"; Model.ZigBee.ZigBeeEndDevice endDevice = JsonConvert.DeserializeObject <Model.ZigBee.ZigBeeEndDevice>(message["endDevice"].ToString()); if (endDevice != null) { if (!ManagementLeave(endDevice)) { result = "Failed to Management Leave"; status = "NG"; } } else { result = "EndDevice is Null"; status = "NG"; } returnData.Add("Result", result); returnData.Add("Status", status); } break; default: { returnData.Add("Status", "Fail: unknown command"); break; } } }