예제 #1
0
        //추후 코타나에서 사용할때 이용할 예정
        public static Model.ZigBee.ZigBeeEndPoint GetEndPoint(string target)
        {
            //int id = 0;
            Model.ZigBee.ZigBeeEndPoint endPoint = null;
            using (var db = new IOTOI.Model.Db.Context())
            {
                try
                {
                    //id = (from ep in db.ZigBeeEndPoint
                    //      where (ep.CustomName).ToUpper().Replace(" ", "") == target.ToUpper().Replace(" ", "")
                    //      select ep.Id)
                    //     .FirstOrDefault();
                    endPoint = db.ZigBeeEndPoint
                               .Where(
                        b => b.CustomName != null && b.CustomName.ToUpper().Replace(" ", "").Equals(target.ToUpper().Replace(" ", ""))
                        ).AsNoTracking()
                               .FirstOrDefault();
                }
                catch (Exception e)
                {
                    loggingServices.Write(Log, e.Message, LogLevel.Error, e);
                }
            }

            //return id;

            return(endPoint);
        }
예제 #2
0
        private static bool OnOffToggle(Model.ZigBee.ZigBeeEndPoint endPoint, string commandType)
        {
            bool rtn = false;

            if (ZigBeeAdapter != null)
            {
                rtn = ZigBeeAdapter.OnOffToggle(endPoint.MacAddress, endPoint.EpNum, commandType);
            }
            return(rtn);
        }
예제 #3
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;
            }
            }
        }