Пример #1
0
        public void WifiList_Get()
        {
            while (true)
            {
                string msg = "";
                // out  格式类似于C 中的 pointer
                string responseString = DigestAuthClient.Request(StaticData.g_strWifiUrl, "GET", out msg);
                if ("".Equals(responseString))
                {
                    StaticUtils.ShowEventMsg("Wifi数据获取失败: " + msg + "\n");
                }
                else
                {
                    JObject jo  = (JObject)JsonConvert.DeserializeObject(responseString);
                    JArray  jar = JArray.Parse(jo["apBasicInfo"].ToString());
                    for (var i = 0; i < jar.Count; i++)
                    {
                        JObject j = JObject.Parse(jar[i].ToString());

                        //发现问题, 管理中心中设备的名称会不定期发生变化;故此处查询条件选用设备唯一 SN
                        string    serialId = j["serialId"].ToString();
                        DataRow[] dr       = StaticData.g_dtWifi.Select("SN='" + serialId + "'");//表格的行

                        // 根据get得到的json 刷新界面
                        //  onlineStatus	:对于Fit AP,0表示不在线,1表示在线。整数(Integer)类型。
                        //  status:设备状态 -1:未管理,0:未知,1:正常,2:警告,3:次要,4:重要,5:严重 。  整数(Integer)类型。
                        if (dr.Length > 0)
                        {
                            switch (Convert.ToInt32(j["onlineStatus"].ToString()))
                            {
                            case 0:
                                dr[0]["在线状态"] = "掉线";
                                break;

                            case 1:
                                dr[0]["在线状态"] = "在线";
                                break;

                            default:
                                dr[0]["在线状态"] = "掉线";
                                break;
                            }
                            switch (Convert.ToInt32(j["status"].ToString()))
                            {
                            case -1:
                                dr[0]["wifi设备状态"] = "未管理";
                                break;

                            case 0:
                                dr[0]["wifi设备状态"] = "未知";
                                break;

                            case 1:
                                dr[0]["wifi设备状态"] = "正常";
                                break;

                            case 2:
                                dr[0]["wifi设备状态"] = "警告";
                                break;

                            case 3:
                                dr[0]["wifi设备状态"] = "次要";
                                break;

                            case 4:
                                dr[0]["wifi设备状态"] = "重要";
                                break;

                            case 5:
                                dr[0]["wifi设备状态"] = "严重";
                                break;

                            default:
                                dr[0]["wifi设备状态"] = "未管理";
                                break;
                            }
                            dr[0]["接入人数"] = j["onlineClientCount"].ToString();
                            dr[0]["时间"]   = DateTime.Now.ToString();

                            //根据GET到的数据更新DB device_wifi
                            updateDbWifi(serialId, dr[0]["在线状态"].ToString(), dr[0]["wifi设备状态"].ToString(), dr[0]["接入人数"].ToString(), dr[0]["时间"].ToString());

                            // 判断wifi 设备是否故障 报警
                            judgeWifiDeviceBreakdown(dr[0]["theone"].ToString());
                        }
                    }
                }
                Thread.Sleep(20 * 1000); // 30s Sleep Time
            }
        }