Ejemplo n.º 1
0
        private static bool ManagementLeave(Model.ZigBee.ZigBeeEndDevice endDevice)
        {
            bool rtn = false;

            if (ZigBeeAdapter != null)
            {
                rtn = ZigBeeAdapter.SendManagementLeave(endDevice.MacAddress);
            }
            return(rtn);
        }
Ejemplo n.º 2
0
        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;
            }
            }
        }