From cff323bc39fa4dfe59ba59f4365d579533c30f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=BD=87=E9=98=B3?= Date: Thu, 30 May 2024 06:54:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AD=BE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CPF_Cef/Common/COMUtils.cs | 34 +-- CPF_Cef/Common/ChunkedUpload.cs | 121 ++++++--- CPF_Cef/Devices/Fingerprint.cs | 30 +-- CPF_Cef/Devices/IDCard.cs | 105 +++++--- CPF_Cef/Devices/LhtCF.cs | 88 +++--- CPF_Cef/Devices/PrintPJ.cs | 6 +- CPF_Cef/FrmMain.cs | 6 +- CPF_Cef/MainModel.cs | 463 ++++++++++++++++++-------------- CPF_Cef/Parame.cs | 2 + CPF_Cef/Ramark.txt | 3 + CPF_Cef/Results.cs | 19 ++ 11 files changed, 518 insertions(+), 359 deletions(-) create mode 100644 CPF_Cef/Results.cs diff --git a/CPF_Cef/Common/COMUtils.cs b/CPF_Cef/Common/COMUtils.cs index d60a9e7..d7829cb 100644 --- a/CPF_Cef/Common/COMUtils.cs +++ b/CPF_Cef/Common/COMUtils.cs @@ -49,7 +49,7 @@ namespace AKSWebBrowser.Common if (!string.IsNullOrEmpty(parm)) { ml = "/dev/" + parm; - //Log.Info("输出结果:" + ml); + //// Log.Info("输出结果:" + ml); //给管理权限 LinuxCmd(ml); //打开串口 @@ -73,21 +73,21 @@ namespace AKSWebBrowser.Common timer.Elapsed += OnTimedEvent; timer.AutoReset = true;//重复执行 timer.Enabled = true;//启动定时器 - //Log.Info("浏览器COM服务启动成功"); + //// Log.Info("浏览器COM服务启动成功"); } else { - //Log.Info("串口类型不匹配"); + //// Log.Info("串口类型不匹配"); } } else { - //Log.Info("当前设备没有串口设备"); + //// Log.Info("当前设备没有串口设备"); } } catch (Exception ex) { - //Log.Info("服务启动异常ex: " + ex.Message + ""); + //// Log.Info("服务启动异常ex: " + ex.Message + ""); } } @@ -121,7 +121,7 @@ namespace AKSWebBrowser.Common } catch (Exception ex) { - //Log.Info("接受数据数据异常: " + ex.Message + ""); + //// Log.Info("接受数据数据异常: " + ex.Message + ""); jsonstr = MainModel.str2Base64("{\"callback\":\"" + this.callback + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "接受数据数据超时:" + ex.Message + "\"}"); // CShaseBJavaScript(jsonstr); } @@ -139,7 +139,7 @@ namespace AKSWebBrowser.Common } catch (Exception ex) { - //Log.Info("定时任务打开串口异常: " + ex.Message + ""); + //// Log.Info("定时任务打开串口异常: " + ex.Message + ""); } } @@ -155,7 +155,7 @@ namespace AKSWebBrowser.Common jsonstr = string.Empty; //写入数据并以换行符结束 serialPort.WriteLine(data); - //Log.Info("发送数据成功: " + data + ""); + //// Log.Info("发送数据成功: " + data + ""); while (string.IsNullOrEmpty(jsonstr)) { Task.Delay(10).Wait(); @@ -171,7 +171,7 @@ namespace AKSWebBrowser.Common jsonstr = string.Empty; //写入数据并以换行符结束 serialPort.WriteLine(data); - //Log.Info("发送数据成功: " + data + ""); + //// Log.Info("发送数据成功: " + data + ""); while (string.IsNullOrEmpty(jsonstr)) { Task.Delay(10).Wait(); @@ -181,7 +181,7 @@ namespace AKSWebBrowser.Common { jsontemp = string.Empty; jsonstr = string.Empty; - //Log.Info("发送数据失败"); + //// Log.Info("发送数据失败"); jsonstr = MainModel.str2Base64("{\"callback\":\"" + this.callback + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "串口未打开" + "\"}"); //CShaseBJavaScript(jsonstr); } @@ -191,7 +191,7 @@ namespace AKSWebBrowser.Common { jsontemp = string.Empty; jsonstr = string.Empty; - //Log.Info("发送数据异常3: " + ex.Message + ""); + //// Log.Info("发送数据异常3: " + ex.Message + ""); jsonstr = MainModel.str2Base64("{\"callback\":\"" + this.callback + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "发送数据异常:" + ex.Message + "\"}"); //CShaseBJavaScript(jsonstr); } @@ -251,19 +251,19 @@ namespace AKSWebBrowser.Common Task.Run(async () => { param = MainModel.Base64str2(param); - //Log.Info("返回数据:" + param); + //// Log.Info("返回数据:" + param); JObject jo = (JObject)JsonConvert.DeserializeObject(param); bool fieldExists = jo.ContainsKey("callback"); if (fieldExists) { string callback = jo["callback"].ToString(); - //Log.Info("回调js方法:" + callback); + //// Log.Info("回调js方法:" + callback); string _parm = callback + "('" + param + "')"; await Parame.webBrowser.ExecuteJavaScript(_parm); } else { - //Log.Info("回调js方法为空"); + //// Log.Info("回调js方法为空"); } }); } @@ -272,7 +272,7 @@ namespace AKSWebBrowser.Common public void LinuxCmd(string command) { command = $"echo 'aks@123456' sudo -S chmod 777 {command}"; - //Log.Info("执行命令:" + command); + //// Log.Info("执行命令:" + command); // 启动进程 var process = new Process { @@ -290,8 +290,8 @@ namespace AKSWebBrowser.Common string output = process.StandardOutput.ReadToEnd(); string error = process.StandardError.ReadToEnd(); process.WaitForExit(); - //Log.Info("执行命令结果返回:" + output); - //Log.Info("执行命令错误结果返回:" + error); + //// Log.Info("执行命令结果返回:" + output); + //// Log.Info("执行命令错误结果返回:" + error); } //执行命令返回数组 diff --git a/CPF_Cef/Common/ChunkedUpload.cs b/CPF_Cef/Common/ChunkedUpload.cs index a84d4f2..50e225a 100644 --- a/CPF_Cef/Common/ChunkedUpload.cs +++ b/CPF_Cef/Common/ChunkedUpload.cs @@ -14,6 +14,10 @@ using System.Collections; using System.Net.NetworkInformation; using AKS.EnterpriseLibrary.WebBrowser; using System.Globalization; +using CPF; +using CPF.Windows; +using static System.Net.Mime.MediaTypeNames; +using System.Text.RegularExpressions; namespace AksWebBrowser.Common { @@ -49,7 +53,7 @@ namespace AksWebBrowser.Common fileStream.Dispose(); ret = responseString; JObject jo = (JObject)JsonConvert.DeserializeObject(ret); - Log.Error("上传文件返回:" + ret); + Log.Info("上传文件返回:" + ret); if (Convert.ToBoolean(jo["IsSucceed"].ToString()) == true) { string result = jo["result"].ToString(); @@ -69,6 +73,41 @@ namespace AksWebBrowser.Common public async Task getReq(string query) { string ret = string.Empty; + ret = await NewMethod(query, ret); + if (query.Contains("getFrame")) + { + string img = string.Empty; + int num = 0; + while (string.IsNullOrEmpty(img) && num < 5) + { + JObject jo = (JObject)JsonConvert.DeserializeObject(ret); + if (jo["returnCode"].ToString() == "0") + { + string data = jo["data"].ToString(); + JObject jo1 = (JObject)JsonConvert.DeserializeObject(data); + //Log.Info("img" + num + (jo1["img"].ToString())); + if (string.IsNullOrEmpty(jo1["img"].ToString())) + { + ret = await NewMethod(query, ret); + } + else + { + img = jo1["img"].ToString(); + num = 6; + } + } + else + { + ret = await NewMethod(query, ret); + } + num++; + } + } + return ret; + } + + private static async Task NewMethod(string query, string ret) + { using (var httpClient = new HttpClient()) { // 构建带参数的请求URI @@ -90,6 +129,7 @@ namespace AksWebBrowser.Common //Log.Error(" get请求: " + e.Message); } } + return ret; } @@ -124,32 +164,19 @@ namespace AksWebBrowser.Common //读取parameters数据 string parameters = jo3["parameters"].ToString(); JObject jo4 = (JObject)JsonConvert.DeserializeObject(parameters); - //读取签字base64 - string sign_pic = jo4["sign_pic"].ToString(); - string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - string dirpath = Utils.getSystemPaht() + @"/wwwroot/FileTxt"; + string sign_pic_path = jo4["sign_pic_path"].ToString(); + + string dirpath = Utils.getSystemPaht() + @"/wwwroot/SignFile"; if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); } - var tempFile = dirpath + "/" + time + ".txt"; - using (StreamWriter sw = new StreamWriter(tempFile)) - { - sw.Write(sign_pic); - sw.Close(); - sw.Dispose(); - } - string base64 = ""; - string[] lines = File.ReadAllLines(tempFile); - foreach (string line in lines) - { - base64 = base64 + line; - } - File.Delete(tempFile); - //读取签字版主动回复数据 - //"data:image/png;base64, " + - //Log.Info("读取签字版主动回复数据" + base64); - return "{\"keycode\":\"" + code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"png\",\"data\":\"" + base64 + "\"}"; + var tempFile = dirpath + "/sign.jpg"; + string command = $"convert {sign_pic_path} -quality 10 {tempFile}"; + MainModel.ShllCommad(command); + byte[] byteArray = File.ReadAllBytes(tempFile); + string base64String = Convert.ToBase64String(byteArray); + return "{\"keycode\":\"" + code + "\",\"message\":\"success\",\"code\":200,\"status\":true,\"suffix\":\"jpg\",\"data\":\"" + base64String + "\"}"; } else { @@ -191,7 +218,7 @@ namespace AksWebBrowser.Common { var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, Parame.signUrl); - var content = new StringContent("{\r\n \"command\": \"tts\",\r\n \"command_num\": 201,\r\n \"data\": {\r\n \"operation\": \"text_to_wav\",\r\n \"operation_code\": 1,\r\n \"parameters\": {\r\n \"data_type\": 1,\r\n \"tts_text\": \""+ tts_text + "\"\r\n }\r\n }\r\n }", null, "application/json"); + var content = new StringContent("{\r\n \"command\": \"tts\",\r\n \"command_num\": 201,\r\n \"data\": {\r\n \"operation\": \"text_to_wav\",\r\n \"operation_code\": 1,\r\n \"parameters\": {\r\n \"data_type\": 1,\r\n \"tts_text\": \"" + tts_text + "\"\r\n }\r\n }\r\n }", null, "application/json"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); @@ -199,7 +226,7 @@ namespace AksWebBrowser.Common { // 读取响应内容 string body = await response.Content.ReadAsStringAsync(); - Log.Info("文字转语音:" + body); + // Log.Info("文字转语音:" + body); JObject jo = (JObject)JsonConvert.DeserializeObject(body); string ret = jo["ret_info"].ToString(); JObject jo2 = (JObject)JsonConvert.DeserializeObject(ret); @@ -252,7 +279,7 @@ namespace AksWebBrowser.Common { // 读取响应内容 string body = await response.Content.ReadAsStringAsync(); - Log.Info("获取指纹:" + body); + // Log.Info("获取指纹:" + body); JObject jo = (JObject)JsonConvert.DeserializeObject(body); string ret = jo["ret_info"].ToString(); JObject jo2 = (JObject)JsonConvert.DeserializeObject(ret); @@ -296,16 +323,16 @@ namespace AksWebBrowser.Common } /// - /// 录音与停止 + /// 读取身份证 /// /// - public async Task PostRecord(string type, int typeCode, string path) + public async Task OpenGetIdcard(string type, int typeCode) { try { var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, Parame.signUrl); - var content = new StringContent("{\r\n \"command\": \"tts\",\r\n \"command_num\": 201,\r\n \"data\": {\r\n \"operation\": \"" + type + "\",\r\n \"operation_code\": " + typeCode + ",\r\n \"parameters\": {\r\n \"data_type\": 1,\r\n \" tts_text\": \"" + path + "\"}\r\n }\r\n}", null, "application/json"); + var content = new StringContent("{\r\n \"command\": \"idcard\",\r\n \"command_num\": 141,\r\n \"data\": {\r\n \"operation\": \"open\",\r\n \"operation_code\": 1,\r\n \"parameters\": {\r\n }\r\n }\r\n}", null, "text/plain"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); @@ -313,16 +340,42 @@ namespace AksWebBrowser.Common { // 读取响应内容 string body = await response.Content.ReadAsStringAsync(); - - Log.Info("录音与停止:" + body); JObject jo = (JObject)JsonConvert.DeserializeObject(body); string ret = jo["ret_info"].ToString(); JObject jo2 = (JObject)JsonConvert.DeserializeObject(ret); if (jo2["code"].ToString() == "0") { - //读取data数据 - string details = jo["details"].ToString(); - return details; + //读取指纹 + if (typeCode == 1) + { + //读取data数据 + string data = jo["data"].ToString(); + JObject jo3 = (JObject)JsonConvert.DeserializeObject(data); + //读取parameters数据 + string parameters = jo3["parameters"].ToString(); + JObject jo4 = (JObject)JsonConvert.DeserializeObject(parameters); + IDCardModel iDCardModel = new IDCardModel(); + iDCardModel.Name = jo4["cn_name"].ToString(); + iDCardModel.Sex = jo4["sex"].ToString(); + iDCardModel.Nation = jo4["nation"].ToString(); + iDCardModel.BirthDay = jo4["birth_date"].ToString(); + iDCardModel.Addr = jo4["address"].ToString(); + iDCardModel.Id = jo4["idcard_number"].ToString(); + iDCardModel.Regorg = jo4["deparment"].ToString(); + iDCardModel.StartDate = jo4["validity_begin"].ToString(); + iDCardModel.EndDate = jo4["balidity_end"].ToString(); + iDCardModel.ImageBase64 = "data:image/jpg;base64," + jo4["face_data"].ToString(); + var OBJ = new + { + Data = iDCardModel + }; + return JsonConvert.SerializeObject(OBJ); ; + } + else + { + //关闭 + return "200"; + } } else { diff --git a/CPF_Cef/Devices/Fingerprint.cs b/CPF_Cef/Devices/Fingerprint.cs index 0489c96..6be2d88 100644 --- a/CPF_Cef/Devices/Fingerprint.cs +++ b/CPF_Cef/Devices/Fingerprint.cs @@ -32,28 +32,28 @@ namespace AksWebBrowser.Devices init = LibFingerprint.LIVESCAN_Init(); if (init == 1) { - // Log.Info("初始化指纹成功"); + // // Log.Info("初始化指纹成功"); td = LibFingerprint.LIVESCAN_GetChannelCount(); if (td > 0) { - // Log.Info("获得采集器通道数量成功"); + // // Log.Info("获得采集器通道数量成功"); int pnBright = 254; int status = LibFingerprint.LIVESCAN_GetBright(td, ref pnBright); - // Log.Info(" 获得采集器当前的亮度:" + status); - // Log.Info(" 获得采集器当前的亮度:" + pnBright); + // // Log.Info(" 获得采集器当前的亮度:" + status); + // // Log.Info(" 获得采集器当前的亮度:" + pnBright); int pnContrast = 254; status = LibFingerprint.LIVESCAN_GetContrast(td, ref pnContrast); - // Log.Info(" 获得采集器当前对比度:" + status); - // Log.Info(" 获得采集器当前对比度:" + pnBright); + // // Log.Info(" 获得采集器当前对比度:" + status); + // // Log.Info(" 获得采集器当前对比度:" + pnBright); int pnWidth = 0, pnHeight = 0; status = LibFingerprint.LIVESCAN_GetMaxImageSize(td, ref pnWidth, ref pnHeight); - // Log.Info(" 获得采集器采集图像的宽度、高度的最大值:" + status); - // Log.Info(" 获得采集器采集图像的宽度、高度的最大值:" + pnWidth + "*" + pnHeight); + // // Log.Info(" 获得采集器采集图像的宽度、高度的最大值:" + status); + // // Log.Info(" 获得采集器采集图像的宽度、高度的最大值:" + pnWidth + "*" + pnHeight); byte[] pszDesc = new byte[1024]; status = LibFingerprint.LIVESCAN_GetDesc(pszDesc); - // Log.Info("获得接口规范的说明:" + status); - // Log.Info("获得接口规范的说明返回数据:" + Encoding.UTF8.GetString(pszDesc)); + // // Log.Info("获得接口规范的说明:" + status); + // // Log.Info("获得接口规范的说明返回数据:" + Encoding.UTF8.GetString(pszDesc)); MessageBox.Show("转变采集"); @@ -66,7 +66,7 @@ namespace AksWebBrowser.Devices } else { - // Log.Info("获得采集器通道数量失败"); + // // Log.Info("获得采集器通道数量失败"); } Task.Run(() => { @@ -75,7 +75,7 @@ namespace AksWebBrowser.Devices } else { - // Log.Info("初始化指纹失败,错误代码:" + init); + // // Log.Info("初始化指纹失败,错误代码:" + init); } } catch (Exception ex) @@ -104,10 +104,10 @@ namespace AksWebBrowser.Devices //status = LibFingerprint.LIVESCAN_GetFPBmpData(td, Encoding.UTF8.GetBytes(FileName)); if (status == 1) { - // Log.Info("采集一帧图像:" + Encoding.UTF8.GetString(pRawData)); - // Log.Info("获取指纹成功"); + // // Log.Info("采集一帧图像:" + Encoding.UTF8.GetString(pRawData)); + // // Log.Info("获取指纹成功"); timer.Stop(); - // Log.Info("停止采集"); + // // Log.Info("停止采集"); } LibFingerprint.LIVESCAN_EndCapture(td); } diff --git a/CPF_Cef/Devices/IDCard.cs b/CPF_Cef/Devices/IDCard.cs index 31c93d2..56f8773 100644 --- a/CPF_Cef/Devices/IDCard.cs +++ b/CPF_Cef/Devices/IDCard.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; +using System.Net.NetworkInformation; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Text; @@ -40,6 +41,21 @@ namespace AksWebBrowser.Devices { try { + if (icdev <= 0) + { + int num = 5; + while (num < 5) + { + num++; + //打开设备 + icdev = LibClass.ICReaderOpenUsbByFD(0); + if (icdev > 0) + { + num = 6; + } + } + } + Log.Info("icdev" + icdev); if (icdev > 0) { IDCardModel iDCardModel = new IDCardModel(); @@ -52,38 +68,35 @@ namespace AksWebBrowser.Devices byte[] PHMsg = new byte[1032]; byte[] FPMsg = new byte[1032]; int cLen = 0, pLen = 0, fLen = 0; - status = LibClass.ReadIDCardBaseMsg(Convert.ToInt32(icdev), 1, CHMsg, ref cLen, PHMsg, ref pLen, FPMsg, ref fLen); - if (status == 0) + string restus = string.Empty; + string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + string dirpath = Utils.getSystemPaht() + @"/wwwroot/Face"; + if (!Directory.Exists(dirpath)) { - //生成base64 - byte[] FileName = new byte[65536]; - status = LibClass.ParseIDCardPic(PHMsg, 1024, 3, FileName); - - string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - string dirpath = Utils.getSystemPaht() + @"/wwwroot/Face"; - if (!Directory.Exists(dirpath)) - { - Directory.CreateDirectory(dirpath); - } - Log.Info(dirpath); - var tempFile = dirpath + "/face.bmp"; - //生成图片 - LibClass.ParseIDCardPic(PHMsg, 1024, 2, Encoding.Default.GetBytes(tempFile)); - //文件生成base64 - byte[] byteArray = File.ReadAllBytes(tempFile); - string base64String = Convert.ToBase64String(byteArray); + Directory.CreateDirectory(dirpath); + } + // Log.Info(dirpath); + var tempFile = dirpath + "/faceA.jpg"; + int num = 0; + bool isSu = false; + while (num < 5) + { + Task.Delay(500).Wait(); + num++; + status = LibClass.ReadIDCardBaseMsg(Convert.ToInt32(icdev), 1, CHMsg, ref cLen, PHMsg, ref pLen, FPMsg, ref fLen); + Log.Info("读取原始数据"+status); if (status == 0) { - string txt = Encoding.UTF8.GetString(FileName); - iDCardModel.ImageBase64 = "data:image/jpg;base64," + txt.Substring(0, (txt.IndexOf("=") + 1)); - ////开启人脸比对 - //LhtCF lht = new LhtCF(); - //string stat = lht.LhtCFFace(code, tempFile); - if (true)//(stat == "100") + //生成图片 + LibClass.ParseIDCardPic(PHMsg, 1024, 4, Encoding.Default.GetBytes(tempFile)); + Log.Info("生成图片" + status); + if (status == 0) { + //生成文字 byte[] sCHMsg = new byte[520]; int itype = 0; status = LibClass.ParseIDCardInfo(CHMsg, cLen, ref itype, sCHMsg); + Log.Info("生成文字" + status); if (status == 0) { string[] baseinfo = Encoding.UTF8.GetString(sCHMsg).Split("|"); @@ -96,28 +109,38 @@ namespace AksWebBrowser.Devices iDCardModel.Regorg = baseinfo[6]; iDCardModel.StartDate = baseinfo[7]; iDCardModel.EndDate = baseinfo[8]; + num = 6; + isSu = true; } - var OBJ = new - { - Data = iDCardModel - }; - //关闭 - LibClass.ICReaderClose(icdev); - return "{\"keycode\":\"" + code + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":" + JsonConvert.SerializeObject(OBJ) + "}"; } - else + } + } + if (isSu) + { + //开启人脸比对 + LhtCF lht = new LhtCF(); + string stat = lht.LhtCFFace(code, tempFile); + if (stat == "100") + { + //文件生成base64 + byte[] byteArray = File.ReadAllBytes(tempFile); + string base64String = Convert.ToBase64String(byteArray); + // Log.Info(base64String); + string txt = base64String; + iDCardModel.ImageBase64 = "data:image/jpg;base64," + txt; + var OBJ = new { - //关闭 - LibClass.ICReaderClose(icdev); - return "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "身份证持有者非本人!" + "\"}"; - - } + Data = iDCardModel + }; + //关闭 + LibClass.ICReaderClose(icdev); + return "{\"keycode\":\"" + code + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":" + JsonConvert.SerializeObject(OBJ) + "}"; } else { //关闭 LibClass.ICReaderClose(icdev); - return "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "读取身份证失败" + "\"}"; + return "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "身份证持有者非本人!" + "\"}"; } } else @@ -131,12 +154,12 @@ namespace AksWebBrowser.Devices { //关闭 LibClass.ICReaderClose(icdev); - return "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "读取身份证失败" + "\"}"; + return "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "读取身份证失败3" + "\"}"; } } catch (Exception ex) { - // Log.Info("获取身份证异常:" + ex.Message); + // // Log.Info("获取身份证异常:" + ex.Message); if (icdev != -1) { LibClass.ICReaderClose(icdev); diff --git a/CPF_Cef/Devices/LhtCF.cs b/CPF_Cef/Devices/LhtCF.cs index 3e273a1..bfef208 100644 --- a/CPF_Cef/Devices/LhtCF.cs +++ b/CPF_Cef/Devices/LhtCF.cs @@ -18,7 +18,8 @@ namespace AksWebBrowser.Devices { public class LhtCF { - public static string pathfile = string.Empty; + public string pathfile = string.Empty; + public string tempFile = string.Empty; libLhtCFs.DetectCallBack pDetectCallBack = null; private delegate int DetectCallBackDelegate(int nResultID); public LhtCF() @@ -45,6 +46,13 @@ namespace AksWebBrowser.Devices status = libLhtCFs.CF_OpenCamera(); if (status == 0) { + string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); + string dirpath = Utils.getSystemPaht() + @"/wwwroot/Face"; + if (!Directory.Exists(dirpath)) + { + Directory.CreateDirectory(dirpath); + } + tempFile = dirpath + "/faceB.jpg"; Task.Run(() => { status = libLhtCFs.CF_CreatWindow(0, 0, 300, 800, 600, 500); @@ -54,16 +62,49 @@ namespace AksWebBrowser.Devices } }); @event6.WaitOne(); + if (string.IsNullOrEmpty(tempFile)) + { + hdStatus = -1; + } + else + { + byte[] faceA = Encoding.Default.GetBytes(pathfile); + byte[] faceB = Encoding.Default.GetBytes(tempFile); + int score = 0; + hdStatus = libLhtCFs.CF_FaceCompare(faceA, faceB, ref score); + if (score > 60 && hdStatus == 0) + { + hdStatus = 100; + } + else + { + hdStatus = -1; + } + } status = hdStatus; - Log.Info("人脸比对结果:" + status); + // Log.Info("人脸比对结果:" + status); + //停止活体检测 + //libLhtCFs.CF_StopLiveDetect(); + //关闭视频预览窗口 + libLhtCFs.CF_CloseWindow(0); + //关闭摄像头 + libLhtCFs.CF_CloseCamera(); + //反初始化 + //libLhtCFs.CF_Uninit(); } } } catch (Exception ex) { + //停止活体检测 + //libLhtCFs.CF_StopLiveDetect(); + //关闭视频预览窗口 + libLhtCFs.CF_CloseWindow(0); + //关闭摄像头 + libLhtCFs.CF_CloseCamera(); //反初始化 - libLhtCFs.CF_Uninit(); - Log.Info("双目摄像头采集人脸异常:" + ex.Message); + //libLhtCFs.CF_Uninit(); + // Log.Info("双目摄像头采集人脸异常:" + ex.Message); } return status.ToString(); } @@ -76,46 +117,15 @@ namespace AksWebBrowser.Devices { try { - string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); - string dirpath = Utils.getSystemPaht() + @"/wwwroot/Face"; - if (!Directory.Exists(dirpath)) - { - Directory.CreateDirectory(dirpath); - } - var tempFile = dirpath + "/" + time + ".jpg"; - hdStatus = libLhtCFs.CF_GetImage(0, Encoding.Default.GetBytes(tempFile)); - byte[] faceA = File.ReadAllBytes(pathfile); - byte[] faceB = File.ReadAllBytes(tempFile); - int score = 0; - hdStatus = libLhtCFs.CF_FaceCompare(faceA, faceB, ref score); - if (score > 60 && hdStatus == 0) - { - hdStatus = nResultID; - } - else + hdStatus = libLhtCFs.CF_GetImage(2, Encoding.Default.GetBytes(tempFile)); + if (hdStatus != 0) { - hdStatus = -1; + tempFile = string.Empty; } - ////停止活体检测 - //libLhtCFs.CF_StopLiveDetect(); - ////关闭视频预览窗口 - //libLhtCFs.CF_CloseWindow(0); - ////关闭摄像头 - //libLhtCFs.CF_CloseCamera(); - //反初始化 - libLhtCFs.CF_Uninit(); } catch (Exception ex) { - ////停止活体检测 - //libLhtCFs.CF_StopLiveDetect(); - ////关闭视频预览窗口 - //libLhtCFs.CF_CloseWindow(0); - ////关闭摄像头 - //libLhtCFs.CF_CloseCamera(); - //反初始化 - libLhtCFs.CF_Uninit(); - Log.Info("检测回调函数异常:" + ex.Message); + tempFile = string.Empty; } @event6.Set(); } diff --git a/CPF_Cef/Devices/PrintPJ.cs b/CPF_Cef/Devices/PrintPJ.cs index 71b1035..c3a617c 100644 --- a/CPF_Cef/Devices/PrintPJ.cs +++ b/CPF_Cef/Devices/PrintPJ.cs @@ -134,17 +134,17 @@ namespace AksWebBrowser.Devices m_iInit = LibPrint.SetDevname(3,"", 0); if (m_iInit == 0) { - // Log.Info("热敏打印机已连接"); + // // Log.Info("热敏打印机已连接"); //初始化打印机 m_iInit = LibPrint.SetInit(); if (m_iInit == 0) { - // Log.Info("初始化成功"); + // // Log.Info("初始化成功"); LibPrint.SetCommandmode(3); } else { - // Log.Info("初始化失败"); + // // Log.Info("初始化失败"); } } } diff --git a/CPF_Cef/FrmMain.cs b/CPF_Cef/FrmMain.cs index 7e74b42..3852ed2 100644 --- a/CPF_Cef/FrmMain.cs +++ b/CPF_Cef/FrmMain.cs @@ -152,7 +152,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { try { - // Log.Info("定时任务执行时间: " + DateTime.Now); + // // Log.Info("定时任务执行时间: " + DateTime.Now); string file = System.IO.Directory.GetCurrentDirectory(); file = file + @"/wwwroot"; // 这里添加你的任务代码 @@ -248,13 +248,13 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - //Log.Info("未获取授权"); + //// Log.Info("未获取授权"); //Utils.MessagesBox("未获取授权"); } } else { - //Log.Info("未获取授权"); + //// Log.Info("未获取授权"); //Utils.MessagesBox("未获取授权"); } } diff --git a/CPF_Cef/MainModel.cs b/CPF_Cef/MainModel.cs index 46ecc3d..673d549 100644 --- a/CPF_Cef/MainModel.cs +++ b/CPF_Cef/MainModel.cs @@ -2,6 +2,7 @@ using AksWebBrowser.Common; using AksWebBrowser.Devices; using AKSWebBrowser.Commen; +using CPF; using CPF.Cef; using CPF.Shapes; using CPF.Windows; @@ -9,6 +10,7 @@ using Fleck; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; +using System.Buffers.Text; using System.Collections; using System.Collections.Generic; using System.Diagnostics; @@ -35,158 +37,164 @@ namespace AKS.EnterpriseLibrary.WebBrowser //初始化网络连接 public static void DeviceControllerInit() { - List lit = new List(); - var server = new WebSocketServer("ws://0.0.0.0:19983"); - server.Start(socket => + try { - socket.OnOpen = () => - { - string result = "{\"keycode\":\"" + "" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"连接成功\"}"; - socket.Send(result); - }; - socket.OnClose = () => + List lit = new List(); + var server = new WebSocketServer("ws://0.0.0.0:19983"); + server.Start(socket => { - string result = "{\"keycode\":\"" + "" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"连接关闭\"}"; - socket.Send(result); - }; - socket.OnMessage = message => - { - string content = message; - //读取参数 - if (content != "ping" && !string.IsNullOrEmpty(content)) + Parame.socket = socket; + socket.OnOpen = () => { - //返回内容 - string result = string.Empty; - content = Base64str2(content); - Log.Error("收到请求:" + socket.ConnectionInfo.ClientIpAddress + " 请求参数:" + content); - if (!string.IsNullOrEmpty(content)) + string result = "{\"keycode\":\"" + "" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"连接成功\"}"; + socket.Send(result); + }; + socket.OnClose = () => + { + string result = "{\"keycode\":\"" + "" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"连接关闭\"}"; + socket.Send(result); + }; + socket.OnMessage = message => + { + string content = message; + //读取参数 + if (content != "ping" && !string.IsNullOrEmpty(content)) { - try + //返回内容 + string result = string.Empty; + content = Base64str2(content); + // Log.Info("收到请求:" + socket.ConnectionInfo.ClientIpAddress + " 请求参数:" + content); + if (!string.IsNullOrEmpty(content)) { - var json = content.ConvertToAnonymousType(new - { - code = default(string) - }); - if (json != null) + try { - //接收指令和参数 - string keycode = json.code; - switch (keycode) + var json = content.ConvertToAnonymousType(new + { + code = default(string) + }); + if (json != null) { - //aks100101 - //读取身份证卡号 {"code":"aks100101"} - case "aks100101": - result = IDCardRead(keycode); - break; - //aks100102 - //打印排队票据 {"code":"aks100102","ph":"100101","ddrs":"中国检察","qrcode":"90087100100124433002","ywmc":"信访"} - case "aks100102": - result = SendByPrint(content); - break; - //aks100103 - //文字语音播报 - //播放:{ "code":"aks100103","text":"你好!","ispaye":false}, - //停止播放:{ "code":"aks100104","text":"","ispaye":true} - case "aks100103": - result = payleText(content); - Log.Info("文字语音播报返回:" + result); - break; - //aks100104 - //打开高拍仪并且进行快速扫描文件 {"code":"aks100104"} - case "aks100104": - result = openCamera(keycode); - break; - //aks100105 - //打开签字版 {"code":"aks100105"} - case "aks100105": - result = OpenSign(content); - Log.Info("签字版数据返回:" + result); - break; - //aks100112 - //关闭签字版 {"code":"aks100112"} - case "aks100112": - result = CloseSign(keycode); - break; - //aks100106 - //指纹 {"code":"aks100106"} - case "aks100106": - result = ReadFingerData(keycode); - break; - //aks100107 开始录音、取消录音、结束录音 - // 开始录音:{ "code":"aks100107","url":"","isopen":true} - // 取消录音: { "code":"aks100107","url":"","isopen":false} - // 结束录音: { "code":"aks100107","url":"http://127.0.0.1/Upload","isopen":false} - case "aks100107": - result = SoundRecording(content); - Log.Info("开始录音、取消录音、结束录音返回:" + result); - break; - //aks100108 - //根据文件地址在线打印 { "code":"aks100108","url":"http://127.0.0.1/test.doc","ext":"doc"} - case "aks100108": - result = PrintFile(content); - break; - //aks100109 - //根据文件base64打印(PDF) { "code":"aks100109","base64":"ADFJLAKSDJFLKASJF...","ext":"pdf"} - case "aks100109": - result = PrintBase64(content); - //result = "{\"keycode\":\"" + "aks100109" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"Base64打印保留原方式\"}"; - break; - //aks100110 - //播放音频文件 { "code":"aks100110","url":"http://127.0.0.1/test.wav","ispaye":false} - //停止播放音频文件 { "code":"aks100110","url":"","ispaye":true} - case "aks100110": - result = PalyFile(content); - break; - //aks100111 唤醒键盘 {"code":"aks100111"} - case "aks100111": - result = openKey(keycode); - break; - //aks100113 - //读取指纹 {"code":"aks100113","isclose":false} - //关闭指纹 {"code":"aks100113","isclose":true} - case "aks100113": - result = ReadFingerData(content); - Log.Info("指纹返回:" + result); - break; - default: - result = "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"无效指令\"}"; - break; + //接收指令和参数 + string keycode = json.code; + switch (keycode) + { + //aks100101 + //读取身份证卡号 {"code":"aks100101"} + case "aks100101": + result = IDCardRead(keycode); + //Log.Info("读取身份证卡号" + result); + //result = "{\"keycode\":\"aks100101\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":{\"Data\":{\"Name\":\"谢洪基\",\"Sex\":\"男\",\"Nation_Code\":null,\"Nation\":\"汉\",\"Id\":\"510125199702062315\",\"BirthDay\":\"19970206\",\"Addr\":\"成都市新都区马家镇升庵村11组\",\"Regorg\":\"成都市公安局新都分局\",\"StartDate\":\"20171027\",\"EndDate\":\"20271027\",\"Reserv\":null,\"WltFileName\":null,\"BmpFilePath\":null,\"Status\":null,\"ImageBase64\":\"data:image/jpg;base64,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\"}}}"; + break; + //aks100102 + //打印排队票据 {"code":"aks100102","ph":"100101","ddrs":"中国检察","qrcode":"90087100100124433002","ywmc":"信访"} + case "aks100102": + result = SendByPrint(content); + break; + //aks100103 + //文字语音播报 + //播放:{ "code":"aks100103","text":"你好!","ispaye":false}, + //停止播放:{ "code":"aks100104","text":"","ispaye":true} + case "aks100103": + result = payleText(content); + //Log.Info("文字语音播报返回:" + result); + break; + //aks100104 + //打开高拍仪并且进行快速扫描文件 {"code":"aks100104"} + case "aks100104": + result = openCamera(keycode); + //Log.Info("打开高拍仪并且进行快速扫描文件返回:" + result); + break; + //aks100105 + //打开签字版 {"code":"aks100105"} + case "aks100105": + result = OpenSign(content); + break; + //aks100112 + //关闭签字版 {"code":"aks100112"} + case "aks100112": + result = CloseSign(keycode); + break; + //aks100106 + //读取指纹 {"code":"aks100106","isclose":false} + case "aks100106": + result = ReadFingerData(content); + Log.Info("读取指纹" + result); + break; + //aks100107 开始录音、取消录音、结束录音 + // 开始录音:{ "code":"aks100107","url":"","isopen":true} + // 取消录音: { "code":"aks100107","url":"","isopen":false} + // 结束录音: { "code":"aks100107","url":"http://127.0.0.1/Upload","isopen":false} + case "aks100107": + result = SoundRecording(content); + //// Log.Info("开始录音、取消录音、结束录音返回:" + result); + break; + //aks100108 + //根据文件地址在线打印 { "code":"aks100108","url":"http://127.0.0.1/test.doc","ext":"doc"} + case "aks100108": + result = PrintFile(content); + break; + //aks100109 + //根据文件base64打印(PDF) { "code":"aks100109","base64":"ADFJLAKSDJFLKASJF...","ext":"pdf"} + case "aks100109": + result = PrintBase64(content); + //result = "{\"keycode\":\"" + "aks100109" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"Base64打印保留原方式\"}"; + break; + //aks100110 + //播放音频文件 { "code":"aks100110","url":"http://127.0.0.1/test.wav","ispaye":false} + //停止播放音频文件 { "code":"aks100110","url":"","ispaye":true} + case "aks100110": + result = PalyFile(content); + break; + //aks100111 唤醒键盘 {"code":"aks100111"} + case "aks100111": + result = openKey(keycode); + break; + default: + result = "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"无效指令\"}"; + break; + } + } + else + { + result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"参数解析错误\"}"; } } - else - { - result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"参数解析错误\"}"; - } + catch { result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"参数解析错误\"}"; } + finally { } } - catch { result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"参数解析错误\"}"; } + else + { + result = "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"无效指令\"}"; + } + try + { + + //Log.Info("答复请求者:" + result); + //答复请求者(处理完请求后在些答复) + //byte[] bytes = SerializeContent(result); + socket.Send(result); + } + catch { result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"返回参数失败\"}"; } finally { } } - else + //监听心跳并且回复客户端“已ping作为关键字” + else if (content == "ping") { - result = "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"无效指令\"}"; + string result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"收到客户端心跳\"}"; + socket.Send(result); } - try + else { - //答复请求者(处理完请求后在些答复) - byte[] bytes = SerializeContent(result); + string result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"收到客户端心跳\"}"; socket.Send(result); } - catch { result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"400\",\"status\":true,\"data\":\"返回参数失败\"}"; } - finally { } - } - //监听心跳并且回复客户端“已ping作为关键字” - else if (content == "ping") - { - string result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"收到客户端心跳\"}"; - socket.Send(result); - } - else - { - string result = "{\"keycode\":\"" + "hert" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"收到客户端心跳\"}"; - socket.Send(result); - } - }; - }); + }; + }); + } + catch (Exception ex) + { + Log.Error("socket异常:" + ex.Message); + } } //解包 @@ -230,12 +238,21 @@ namespace AKS.EnterpriseLibrary.WebBrowser { try { - IDCard iDCard = new IDCard(); - string result = iDCard.getIdCard(code); + //IDCard iDCard = new IDCard(); + //string result = iDCard.getIdCard(code); + Task.Run(() => { HttpPostResponseByIdcard("open", 1); }); + @event7.WaitOne(); + string result = IdcardStr; + if (string.IsNullOrEmpty(IdcardStr)) + { + result = "{\"keycode\":\"" + code + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + "读取身份证失败" + "\"}"; + } + else + { + return "{\"keycode\":\"" + code + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":" + IdcardStr + "}"; + } SubmitLogs(result, "IDCardRead"); - //LhtCF lht = new LhtCF(); - //string stat = lht.LhtCFFace(code, "/home/aks/aks/wwwroot/Face/20240529134642.bmp"); - return ""; + return result; } catch (Exception ex) { @@ -266,7 +283,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser }); try { - + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } string ph = param.ph; string ddrs = param.ddrs; string qrcode = param.qrcode; @@ -329,6 +349,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser try { + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } string text = param.text; bool ispaye = param.ispaye; if (!isFuncisFuncObject("payleText")) @@ -404,8 +428,9 @@ namespace AKS.EnterpriseLibrary.WebBrowser { try { - string devIndex = GetSnIndex(); - if (string.IsNullOrEmpty(devIndex)) + //打开高拍仪 + string param = OpenSn("0"); + if (string.IsNullOrEmpty(param)) { string result = "{\"keycode\":\"" + code + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"suffix\":\"jpg\",\"data\":\"" + "扫描仪打开失败" + "\"}"; SubmitLogs(result, "openCamera"); @@ -413,36 +438,27 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - //打开高拍仪 - string param = OpenSn(devIndex); + Task.Delay(1000).Wait(); + //拍照 + param = getFrame(); + //Log.Info("img2" + (param)); if (string.IsNullOrEmpty(param)) { - string result = "{\"keycode\":\"" + code + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"suffix\":\"jpg\",\"data\":\"" + "扫描仪打开失败" + "\"}"; + //关闭 + StopSn("0"); + string result = "{\"keycode\":\"" + code + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"suffix\":\"jpg\",\"data\":\"" + "获取图片失败" + "\"}"; SubmitLogs(result, "openCamera"); return result; } else { - //拍照 - param = getFrame(); - if (string.IsNullOrEmpty(param)) - { - //关闭 - StopSn(devIndex); - string result = "{\"keycode\":\"" + code + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"suffix\":\"jpg\",\"data\":\"" + "获取图片失败" + "\"}"; - SubmitLogs(result, "openCamera"); - return result; - } - else - { - //关闭 - StopSn(devIndex); - string result = "{\"keycode\":\"" + code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"jpg\",\"data\":\"" + param + "\"}"; - SubmitLogs(result, "openCamera"); - return result; - } - + //关闭 + StopSn("0"); + string result = "{\"keycode\":\"" + code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"jpg\",\"data\":\"" + param + "\"}"; + SubmitLogs(result, "openCamera"); + return result; } + } } catch (Exception ex) @@ -467,6 +483,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser }); try { + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } if (!isFuncisFuncObject("OpenSign")) { //Utils.MessagesBox("签字版设备未授权使用"); @@ -475,9 +495,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser else { Task.Run(() => { HttpPostResponseBySign("open", 1, param.code); }); - event2.WaitOne(); + @event3.WaitOne(); string result = sginStr; - Log.Info("签字版数据返回:" + result); SubmitLogs(result, "OpenSign"); return result; } @@ -533,10 +552,13 @@ namespace AKS.EnterpriseLibrary.WebBrowser { code = default(string), isclose = default(bool) - }); try { + if (param == null) + { + return "{\"keycode\":\"" +"" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } if (!isFuncisFuncObject("ReadFingerData")) { //Utils.MessagesBox("指纹设备未授权使用"); @@ -566,6 +588,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser Task.Run(() => { HttpPostResponseByFinger("open", 1); }); event2.WaitOne(); string result = string.Empty; + Log.Info("指纹数据"+ fingerStr); if (string.IsNullOrEmpty(fingerStr)) { result = "{\"keycode\":\"" + param.code + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "读取失败" + "\"}"; @@ -608,7 +631,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser try { - + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } bool isopen = param.isopen; string url = param.url; if (!isFuncisFuncObject("SoundRecording")) @@ -702,7 +728,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser }); try { - + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } string url = param.url; string ext = param.ext; if (!isFuncisFuncObject("PrintFile")) @@ -734,7 +763,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser } } response.Close(); - //Log.Info("根据文件base64打印: " + path + ""); + //// Log.Info("根据文件base64打印: " + path + ""); string command = $"lp -d {PrinterName} {path}"; ShllCommad(command); }); @@ -770,6 +799,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser }); try { + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } if (!isFuncisFuncObject("PrintBase64")) { //Utils.MessagesBox("打印机设备未授权使用"); @@ -794,7 +827,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser System.IO.BinaryWriter writer = new System.IO.BinaryWriter(stream); writer.Write(bytes, 0, bytes.Length); writer.Close(); - //Log.Info("根据文件base64打印: " + path + ""); + //// Log.Info("根据文件base64打印: " + path + ""); string command = $"lp -d {PrinterName} {path}"; ShllCommad(command); }); @@ -823,12 +856,16 @@ namespace AKS.EnterpriseLibrary.WebBrowser { code = default(string), url = default(string), - ispaly = default(bool) + ispaye = default(bool) }); try { + if (param == null) + { + return "{\"keycode\":\"" + "" + "\",\"message\":\"Falied\",\"code\":\"400\",\"status\":false,\"data\":\"" + "参数解析错误" + "\"}"; + } string url = param.url; - bool ispaly = param.ispaly; + bool ispaly = param.ispaye; if (!isFuncisFuncObject("PalyFile")) { //Utils.MessagesBox("音频设备未授权使用"); @@ -861,6 +898,21 @@ namespace AKS.EnterpriseLibrary.WebBrowser { Task.Run(() => { + Task.Run(() => + { + if (Typrocess != null) + { + // 如果进程还在运行 + if (!Typrocess.HasExited) + { + // 发送SIGTERM信号来停止进程 + Typrocess.Kill(); + // 等待进程真正停止 + Typrocess.WaitForExit(); + } + } + //AutoAudio(ispaly, ""); + }); Uri uri = new Uri(url); //返回 123.xlsx var filename = HttpUtility.UrlDecode(uri.Segments.Last()); @@ -983,7 +1035,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser if (jo["returnCode"].ToString() == "0") { string result = jo["data"].ToString(); - // Log.Info(result); + // // Log.Info(result); JArray jo1 = (JArray)JsonConvert.DeserializeObject(result); string devidx = string.Empty; string name = string.Empty; @@ -991,14 +1043,14 @@ namespace AKS.EnterpriseLibrary.WebBrowser { devidx = jo2["dev_idx"].ToString(); name = jo2["name"].ToString(); - // Log.Info(name); + // // Log.Info(name); break; } return devidx; } else { - // Log.Info(jo["returnMsg"].ToString()); + // // Log.Info(jo["returnMsg"].ToString()); return ""; } } @@ -1029,17 +1081,12 @@ namespace AKS.EnterpriseLibrary.WebBrowser else { JObject jo = (JObject)JsonConvert.DeserializeObject(gpyStr); - if (jo["returnCode"].ToString() == "0") - { - return "200"; - } - if (jo["returnCode"].ToString() == "2") + if (jo["returnCode"].ToString() == "0" || jo["returnCode"].ToString() == "2") { return "200"; } else { - // Log.Info(jo["returnMsg"].ToString()); return ""; } } @@ -1068,13 +1115,13 @@ namespace AKS.EnterpriseLibrary.WebBrowser else { JObject jo = (JObject)JsonConvert.DeserializeObject(gpyStr); - if (jo["returnCode"].ToString() == "0") + if (jo["returnCode"].ToString() == "2" || jo["returnCode"].ToString() == "0") { return "200"; } else { - // Log.Info(jo["returnMsg"].ToString()); + // // Log.Info(jo["returnMsg"].ToString()); return ""; } } @@ -1086,29 +1133,30 @@ namespace AKS.EnterpriseLibrary.WebBrowser /// public static string getFrame() { + string result = string.Empty; try { //获取设备信息 string param = "/getFrame"; Task.Run(() => HttpResponse(param)); @event6.WaitOne(); + Log.Info(gpyStr); if (string.IsNullOrEmpty(gpyStr)) { - return ""; + result = ""; } else { JObject jo = (JObject)JsonConvert.DeserializeObject(gpyStr); if (jo["returnCode"].ToString() == "0") { - string result = jo["data"].ToString(); - JObject jo1 = (JObject)JsonConvert.DeserializeObject(result); - return jo1["img"].ToString(); + string data = jo["data"].ToString(); + JObject jo1 = (JObject)JsonConvert.DeserializeObject(data); + result = jo1["img"].ToString(); } else { - // Log.Info(jo["returnMsg"].ToString()); - return ""; + result = ""; } } } @@ -1116,7 +1164,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { //Log.Error("拍照异常:" + ex.Message); } - return ""; + return result; } /// @@ -1144,7 +1192,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - // Log.Info(jo["returnMsg"].ToString()); + // // Log.Info(jo["returnMsg"].ToString()); return ""; } } @@ -1181,7 +1229,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser } else { - // Log.Info(jo["returnMsg"].ToString()); + // // Log.Info(jo["returnMsg"].ToString()); return ""; } } @@ -1214,6 +1262,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser } private static string sginStr = string.Empty; + private static AutoResetEvent @event3 = new AutoResetEvent(false); /// /// 签字版 /// @@ -1224,7 +1273,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser var httpClient = new HttpClient(); var uploader = new ChunkedUpload(httpClient); sginStr = await uploader.PostSign(type, typeCode, code); - @event2.Set(); + @event3.Set(); } catch (Exception ex) { @@ -1272,18 +1321,19 @@ namespace AKS.EnterpriseLibrary.WebBrowser } - private static string RecordStr = string.Empty; + private static string IdcardStr = string.Empty; + private static AutoResetEvent @event7 = new AutoResetEvent(false); /// - /// 录音与停止 + /// 读取身份证 /// - private static async void HttpPostResponseByRecord(string type, int typeCode, string path) + private static async void HttpPostResponseByIdcard(string type, int typeCode) { try { var httpClient = new HttpClient(); var uploader = new ChunkedUpload(httpClient); - RecordStr = await uploader.PostRecord(type, typeCode, path); - @event2.Set(); + IdcardStr = await uploader.OpenGetIdcard(type, typeCode); + @event7.Set(); } catch (Exception ex) { @@ -1291,7 +1341,6 @@ namespace AKS.EnterpriseLibrary.WebBrowser } } - /// /// 初始文件上传 /// @@ -1383,7 +1432,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser string outputFile = srpath; // 输出文件名 string device = "default"; // 音频设备,可以通过arecord -l来列出所有设备 // 构建arecord命令 - string command = $"arecord --device={device} --file-type=wav --duration=10 --quiet {outputFile}"; + string command = $"arecord --device={device} --file-type=wav --quiet {outputFile}"; // 启动进程 recordingProcess = new Process { @@ -1439,7 +1488,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { try { - //Log.Info("执行命令:" + command); + //// Log.Info("执行命令:" + command); // 启动进程 Typrocess = new Process { @@ -1473,7 +1522,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); string dirpath = Utils.getSystemPaht() + @"/wwwroot/WavFile"; - // Log.Info(dirpath); + // // Log.Info(dirpath); if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -1515,7 +1564,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser string time = DateTime.Now.ToString( "yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); string dirpath = Utils.getSystemPaht() + @"/wwwroot/WavFile"; - // Log.Info(dirpath); + // // Log.Info(dirpath); if (!Directory.Exists(dirpath)) { Directory.CreateDirectory(dirpath); @@ -1620,7 +1669,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); - //Log.Info(body); + //// Log.Info(body); } } }); @@ -1683,7 +1732,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser { byte[] c = Convert.FromBase64String(data); string result = System.Text.Encoding.UTF8.GetString(c); - //Log.Info("接收返回数据:" + result); + //// Log.Info("接收返回数据:" + result); return result; } catch (Exception ex) diff --git a/CPF_Cef/Parame.cs b/CPF_Cef/Parame.cs index 5446a4e..a16bb1e 100644 --- a/CPF_Cef/Parame.cs +++ b/CPF_Cef/Parame.cs @@ -1,5 +1,6 @@ using AKS.EnterpriseLibrary.WebBrowser; using CPF.Controls; +using Fleck; using System; using System.Collections.Generic; using System.Linq; @@ -11,6 +12,7 @@ namespace AksWebBrowser { public class Parame { + public static IWebSocketConnection socket { get; set; } public static TcpClient tcpClient { get; set; } public static VideoView videoV { get; set; } public static CusWebBrowser webBrowser { get; set; } diff --git a/CPF_Cef/Ramark.txt b/CPF_Cef/Ramark.txt index 8987814..2eb4892 100644 --- a/CPF_Cef/Ramark.txt +++ b/CPF_Cef/Ramark.txt @@ -25,3 +25,6 @@ espeak --compile=zh sudo apt-get update sudo apt-get install gcc make zlib1g-dev libphonon-dev + + +sudo apt-get install imagemagick \ No newline at end of file diff --git a/CPF_Cef/Results.cs b/CPF_Cef/Results.cs new file mode 100644 index 0000000..403a00d --- /dev/null +++ b/CPF_Cef/Results.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AksWebBrowser +{ + public class Results + { + public string keycode { set; get; } + public string message { set; get; } + public int code { set; get; } + public bool status { set; get; } + public string suffix { set; get; } + public string data { set; get; } + + } +}