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