@ -1,4 +1,5 @@
using Functions.FileExt ;
using DevicesService.Commen ;
using Functions.FileExt ;
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http ;
using System ;
using System.Drawing ;
@ -33,6 +34,8 @@ namespace DevicesService.Devices
public static int status = - 1 ;
private static Bitmap bitmap = new Bitmap ( 5 9 4 , 3 9 2 ) ;
public SignDll ( )
{
try
{
endPos = new PointF ( - 1F , - 1f ) ;
beginPos = new PointF ( - 1F , - 1f ) ;
@ -45,6 +48,9 @@ namespace DevicesService.Devices
lastpointy [ 2 ] = - 1 ;
xypointcount = 0 ;
}
catch ( Exception ex ) { Log . Info ( ex . Message ) ; }
finally { }
}
public static void GetTouchNumber ( int number )
{
@ -83,25 +89,154 @@ namespace DevicesService.Devices
FiveInchDll . ComSetBackGroundAdv ( ) ;
}
}
catch { }
catch ( Exception ex ) { Log . Info ( ex . Message ) ; }
finally { }
}
//0816加报点
public static void GetTouchPoint ( TOUCH_INFO [ ] info1 )
{ }
{
int x = 0 , y = 0 ;
int pressurevl ;
int dx = 0 , dy = 0 ;
for ( int k = 0 ; k < 8 0 ; k + + )
{
x = info1 [ k ] . X ;
y = info1 [ k ] . Y ;
//落笔
if ( info1 [ k ] . Pressure > 0 )
{
if ( info1 [ k ] . Pressure > 0 & & info1 [ k ] . Pressure < 5 0 0 )
{
pressurevl = 1 ;
pen . Width = 1 ;
}
else if ( info1 [ k ] . Pressure > = 5 0 0 & & info1 [ k ] . Pressure < 1 0 0 0 )
{
pressurevl = 2 ;
pen . Width = 2 ;
}
else if ( info1 [ k ] . Pressure > = 1 0 0 0 & & info1 [ k ] . Pressure < 1 5 0 0 )
{
pressurevl = 3 ;
pen . Width = 3 ;
}
else if ( info1 [ k ] . Pressure > = 1 5 0 0 & & info1 [ k ] . Pressure < 2 0 4 8 )
{
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 > 1 0 ) //有画线宽度
{
lastpointx [ 2 ] = x ;
lastpointy [ 2 ] = y ;
if ( lastpointx [ 2 ] ! = - 1 )
{
if ( lastpointx [ 1 ] ! = - 1 & & lastpointx [ 0 ] ! = - 1 )
{
//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 ( 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
{
if ( lastpointx [ 1 ] ! = - 1 ) //不为空在赋值,防止丢弃点时赋空值
{
lastpointx [ 0 ] = lastpointx [ 1 ] ;
lastpointy [ 0 ] = lastpointy [ 1 ] ;
}
lastpointx [ 1 ] = lastpointx [ 2 ] ;
lastpointy [ 1 ] = lastpointy [ 2 ] ;
}
}
}
else
{
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 ( )
{
int status = FiveInchDll . OpenComDevice ( GetTouchNumber ) ;
try
{
status = FiveInchDll . OpenComDevice ( GetTouchNumber ) ;
Console . WriteLine ( "OpenComDevice:" + status ) ;
if ( status = = 0 )
{
//2022-08-16 加实时报点
status = FiveInchDll . ComSendPoint ( 1 , GetTouchPoint ) ;
Console . WriteLine ( "ComSendPoint:" + status ) ;
////2022-08-16 加实时报点
int ret = FiveInchDll . ComSendPoint ( 0 , null ) ;
//Console.WriteLine("ComSendPoint:" + ret);
if ( true )
{
string UIFile = System . IO . Directory . GetCurrentDirectory ( ) + "\\adv_ui.jpg" ;
@ -117,6 +252,55 @@ namespace DevicesService.Devices
Console . WriteLine ( "ComSetSignBackgroundImage:" + ret1 ) ;
}
}
//if (status == -1)
//{
// status = FiveInchDll.OpenComDevice(GetTouchNumber);
// Console.WriteLine("OpenComDevice:" + status);
// if (status == 0)
// {
// ////2022-08-16 加实时报点
// //int ret = FiveInchDll.ComSendPoint(1, GetTouchPoint);
// //Console.WriteLine("ComSendPoint:" + ret);
// 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)
//{
// ////2022-08-16 加实时报点
// //int ret = FiveInchDll.ComSendPoint(1, GetTouchPoint);
// //Console.WriteLine("ComSendPoint:" + ret);
// 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 ( Exception ex ) { Log . Info ( ex . Message ) ; }
finally { }
return status ;
}
@ -124,6 +308,8 @@ namespace DevicesService.Devices
public static int CloseComDevice ( )
{
int ret = - 1 ;
try
{
if ( status = = 0 )
{
ret = FiveInchDll . CloseComDevice ( ) ;
@ -132,6 +318,9 @@ namespace DevicesService.Devices
status = - 1 ;
}
}
}
catch { }
finally { }
return ret ;
}