You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
230 lines
8.8 KiB
230 lines
8.8 KiB
using DevicesService.Commen; |
|
using DevicesService.Common; |
|
using Functions.FileExt; |
|
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http; |
|
using System; |
|
using System.Drawing; |
|
using System.Globalization; |
|
using System.IO; |
|
using System.Runtime.InteropServices; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
//0816加实时报点 |
|
[StructLayout(LayoutKind.Sequential)] |
|
public struct TOUCH_INFO |
|
{ |
|
public int X; |
|
public int Y; |
|
public int Pressure; |
|
public int SN; |
|
public int btnID;//5寸 确定 重签 取消按钮 |
|
} |
|
namespace DevicesService.Devices |
|
{ |
|
|
|
|
|
public class SignDll |
|
{ |
|
public static int status = -1; |
|
public SignDll() { |
|
status = FiveInchDll.OpenComDevice(DevGetTouchNumber); |
|
Console.WriteLine("OpenComDevice:" + status); |
|
} |
|
|
|
public static void DevGetTouchNumber(int number) |
|
{ |
|
try |
|
{ |
|
Console.WriteLine(number); |
|
//1 签字确定按钮 2签字取消按钮 3 签字重签按钮(清空界面) |
|
if (number == 1) |
|
{ |
|
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) |
|
{ |
|
string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; |
|
int ret = FiveInchDll.ComSetSignBackgroundImage(UIFile); |
|
Console.WriteLine("ComSetSignBackgroundImage:" + ret); |
|
} |
|
else |
|
{ |
|
FiveInchDll.ComSetBackGroundAdv(); |
|
} |
|
} |
|
catch { } |
|
finally { } |
|
} |
|
|
|
//0816加报点 |
|
public static void GetTouchPoint(TOUCH_INFO[] info1) |
|
{ |
|
return; |
|
} |
|
|
|
//打开签字版 |
|
public static int OpenComDevice() |
|
{ |
|
try |
|
{ |
|
if (status == -1) |
|
{ |
|
status = FiveInchDll.OpenComDevice(DevGetTouchNumber); |
|
Console.WriteLine("OpenComDevice:" + status); |
|
//清空界面 |
|
// GetTouchNumber(2); |
|
if (status == 0) |
|
{ |
|
//关闭报点 |
|
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(); |
|
} |
|
|
|
if (true) |
|
{ |
|
string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; |
|
int ret1 = FiveInchDll.ComSetSignBackgroundImage(UIFile); |
|
Console.WriteLine("ComSetSignBackgroundImage:" + ret1); |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
if (status == 0) |
|
{ |
|
//关闭报点 |
|
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(); |
|
} |
|
|
|
if (true) |
|
{ |
|
string UIFile = System.IO.Directory.GetCurrentDirectory() + "\\sign_ui.jpg"; |
|
int ret1 = FiveInchDll.ComSetSignBackgroundImage(UIFile); |
|
Console.WriteLine("ComSetSignBackgroundImage:" + ret1); |
|
} |
|
} |
|
} |
|
} |
|
catch { } |
|
finally { } |
|
return status; |
|
} |
|
|
|
//关闭签字版 |
|
public static int CloseComDevice() |
|
{ |
|
int ret = -1; |
|
try |
|
{ |
|
if (status == 0) |
|
{ |
|
ret = FiveInchDll.CloseComDevice(); |
|
if (ret == 0) |
|
{ |
|
status = -1; |
|
} |
|
} |
|
} |
|
catch { } |
|
finally { } |
|
return ret; |
|
} |
|
|
|
//保存签字版数据 |
|
public string ComSetPictureSavePath() |
|
{ |
|
try |
|
{ |
|
DateTime dateTime = DateTime.Now; |
|
string time = DateTime.Now.ToString( |
|
"yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
|
var dirpath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "Sign"); |
|
FileExt.MakeSureDirExist(dirpath); |
|
var filepath = Path.Combine(dirpath, time); |
|
string SignFile = dirpath + "\\" + time + ".png"; |
|
string sourcepaht = Environment.CurrentDirectory + "\\fiveInch.png"; |
|
int ret = FiveInchDll.ComSignOK(); |
|
if (ret == 0) |
|
{ |
|
return SignFile; |
|
} |
|
else |
|
{ |
|
return ""; |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
return ""; |
|
} |
|
} |
|
} |
|
|
|
class FiveInchDll |
|
{ |
|
|
|
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)] |
|
public delegate void GetTouchNumber(int number); |
|
//0816加报点 |
|
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)] |
|
public delegate void TOUCH_INFO_FUNC([MarshalAs(UnmanagedType.LPArray, SizeConst = 160)] TOUCH_INFO[] info); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSendPoint(int nState, [MarshalAs(UnmanagedType.FunctionPtr)] TOUCH_INFO_FUNC callback); //0816加报点 |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int OpenComDevice([MarshalAs(UnmanagedType.FunctionPtr)] GetTouchNumber callback); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int CloseComDevice(); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSetSignBackgroundImage(string UIFile); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSetPictureSavePath(string PicturePath, int PicturePathLen); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSignOK(); |
|
|
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSetPenStyle(int PenStyle); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComGetDevSN(StringBuilder pDevSN, int iSync); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComGetDevSN_Async(StringBuilder pDevSN); |
|
|
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComWhiteScreen(); |
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSendAdvantageImage(string UIFile); |
|
|
|
|
|
[DllImport("XTJZFiveInch.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] |
|
public static extern int ComSetBackGroundAdv(); |
|
} |
|
}
|
|
|