diff --git a/DevicesService/Commen/COMUtils.cs b/DevicesService/Commen/COMUtils.cs index 07fc8fa..92d2789 100644 --- a/DevicesService/Commen/COMUtils.cs +++ b/DevicesService/Commen/COMUtils.cs @@ -106,8 +106,8 @@ namespace DevicesService.Common joparam = (JObject)JsonConvert.DeserializeObject(param); data = joparam["data"].ToString(); resultback = scriptCallback.IDCardRead(data, callback); - ////Console.WriteLine(resultback); - //Log.Info("读取身份证 返回数据:" + resultback); + //Console.WriteLine(resultback); + Log.Info("读取身份证 返回数据:" + resultback); base64 = Util.str2Base64(resultback); //向com对方发送数据 SendData(base64); diff --git a/DevicesService/Commen/TcpServer.cs b/DevicesService/Commen/TcpServer.cs index 56d342d..37e43d8 100644 --- a/DevicesService/Commen/TcpServer.cs +++ b/DevicesService/Commen/TcpServer.cs @@ -33,8 +33,8 @@ namespace DevicesService.Commen { TcpListener listener = new TcpListener(IPAddress.Any, 1234); listener.Start(); - Console.WriteLine("服务器已启动,等待客户端连接..."); - Timer timer = new Timer(SendHelloMessage, null, TimeSpan.Zero, TimeSpan.FromSeconds(200)); + Console.WriteLine("服务器已启动,等待客户端连接..."); + Timer timer = new Timer(SendHelloMessage, null, TimeSpan.Zero, TimeSpan.FromSeconds(20)); while (true) { TcpClient client = listener.AcceptTcpClient(); @@ -44,10 +44,7 @@ namespace DevicesService.Commen ThreadPool.QueueUserWorkItem(ReceiveMessage, client); } } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } + catch (Exception ex) { Console.WriteLine(ex.Message); } finally { } } @@ -71,10 +68,7 @@ namespace DevicesService.Commen stream.Write(data, 0, data.Length); } } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } + catch (Exception ex) { Console.WriteLine(ex.Message); } finally { } } @@ -162,8 +156,8 @@ namespace DevicesService.Commen joparam = (JObject)JsonConvert.DeserializeObject(param); data = joparam["data"].ToString(); resultback = scriptCallback.IDCardRead(data, callback); - ////Console.WriteLine(resultback); - //Log.Info("读取身份证 返回数据:" + resultback); + //Console.WriteLine(resultback); + Log.Info("读取身份证 返回数据:" + resultback); base64 = Util.str2Base64(resultback); //向com对方发送数据 SendDataWithHeader(client, base64); @@ -209,8 +203,8 @@ namespace DevicesService.Commen data = joparam["text"].ToString(); bool ispaye = Convert.ToBoolean(joparam["ispaye"].ToString()); resultback = scriptCallback.payleText(data, ispaye, callback); - ////Console.WriteLine(resultback); - //Log.Info("文字语音播报 返回数据:" + resultback); + //Console.WriteLine(resultback); + Log.Info("文字语音播报 返回数据:" + resultback); base64 = Util.str2Base64(resultback); //向com对方发送数据 SendDataWithHeader(client, base64); @@ -338,30 +332,7 @@ namespace DevicesService.Commen string url = joparam["url"].ToString(); bool isopen = Convert.ToBoolean(joparam["isopen"].ToString()); resultback = scriptCallback.SoundRecording(isopen, url, callback); - //Log.Info("开始录音、取消录音、结束录音 返回数据:" + resultback); - base64 = Util.str2Base64(resultback); - //向com对方发送数据 - SendDataWithHeader(client, base64); - } - catch (Exception ex) - { - string rest = "{\"callback\":\"" + "callback" + "\",\"message\":\"fali\",\"code\":\"400\",\"status\":false,\"data\":\"" + ex.Message + "\"}"; - base64 = Util.str2Base64(rest); - SendDataWithHeader(client, base64); - } - #endregion - break; - - //{"type":"13","param":{"data":""}} - case Func.Finger: - #region 读取指纹 - try - { - joparam = (JObject)JsonConvert.DeserializeObject(param); - data = joparam["data"].ToString(); - resultback = scriptCallback.IDCardRead(data, callback); - ////Console.WriteLine(resultback); - //Log.Info("读取指纹 返回数据:" + resultback); + Log.Info("开始录音、取消录音、结束录音 返回数据:" + resultback); base64 = Util.str2Base64(resultback); //向com对方发送数据 SendDataWithHeader(client, base64); @@ -457,33 +428,6 @@ namespace DevicesService.Commen catch { return -1; } finally { } } - - /// - /// 回传签字图片 - /// - /// - public static void SendImages(string Message) - { - try - { - foreach (TcpClient client in clients) - { - try - { - SendDataWithHeader(client, Message); - } - catch (Exception ex) - { - Console.WriteLine("向客户端 {0} 发送消息失败:{1}", client.Client.RemoteEndPoint, ex.Message); - clients.Remove(client); - break; - } - } - } - catch { } - finally { } - - } } } diff --git a/DevicesService/Devices/SignDll.cs b/DevicesService/Devices/SignDll.cs index a04b24c..60856bc 100644 --- a/DevicesService/Devices/SignDll.cs +++ b/DevicesService/Devices/SignDll.cs @@ -25,10 +25,35 @@ namespace DevicesService.Devices public class SignDll { + public static PointF endPos; + public static PointF beginPos; + public static PointF frontPos; + private static int xypointcount = 0; + private static int[] lastpointx = new int[3]; + private static int[] lastpointy = new int[3]; + Point mPoint = new Point(-1, -1); + private static System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); + //private Graphics mGraphicsBuffer; + private static Pen pen = new Pen(Color.Black); // public static int status = -1; - public SignDll() { - status = FiveInchDll.OpenComDevice(DevGetTouchNumber); - Console.WriteLine("OpenComDevice:" + status); + private static Bitmap bitmap = new Bitmap(594, 392); + public SignDll() + { + try + { + endPos = new PointF(-1F, -1f); + beginPos = new PointF(-1F, -1f); + frontPos = new PointF(-1F, -1f); + lastpointx[0] = -1; + lastpointy[0] = -1; + lastpointx[1] = -1; + lastpointy[1] = -1; + lastpointx[2] = -1; + lastpointy[2] = -1; + xypointcount = 0; + } + catch (Exception ex) { Log.Info(ex.Message); } + finally { } } public static void DevGetTouchNumber(int number) @@ -42,12 +67,6 @@ namespace DevicesService.Devices int ret = FiveInchDll.ComSignOK(); Console.WriteLine("ComSignOK:" + ret); FiveInchDll.ComSetBackGroundAdv(); - Task.Run(() => { - ScriptCallbackObject script = new ScriptCallbackObject(); - string str = script.GetSignData("", "'"); - str = "@" + str; - TcpServer.SendImages(str); - }); } else if (number == 3) { @@ -57,6 +76,13 @@ namespace DevicesService.Devices } else { + lastpointx[0] = -1; + lastpointy[0] = -1; + lastpointx[1] = -1; + lastpointy[1] = -1; + lastpointx[2] = -1; + lastpointy[2] = -1; + FiveInchDll.ComSetBackGroundAdv(); } } @@ -68,63 +94,163 @@ namespace DevicesService.Devices public static void GetTouchPoint(TOUCH_INFO[] info1) { return; - } + int x = 0, y = 0; + int pressurevl; + int dx = 0, dy = 0; - //打开签字版 - public static int OpenComDevice() - { - try + for (int k = 0; k < 80; k++) { - if (status == -1) + + x = info1[k].X; + y = info1[k].Y; + + //落笔 + if (info1[k].Pressure > 0) + { + if (info1[k].Pressure > 0 && info1[k].Pressure < 500) + { + pressurevl = 1; + pen.Width = 1; + } + else if (info1[k].Pressure >= 500 && info1[k].Pressure < 1000) + { + pressurevl = 2; + pen.Width = 2; + } + else if (info1[k].Pressure >= 1000 && info1[k].Pressure < 1500) + { + pressurevl = 3; + pen.Width = 3; + } + else if (info1[k].Pressure >= 1500 && info1[k].Pressure < 2048) + { + pressurevl = 4; + pen.Width = 4; + } + else + { + pressurevl = 0; + pen.Width = 1; + } + } + else + { + //抬笔 + pressurevl = 0; + + lastpointx[0] = -1; + lastpointy[0] = -1; + lastpointx[1] = -1; + lastpointy[1] = -1; + lastpointx[2] = -1; + lastpointy[2] = -1; + continue; + } + + if (info1[k].Pressure > 10) //有画线宽度 { - status = FiveInchDll.OpenComDevice(DevGetTouchNumber); - Console.WriteLine("OpenComDevice:" + status); - //清空界面 - // GetTouchNumber(2); - if (status == 0) + lastpointx[2] = x; + lastpointy[2] = y; + + + if (lastpointx[2] != -1) { - //关闭报点 - int ret = FiveInchDll.ComSendPoint(0, GetTouchPoint); - if (true) + if (lastpointx[1] != -1 && lastpointx[0] != -1) { - string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\adv_ui.jpg"; - int ret1 = FiveInchDll.ComSendAdvantageImage(UIFile); - Console.WriteLine("ComSendAdvantageImage:" + ret1); - FiveInchDll.ComSetBackGroundAdv(); - } + //float dx = Math.Abs(lastpointx[2] - beginPos.X); + //float dy = Math.Abs(endPos.Y - beginPos.Y); + + dx = Math.Abs(lastpointx[2] - lastpointx[1]); + dy = Math.Abs(lastpointy[2] - lastpointy[1]); + if ((dx != 0) && (dy != 0)) + { - if (true) + if (lastpointy[1] != -1 && lastpointy[2] != -1) //y轴相同的点不画,直接跳过 + { + if (lastpointx[1] != -1 && lastpointx[2] != -1) //第3个点和第二个点比较是否x坐标在同一个位置,不是就执行画第一个点到第二个点的线 + { + //painter->drawLine(frontPos, beginPos); //画线 + //g.DrawLine(pen, lastpointx[0], lastpointy[0], lastpointx[1], lastpointy[1]); + //painter->drawPoint(beginPos); //画点 + //frontPos = beginPos; + //beginPos = endPos; + lastpointx[0] = lastpointx[1]; + lastpointy[0] = lastpointy[1]; + lastpointx[1] = lastpointx[2]; + lastpointy[1] = lastpointy[2]; + } + else + { + //是就执行画第一个点到第三个点的线 + //painter->drawLine(frontPos, endPos); + //g.DrawLine(pen, lastpointx[0], lastpointy[0], lastpointx[2], lastpointy[2]); + //frontPos = endPos; //第三个点赋值第一个点 + //beginPos = QPointF(0, 0); //第二个点置空 + //beginPos.X = -1; + //beginPos.Y = -1; + lastpointx[0] = lastpointx[2]; + lastpointy[0] = lastpointy[2]; + lastpointx[1] = -1; + lastpointy[1] = -1; + } + } + } + }// + else { - string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; - int ret1 = FiveInchDll.ComSetSignBackgroundImage(UIFile); - Console.WriteLine("ComSetSignBackgroundImage:" + ret1); + if (lastpointx[1] != -1) //不为空在赋值,防止丢弃点时赋空值 + { + lastpointx[0] = lastpointx[1]; + lastpointy[0] = lastpointy[1]; + } + lastpointx[1] = lastpointx[2]; + lastpointy[1] = lastpointy[2]; } } + } else { - if (status == 0) + dx = dy = 0; + lastpointx[0] = -1; + lastpointy[0] = -1; + lastpointx[1] = -1; + lastpointy[1] = -1; + lastpointx[2] = -1; + lastpointy[2] = -1; + + } + } + } + + //打开签字版 + public static int OpenComDevice() + { + try + { + status = FiveInchDll.OpenComDevice(GetTouchNumber); + Console.WriteLine("OpenComDevice:" + status); + if (status == 0) + { + //关闭报点 + int ret = FiveInchDll.ComSendPoint(0, GetTouchPoint); + if (true) { - //关闭报点 - int ret = FiveInchDll.ComSendPoint(0, GetTouchPoint); - if (true) - { - string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\adv_ui.jpg"; - int ret1 = FiveInchDll.ComSendAdvantageImage(UIFile); - Console.WriteLine("ComSendAdvantageImage:" + ret1); - FiveInchDll.ComSetBackGroundAdv(); - } + string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\adv_ui.jpg"; + int ret1 = FiveInchDll.ComSendAdvantageImage(UIFile); + Console.WriteLine("ComSendAdvantageImage:" + ret1); + FiveInchDll.ComSetBackGroundAdv(); + } - if (true) - { - string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; - int ret1 = FiveInchDll.ComSetSignBackgroundImage(UIFile); - Console.WriteLine("ComSetSignBackgroundImage:" + ret1); - } + if (true) + { + string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; + int ret1 = FiveInchDll.ComSetSignBackgroundImage(UIFile); + Console.WriteLine("ComSetSignBackgroundImage:" + ret1); } } } - catch { } + catch(Exception ex) { Log.Info(ex.Message); } finally { } return status; } diff --git a/DevicesService/DevicesService.csproj b/DevicesService/DevicesService.csproj index b6beb2a..359f77e 100644 --- a/DevicesService/DevicesService.csproj +++ b/DevicesService/DevicesService.csproj @@ -14,17 +14,23 @@ true AnyCPU + False true AnyCPU + False - + + True + - + + True + diff --git a/DevicesService/Program.cs b/DevicesService/Program.cs index 1332bb2..62fe3c7 100644 --- a/DevicesService/Program.cs +++ b/DevicesService/Program.cs @@ -34,7 +34,6 @@ namespace DevicesService FileProvider = new PhysicalFileProvider(pathToFiles), RequestPath = "/wwwroot" }); - // 处理文件未找到的情况 app.Use((context, next) => {