Exemplo n.º 1
0
        public static void CrapTable()
        {
            var content = _httpHleper.GetString(tableUrl, "UTF-8");

            string directorPath = AppDomain.CurrentDomain.BaseDirectory + fileFoldName;

            Directory.CreateDirectory(directorPath);

            string path = directorPath + tableFileName + ".txt";

            FileReadWriteHelper.WriteFile(content, path);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取心知天气
        /// </summary>
        /// <param name="city">城市</param>
        /// <returns></returns>
        private WeatherInfo GetSeniverseWeather(string city)
        {
            if (string.IsNullOrEmpty(city))
            {
                return(null);
            }
            WeatherInfo weatherInfo = new WeatherInfo()
            {
                results = new List <WeatherResult>()
            };

            try
            {
                string requestUrl = "https://api.seniverse.com/v3/weather/now.json?";
                string param      = $"key={apikey}&location={city}&language={language}&unit=c";
                requestUrl += param;
                string response         = HttpClientHelper.Get(requestUrl);
                var    seniverseWeather = SerializeHelper.SerializeJsonToObject <SeniverseWeather>(response);
                if (seniverseWeather == null)
                {
                    return(null);
                }
                if (seniverseWeather.results == null || seniverseWeather.results.Length <= 0)
                {
                    return(null);
                }
                foreach (var item in seniverseWeather.results)
                {
                    WeatherResult weatherResult = new WeatherResult();
                    weatherResult.country         = item.location.country;
                    weatherResult.id              = item.location.id;
                    weatherResult.name            = item.location.name;
                    weatherResult.path            = item.location.path;
                    weatherResult.timezone        = item.location.timezone;
                    weatherResult.timezone_offset = item.location.timezone_offset;
                    weatherResult.last_update     = item.last_update;
                    weatherResult.text            = item.now.text;
                    weatherResult.temperature     = item.now.temperature + "℃";
                    string code  = item.now.code;
                    byte[] bytes = FileReadWriteHelper.ReadBytesFromBitmap(GetBitmap(code));
                    weatherResult.icon = Base64Helper.Encoding(bytes);
                    weatherInfo.results.Add(weatherResult);
                }
            }
            catch (System.Exception ex)
            {
                LogHelper.WriteError(ex);
            }
            return(weatherInfo);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取Jirengu天气(备用查询天气方案(地级市也可查询))
        /// </summary>
        /// <param name="city">城市</param>
        /// <returns></returns>
        private WeatherInfo GetJirenguWeather(string city)
        {
            if (string.IsNullOrEmpty(city))
            {
                return(null);
            }
            WeatherInfo weatherInfo = new WeatherInfo()
            {
                results = new List <WeatherResult>()
            };

            try
            {
                string requestUrl     = $"http://api.jirengu.com/getWeather.php?city={city}";
                string response       = HttpClientHelper.Get(requestUrl);
                var    jirenguWeather = SerializeHelper.SerializeJsonToObject <JirenguWeather>(response);
                if (jirenguWeather == null)
                {
                    return(null);
                }
                if (jirenguWeather.results == null || jirenguWeather.results.Length <= 0)
                {
                    return(null);
                }
                foreach (var item in jirenguWeather.results)
                {
                    int           i             = 0;
                    WeatherResult weatherResult = new WeatherResult();
                    weatherResult.path = item.currentCity;
                    weatherResult.text = item.weather_data[i].weather;

                    string tempStr     = item.weather_data[i].date;
                    Regex  reg         = new Regex(@"实时:(.+)℃\)");
                    Match  match       = reg.Match(tempStr);
                    string temperature = match.Groups[1].Value;
                    weatherResult.temperature = temperature + "℃";
                    string code  = GetWeatherCode(item.weather_data[i].weather);
                    byte[] bytes = FileReadWriteHelper.ReadBytesFromBitmap(GetBitmap(code));
                    weatherResult.icon = Base64Helper.Encoding(bytes);
                    weatherInfo.results.Add(weatherResult);
                    i++;
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex);
            }
            return(weatherInfo);
        }
Exemplo n.º 4
0
        public static void ParseTable()
        {
            string directorPath = AppDomain.CurrentDomain.BaseDirectory + fileFoldName;
            string path         = directorPath + tableFileName + ".txt";
            var    content      = FileReadWriteHelper.ReadFile(path);

            //抓取到表格数据
            var ScopeRegex = new Regex(tableRegex);

            //获取内容
            var searchMatchData = ScopeRegex.Matches(content);

            var targetTable = searchMatchData[0].Value;

            StringBuilder sb = new StringBuilder();

            sb.Append("<html><body>");
            sb.Append(targetTable);
            sb.Append("</body></html>");

            //使用HtmlAgilityPack加载table
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(sb.ToString());

            string outpath = directorPath + tableFileName + targetTabletxt;

            StreamWriter sw = new StreamWriter(outpath, false, Encoding.Default);


            foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
            {
                Console.WriteLine("Found: " + table.Id);
                foreach (HtmlNode row in table.SelectNodes("tr"))
                {
                    Console.WriteLine("row");
                    foreach (HtmlNode cell in row.SelectNodes("th|td"))
                    {
                        string text = cell.InnerText;
                        Console.WriteLine("cell: " + cell.InnerText);

                        if (cell.SelectNodes("a") != null)
                        {
                            var ahtml = cell.SelectNodes("a").FirstOrDefault();

                            if (ahtml != null)
                            {
                                if (ahtml.HasAttributes)
                                {
                                    var url = ahtml.Attributes["href"].Value;
                                    text += ':' + url;
                                }
                            }
                        }


                        // 输出到文件
                        sw.Write(text + " , ");
                        sw.Write("");
                    }
                    sw.WriteLine("\n");
                }
            }
            sw.Close();

            //抓取TR数据
            //var trRegexs = new Regex(trRegex);
            //var trsCollection = trRegexs.Matches(targetTable);
            //foreach (Match item in trsCollection)
            //{

            //}
        }
Exemplo n.º 5
0
 public ServerControl()
 {
     faceList = new List <FaceInfo>()
     {
         new FaceInfo()
         {
             type = "black", filename = "101.jpg", name = "101", sex = "w", serialnumber = 101, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\123.jpg"))
         },
         new FaceInfo()
         {
             type = "white", filename = "102.jpg", name = "102", sex = "m", serialnumber = 102, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\124.jpg"))
         },
         new FaceInfo()
         {
             type = "black", filename = "103.jpg", name = "103", sex = "m", serialnumber = 103, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\125.jpg"))
         },
         new FaceInfo()
         {
             type = "white", filename = "104.jpg", name = "104", sex = "w", serialnumber = 104, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\126.jpg"))
         },
         new FaceInfo()
         {
             type = "black", filename = "105.jpg", name = "105", sex = "m", serialnumber = 105, idnumber = "101", imagebytes = Convert.ToBase64String(FileReadWriteHelper.ReadBytesFromFile(@"D:\Test\127.jpg"))
         }
     };
     AutoSetBlackBodyPoint();
 }
Exemplo n.º 6
0
        public async Task OnSessionDataReceived(AsyncTcpServerSession session, byte[] data, int offset, int count)
        {
            if (data == null || data.Length <= 0)
            {
                return;
            }
            byte code = data[0];                      //功能码

            byte[] bytes = new byte[data.Length - 1]; //正文数据
            Array.Copy(data, 1, bytes, 0, bytes.Length);
            string unBase64txt = Encoding.UTF8.GetString(bytes);

            byte[] unBase64Bytes = Convert.FromBase64String(unBase64txt);   //bas64解码
            if (!code.Equals(CODE_HEARTBEAT))
            {
                Console.WriteLine($"功能码:{code.ToString()},数据{Encoding.UTF8.GetString(unBase64Bytes)}");
            }
            try
            {
                switch (code)
                {
                case CODE_FACEUPLOAD:       //名单上传
                {
                    string     upLoadFaceStr = Encoding.UTF8.GetString(unBase64Bytes);
                    UpLoadFace upLoadFace    = SerializeHelper.SerializeJsonToObject <UpLoadFace>(upLoadFaceStr);
                    byte[]     imgBytes      = Convert.FromBase64String(upLoadFace.imagebytes);
                    FileReadWriteHelper.WriteBytesToFile($@"D:\Test\{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.jpg", imgBytes);          //保存图片

                    ServerControl.GetInstance().faceList.Add(new FaceInfo()
                        {
                            filename     = upLoadFace.filename,
                            idnumber     = upLoadFace.idnumber,
                            imagebytes   = upLoadFace.imagebytes,
                            name         = upLoadFace.name,
                            sex          = upLoadFace.sex,
                            serialnumber = upLoadFace.serialnumber,
                            type         = upLoadFace.type
                        });
                    ServerControl.GetInstance().ServerSendMsg(CODE_FACEUPLOAD, new byte[] { SUCCESS });
                    Console.WriteLine($"名单上传成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!");
                    break;
                }

                case CODE_FACESELECT:       //名单查询
                {
                    SelectFace selectFace = new SelectFace();
                    switch (unBase64Bytes[0])
                    {
                    case WHITEFACE:
                        selectFace.faceList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).ToList();
                        break;

                    case BLACKFACE:
                        selectFace.faceList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList();
                        break;

                    case ALLFACE:
                        selectFace.faceList = ServerControl.GetInstance().faceList;
                        break;
                    }
                    string jsonStr = SerializeHelper.SerializeObjectToJson(selectFace);
                    byte[] tBytes  = Encoding.UTF8.GetBytes(jsonStr);
                    ServerControl.GetInstance().ServerSendMsg(CODE_FACESELECT, tBytes);
                    Console.WriteLine($"名单查询成功,一共查到{selectFace.faceList.Count}个名单!");
                    break;
                }

                case CODE_FACEDELETE:       //名单删除
                {
                    string     deleteFaceStr = Encoding.UTF8.GetString(unBase64Bytes);
                    DeleteFace deleteFace    = SerializeHelper.SerializeJsonToObject <DeleteFace>(deleteFaceStr);

                    var dFace = ServerControl.GetInstance().faceList.Where(p => p.type.Equals(deleteFace.type) && p.serialnumber.Equals(deleteFace.serialnumber)).First();
                    ServerControl.GetInstance().faceList.Remove(dFace);

                    ServerControl.GetInstance().ServerSendMsg(CODE_FACEDELETE, new byte[] { SUCCESS });
                    Console.WriteLine($"名单删除成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!");
                    break;
                }

                case CODE_FACECLEAR:        //名单清除
                {
                    List <FaceInfo> clList = new List <FaceInfo>();
                    switch (unBase64Bytes[0])
                    {
                    case WHITEFACE:
                        clList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList();
                        break;

                    case BLACKFACE:
                        clList = ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).ToList();
                        break;

                    case ALLFACE:
                        clList = ServerControl.GetInstance().faceList;
                        break;
                    }
                    foreach (var item in clList)
                    {
                        ServerControl.GetInstance().faceList.Remove(item);
                    }

                    ServerControl.GetInstance().ServerSendMsg(CODE_FACECLEAR, new byte[] { SUCCESS });
                    Console.WriteLine($"名单清除成功,列表还有白名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("white")).Count()}个,和名单{ServerControl.GetInstance().faceList.Where(p => p.type.Equals("black")).Count()}个!");
                    break;
                }

                case CODE_FACCONTRAST:        //人脸对比
                {
                    switch (unBase64Bytes[0])
                    {
                    case START:
                        ServerControl.GetInstance().ServerSendMsg(CODE_FACCONTRAST, new byte[] { SUCCESS });
                        IsSend = false;
                        Console.WriteLine("启动人脸对比成功,抓图中。。。");
                        SendImg();
                        break;

                    case STOP:
                        ServerControl.GetInstance().ServerSendMsg(CODE_FACCONTRAST, new byte[] { STOPSUCCESS });
                        IsSend = false;
                        Console.WriteLine("关闭人脸对比成功!");
                        break;
                    }
                    break;
                }

                case CODE_FOLLOW:       //跟随
                {
                    switch (unBase64Bytes[0])
                    {
                    case START:
                        ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { SUCCESS });
                        Console.WriteLine("启动跟随成功!");
                        break;

                    case STOP:
                        ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { STOPSUCCESS });
                        Console.WriteLine("关闭跟随成功!");
                        break;

                    case RESTART:
                        ServerControl.GetInstance().ServerSendMsg(CODE_FOLLOW, new byte[] { RESTARTSUCCESS });
                        Console.WriteLine("重新跟随成功!");
                        break;
                    }
                    break;
                }

                case CODE_GETPOINT:     //获取黑体坐标
                {
                    BlackBodyPoint blackBodyPoint = new BlackBodyPoint()
                    {
                        xpoint = 55,
                        ypoint = 105
                    };
                    string jsonStr = SerializeHelper.SerializeObjectToJson(blackBodyPoint);
                    byte[] body    = Encoding.UTF8.GetBytes(jsonStr);
                    ServerControl.GetInstance().ServerSendMsg(CODE_SETPOINT, body);
                    Console.WriteLine("校准黑体坐标成功!");
                    break;
                }

                case CODE_FACEIDENTIFY:     //人脸识别
                    break;

                case CODE_FACEALARM:        //人脸报警
                    break;

                case CODE_HEARTBEAT:        //心跳
                    break;
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex);
                Console.WriteLine($"解析接收数据异常:{ex.ToString()}");
            }
        }