Browse Source

提交接口请求方式以及双目

master
胡超1 1 year ago
parent
commit
c3602e2f95
  1. 159
      CPF_Cef/Devices/LhtCF.cs
  2. 2
      CPF_Cef/Devices/PrintPJ.cs
  3. 188
      CPF_Cef/Devices/SignDll.cs
  4. 6
      CPF_Cef/FrmMain.cs
  5. 259
      CPF_Cef/MainModel.cs
  6. 2
      CPF_Cef/Parame.cs

159
CPF_Cef/Devices/LhtCF.cs

@ -0,0 +1,159 @@
using AKSWebBrowser.Commen;
using CPF.Windows;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace AksWebBrowser.Devices
{
public class LhtCF
{
public LhtCF() { }
/// <summary>
/// 人脸比对
/// </summary>
/// <param name="code"></param>
/// <returns></returns>
public static string LhtCFFace(string code,string faceA)
{
string result = string.Empty;
try
{
int status = libLhtCFs.CF_Init();
Log.Info("初始化函数" + status);
if (status == 0)
{
status = libLhtCFs.CF_GetCameraStatus(0);
Log.Info("获取摄像头状态" + status);
if (status == 0)
{
status = libLhtCFs.CF_OpenCamera();
Log.Info("打开摄像头" + status);
if (status == 0)
{
status = libLhtCFs.CF_CreatWindow(0, 0, 300, 800, 600, 500);
Log.Info("创建视频预览窗口" + status);
if (status == 0)
{
status = libLhtCFs.CF_StartLiveDetectEx(10000);
Log.Info("活体检测超时时间:" + status);
if (status == 0)
{
string time = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var tmpFile = "/tmp/" + time + ".jpg";
//停止活体检测
Task.Run(() => { libLhtCFs.CF_StopLiveDetect(); });
}
//关闭视频预览窗口
Task.Run(() => { libLhtCFs.CF_CloseWindow(0); });
}
//关闭摄像头
Task.Run(() => { libLhtCFs.CF_CloseCamera(); });
}
}
}
}
catch (Exception ex)
{
Log.Error("双目摄像头采集人脸异常:" + ex.Message);
}
return "";
}
}
class libLhtCFs
{
// 检测回调函数定义
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.Cdecl)]
public delegate void DetectCallBack(int nEventId, IntPtr lpContext);
//RGB数据回调函数定义
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.Cdecl)]
public delegate void GetVideoStream([MarshalAs(UnmanagedType.LPArray)] byte[] rgbData, int width, int height);
//mjpeg数据回调函数定义
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.Cdecl)]
public delegate void GetMjpegStream([MarshalAs(UnmanagedType.LPArray)] byte[] mjpegData, int dataLen);
//初始化
[DllImport("libLhtCF", EntryPoint = "CF_Init", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_Init();
//反初始化函数
[DllImport("libLhtCF", EntryPoint = "CF_Uninit", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_Uninit();
//反初始化函数
[DllImport("libLhtCF", EntryPoint = "CF_GetCameraStatus", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_GetCameraStatus(int status);
//设置检测回调函数
[DllImport("libLhtCF", EntryPoint = "CF_GetCameraStatus", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_SetDetectCallBack(DetectCallBack pCB, IntPtr lpContext);
//设置彩色摄像头视频流回调
[DllImport("libLhtCF", EntryPoint = "SetCamADataCallback", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int SetCamADataCallback(GetVideoStream cb);
//设置红外摄像头视频流回调
[DllImport("libLhtCF", EntryPoint = "SetCamBDataCallback", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int SetCamBDataCallback(GetVideoStream cb);
//设置彩色摄像头mjpeg数据流回调
[DllImport("libLhtCF", EntryPoint = "SetCamADataCallbackEx", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int SetCamADataCallbackEx(GetMjpegStream cb);
//设置红外摄像头mjpeg数据流回调
[DllImport("libLhtCF", EntryPoint = "SetCamBDataCallbackEx", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int SetCamBDataCallbackEx(GetMjpegStream cb);
//设置分辨率
[DllImport("libLhtCF", EntryPoint = "CF_SetResolution", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_SetResolution(int width, int height);
//打开摄像头
[DllImport("libLhtCF", EntryPoint = "CF_OpenCamera", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_OpenCamera();
//关闭摄像头
[DllImport("libLhtCF", EntryPoint = "CF_CloseCamera", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_CloseCamera();
//开始活体检测
[DllImport("libLhtCF", EntryPoint = "CF_StartLiveDetect", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_StartLiveDetect();
//活体检测超时时间
[DllImport("libLhtCF", EntryPoint = "CF_StartLiveDetectEx", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_StartLiveDetectEx(int timeout);
//停止活体检测
[DllImport("libLhtCF", EntryPoint = "CF_StopLiveDetect", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_StopLiveDetect();
//获取采集图像
[DllImport("libLhtCF", EntryPoint = "CF_GetImage", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_GetImage(int nImageType, [MarshalAs(UnmanagedType.LPArray)] byte[] FilePath);
//获取采集图像
[DllImport("libLhtCF", EntryPoint = "CF_GetImage", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_FaceCompare(byte[] picPathA, byte[] picPathB, int score);
//创建视频预览窗口
[DllImport("libLhtCF", EntryPoint = "CF_CreatWindow", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_CreatWindow(int nWndType, long hWnd, int iX, int iY, int iWidth, int iHeight);
//关闭视频预览窗口
[DllImport("libLhtCF", EntryPoint = "CF_CloseWindow", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
public static extern int CF_CloseWindow(int nWndType);
}
}

2
CPF_Cef/Devices/PrintPJ.cs

@ -71,8 +71,6 @@ namespace AksWebBrowser.Devices
{
try
{
//注册gb2312
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
string txt = string.Format(" 您预约办理的{0}业务-,排号为:", ywmc);
LibPrint.SetClean();
LibPrint.SetReadZKmode(0);

188
CPF_Cef/Devices/SignDll.cs

@ -1,188 +0,0 @@
using AksWebBrowser;
using AksWebBrowser.Common;
using AKSWebBrowser.Commen;
using System;
using System.Globalization;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
public struct TOUCH_INFO
{
public int btnID;//5寸 确定 重签 取消按钮
}
namespace DevicesService.Devices
{
public class SignDll
{
public static int status = -1;
public static string callback;
public SignDll()
{
//OpenSDK();
}
//打开签字版
public void OpenSDK()
{
try
{
status = FiveInchDll.GWQ_Init();
Log.Info("初始化SDK:" + status.ToString());
string UIFile = System.IO.Directory.GetCurrentDirectory();
UIFile = UIFile + @"/aks/adv_ui.jpg";
FiveInchDll.GWQ_SetImage(UIFile);
FiveInchDll.GWQ_ShowImage();
//加载回调
FiveInchDll.GWQ_setCallback(callback_str_receive);
FiveInchDll.GWQ_OnOffPointReporting(0);
//FiveInchDll.GWQ_setSignatureData(callback_signatureData);
}
catch (Exception ex) { Log.Error(ex.Message); }
finally { }
}
public void callback_str_receive(int number, byte[] data, byte[] path)
{
try
{
//Log.Info(number.ToString());
//1 签字确定按钮 2签字取消按钮 3 签字重签按钮(清空界面)
if (number == 0x10)
{
//確認
int ret = FiveInchDll.GWQ_GetImage();
Log.Info("GWQ_GetImage:" + ret);
FiveInchDll.GWQ_ShowImage();
}
else if (number == 0x40)
{
//重簽
int ret = FiveInchDll.GWQ_ReSign();
Log.Info("GWQ_ReSign:" + ret);
}
else if (number == 0xB0)
{
//Task.Run(async () =>
//{
// Log.Info(callback);
// Log.Info(path);
// byte[] img = File.ReadAllBytes(path);
// string base64 = Convert.ToBase64String(img);
// Log.Info(base64);
// //完成圖片保存
// string result = "{\"message\":\"success\",\"code\":\"200\",\"status\":true,\"suffix\":\"png\",\"data\":\"" + base64 + "\"}";
// Log.Info(result);
// string _parm = callback + "('" + result + "')";
// await Parame.webBrowser.ExecuteJavaScript(_parm);
//});
}
else if (number == 0x30)
{
//取消
FiveInchDll.GWQ_ShowImage();
}
}
catch (Exception ex) { Log.Error(ex.Message); }
finally { }
}
//0816加报点
public void callback_signatureData(int x, int y, int p, int sn)
{
return;
}
//打开签字版
public void OpenComDevice(string _callback)
{
try
{
callback = _callback;
OpenSDK();
FiveInchDll.GWQ_SwitchLanguage(0);
}
catch (Exception ex) { Log.Error(ex.Message); }
finally { }
}
//釋放簽字版
public int ReleaseComDevice()
{
int ret = -1;
//try
//{
// if (status == 0)
// {
// ret = FiveInchDll.GWQ_Release();
// if (ret == 0)
// {
// status = -1;
// //取消
// FiveInchDll.GWQ_ShowImage();
// }
// }
//}
//catch { }
//finally { }
return ret;
}
}
class FiveInchDll
{
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
public delegate void callback_str_receive(int type, byte[] data, byte[] path);// (int number);
[System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
public delegate void callback_signatureData(int x, int y, int p, int sn);
//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("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_Init(); //1.1SDK初始化
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_Release();//SDK释放
[DllImport("libdevice5_hid_sdk.so", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_DeviceOnline();//检查设备是否在线
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_setCallback(callback_str_receive cb);
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_setSignatureData(callback_signatureData cb);
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_SwitchLanguage(int language);//语言切换
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_GetImage();//获取签字图片(用户点击确定后发送)
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_SetImage(string uifile);//设置签字图片
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_ShowImage();//显示设置的图片
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_OnOffScreen(int type);//亮屏熄屏 1 熄屏 0亮屏
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_Reboot();//重启设备
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_ReSign();// 重新签字
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_OnOffPointReporting(int type);//开启关闭报点(同屏报点) 1 开启 0关闭
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_SetStartUpLogo(string path);//设置开机logo
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_SetSigningBackground(byte[] path, int len);//发送签字背景
[DllImport("libdevice5_hid_sdk", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern int GWQ_SetSigningBackground2(byte[] path, int len);//设置开机logo
}
}

6
CPF_Cef/FrmMain.cs

@ -24,13 +24,15 @@ namespace AKS.EnterpriseLibrary.WebBrowser
protected override void InitializeComponent()
{
//注册gb2312
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
LoadStyleFile("res://AksWebBrowser/StyleSheet.css");
//加载样式文件,文件需要设置为内嵌资源
Title = "控申业务专用浏览器";
CanResize = false;
ShowInTaskbar = true;
WindowState = WindowState.FullScreen;
var v = new VideoView
Parame.videoV = new VideoView
{
Name = "player",
PresenterFor = this,
@ -48,7 +50,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser
Size = SizeField.Fill,
Children =
{
v,
//Parame.videoV,
new CusWebBrowser
{
PresenterFor = this,

259
CPF_Cef/MainModel.cs

@ -2,6 +2,8 @@
using AksWebBrowser.Common;
using AksWebBrowser.Devices;
using AKSWebBrowser.Commen;
using CPF.Shapes;
using CPF.Windows;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
@ -28,12 +30,15 @@ namespace AKS.EnterpriseLibrary.WebBrowser
SAEA.WebSocket.WSServer ws = new SAEA.WebSocket.WSServer(19983);
ws.OnConnected += (s) =>
{
byte[] bytes = SerializeContent("连接成功");
string result = "{\"keycode\":\"" + "" + "\",\"message\":\"seccse\",\"code\":\"200\",\"status\":true,\"data\":\"连接成功\"}";
byte[] bytes = SerializeContent(result);
ws.Reply(s.ToString(), new SAEA.WebSocket.Model.WSProtocal(SAEA.WebSocket.Type.WSProtocalType.Text, bytes));
};
ws.OnMessage += (s, e) =>
{
string content = Encoding.UTF8.GetString(e.Content);
string content = Encoding.GetEncoding("GB2312").GetString(e.Content);
if (content != "ping")
{
var json = content.ConvertToAnonymousType(new
{
code = default(string)
@ -98,7 +103,9 @@ namespace AKS.EnterpriseLibrary.WebBrowser
case "aks100109":
result = PrintBase64(content);
break;
//aks100110 播放音频文件 {"code":"aks100110"}
//aks100110
//播放音频文件 { "code":"aks100110","url":"http://127.0.0.1/test.wav","ispaye":false}
//停止播放音频文件 { "code":"aks100110","url":"","ispaye":true}
case "aks100110":
result = PalyFile(content);
break;
@ -117,6 +124,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser
//答复请求者(处理完请求后在些答复)
byte[] bytes = SerializeContent(result);
ws.Reply(s.ToString(), new SAEA.WebSocket.Model.WSProtocal(SAEA.WebSocket.Type.WSProtocalType.Text, bytes));
}
};
ws.Start();
}
@ -284,6 +293,7 @@ namespace AKS.EnterpriseLibrary.WebBrowser
Typrocess.WaitForExit();
}
}
//AutoAudio(false, "");
});
string result = "{\"keycode\":\"" + param.code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":" + "停止播放成功" + "}";
SubmitLogs(result, "payleText");
@ -295,9 +305,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser
{
//形成语音
tempWav = GenerateWavFromText(text);
//开始播放
////开始播放
string command = $"sox {tempWav} -d";
ShllCommad(command);
//AutoAudio(true, tempWav);
});
string result = "{\"keycode\":\"" + param.code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":" + "开始播放" + "}";
SubmitLogs(result, "payleText");
@ -722,6 +733,27 @@ namespace AKS.EnterpriseLibrary.WebBrowser
else
{
if (ispaly)
{
Task.Run(() =>
{
//if (Typrocess != null)
//{
// // 如果进程还在运行
// if (!Typrocess.HasExited)
// {
// // 发送SIGTERM信号来停止进程
// Typrocess.Kill();
// // 等待进程真正停止
// Typrocess.WaitForExit();
// }
//}
AutoAudio(ispaly, "");
});
string result = "{\"keycode\":\"" + param.code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":" + "停止播放成功" + "}";
SubmitLogs(result, "PalyFile");
return result;
}
else
{
Task.Run(() =>
{
@ -752,33 +784,14 @@ namespace AKS.EnterpriseLibrary.WebBrowser
response.Close();
//开始播放
string command = $"sox {path} -d";
ShllCommad(command);
//string command = $"sox {path} -d";
//ShllCommad(command);
AutoAudio(ispaly, path);
});
string result = "{\"keycode\":\"" + param.code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":" + "开始播放" + "}";
SubmitLogs(result, "PalyFile");
return result;
}
else
{
Task.Run(() =>
{
if (Typrocess != null)
{
// 如果进程还在运行
if (!Typrocess.HasExited)
{
// 发送SIGTERM信号来停止进程
Typrocess.Kill();
// 等待进程真正停止
Typrocess.WaitForExit();
}
}
});
string result = "{\"keycode\":\"" + param.code + "\",\"message\":\"success\",\"code\":\"200\",\"status\":true,\"data\":" + "停止播放成功" + "}";
SubmitLogs(result, "PalyFile");
return result;
}
}
}
catch (Exception ex)
@ -817,6 +830,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser
/// <param name="command"></param>
/// <returns></returns>
public static string Bash(string command)
{
try
{
var escapedArgs = command.Replace("\"", "\\\"");
var process = new Process()
@ -836,12 +851,20 @@ namespace AKS.EnterpriseLibrary.WebBrowser
process.Dispose();
return result;
}
catch (Exception ex)
{
Log.Error("执行文件异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 获取设备index
/// </summary>
/// <returns></returns>
public static string GetSnIndex()
{
try
{
//获取设备信息
string param = "/GetAllDisplayInfo";
@ -877,12 +900,20 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
catch (Exception ex)
{
Log.Error("获取设备index异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 打开高拍仪
/// </summary>
/// <returns></returns>
public static string OpenSn(string dev_idx)
{
try
{
//获取设备信息
string param = "/StartPreview?dev_idx=" + dev_idx + "&res_id=0";
@ -910,6 +941,12 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
catch (Exception ex)
{
Log.Error("打开高拍仪异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 关闭高拍仪
@ -945,6 +982,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser
/// </summary>
/// <returns></returns>
public static string getFrame()
{
try
{
//获取设备信息
string param = "/getFrame";
@ -970,12 +1009,20 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
catch (Exception ex)
{
Log.Error("拍照异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 右转
/// </summary>
/// <returns></returns>
public static string RotateRight()
{
try
{
//获取设备信息
string param = "/rotate/right";
@ -999,12 +1046,20 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
catch (Exception ex)
{
Log.Error("右转异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 左转
/// </summary>
/// <returns></returns>
public static string RotateLeft()
{
try
{
//获取设备信息
string param = "/rotate/left";
@ -1028,6 +1083,12 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
catch (Exception ex)
{
Log.Error("左转异常:" + ex.Message);
}
return "";
}
/// <summary>
/// 高拍仪
@ -1035,24 +1096,38 @@ namespace AKS.EnterpriseLibrary.WebBrowser
private static string gpyStr = string.Empty;
private static AutoResetEvent @event6 = new AutoResetEvent(false);
private static async void HttpResponse(string param)
{
try
{
var httpClient = new HttpClient();
var uploader = new ChunkedUpload(httpClient);
gpyStr = await uploader.getReq(param);
@event6.Set();
}
catch (Exception ex)
{
Log.Error("高拍仪异常:" + ex.Message);
}
}
private static string sginStr = string.Empty;
/// <summary>
/// 签字版
/// </summary>
private static async void HttpPostResponseBySign(string type, int typeCode, string code)
{
try
{
var httpClient = new HttpClient();
var uploader = new ChunkedUpload(httpClient);
sginStr = await uploader.PostSign(type, typeCode, code);
@event2.Set();
}
catch (Exception ex)
{
Log.Error("签字版异常:" + ex.Message);
}
}
/// <summary>
/// 初始文件上传
@ -1060,17 +1135,26 @@ namespace AKS.EnterpriseLibrary.WebBrowser
private static string urlpath = string.Empty;
private static AutoResetEvent @event2 = new AutoResetEvent(false);
private static async void UploadInfo(string url, string srpath)
{
try
{
var httpClient = new HttpClient();
var uploader = new ChunkedUpload(httpClient);
urlpath = await uploader.UploadFileAsync(url, srpath);
@event2.Set();
}
catch (Exception ex)
{
Log.Error("初始文件上传异常:" + ex.Message);
}
}
//上传本地文件中转
private static string urlP = string.Empty;
private static AutoResetEvent @event5 = new AutoResetEvent(false);
private static async void UploadInfoByFile(string url, string strpath)
{
try
{
var httpClient = new HttpClient();
var uploader = new ChunkedUpload(httpClient);
@ -1078,32 +1162,16 @@ namespace AKS.EnterpriseLibrary.WebBrowser
File.Delete(strpath);
@event5.Set();
}
/// <summary>
/// string 转换为 base64
/// </summary>
/// <returns></returns>
public static string str2Base64(string str)
catch (Exception ex)
{
byte[] b = System.Text.Encoding.UTF8.GetBytes(str);
string result = Convert.ToBase64String(b);
return result;
Log.Error("上传本地文件中转异常:" + ex.Message);
}
/// <summary>
/// base64 转换为 string
/// </summary>
/// <param name="data"></param>
public static string Base64str2(string data)
{
byte[] c = Convert.FromBase64String(data);
string result = System.Text.Encoding.UTF8.GetString(c);
//Log.Info("接收返回数据:" + result);
return result;
}
//根据程序名称杀死进程
public static void KillProcessByName(string processName)
{
try
{
Process[] processes = Process.GetProcessesByName(processName);
@ -1117,6 +1185,11 @@ namespace AKS.EnterpriseLibrary.WebBrowser
catch (Exception ex) { }
}
}
catch (Exception ex)
{
Log.Error("根据程序名称杀死进程异常:" + ex.Message);
}
}
/// <summary>
/// 开始录音
@ -1198,6 +1271,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser
/// 执行命令
/// </summary>
public static void ShllCommad(string command)
{
try
{
//Log.Info("执行命令:" + command);
// 启动进程
@ -1216,6 +1291,11 @@ namespace AKS.EnterpriseLibrary.WebBrowser
Typrocess.Start();
Typrocess.WaitForExit();
}
catch (Exception ex)
{
Log.Error("执行命令异常:" + ex.Message);
}
}
/// <summary>
/// 开源文字转语音
@ -1229,11 +1309,14 @@ namespace AKS.EnterpriseLibrary.WebBrowser
"yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
string dirpath = System.IO.Directory.GetCurrentDirectory();
dirpath = dirpath + @"/wwwroot/WavFile";
Log.Info(dirpath);
if (!Directory.Exists(dirpath))
{
Directory.CreateDirectory(dirpath);
}
var tempFile = dirpath + "/" + time + ".wav";
try
{
text = text.Replace("(", "").Replace(")", "、");
ProcessStartInfo startInfo = new ProcessStartInfo
{
@ -1249,6 +1332,11 @@ namespace AKS.EnterpriseLibrary.WebBrowser
process.Close();
process.Dispose();
}
}
catch (Exception ex)
{
Log.Error("文字转语音失败:" + ex.Message);
}
return tempFile;
}
@ -1260,6 +1348,10 @@ namespace AKS.EnterpriseLibrary.WebBrowser
public static bool isFuncisFuncObject(string funcName)
{
bool isFunc = false;
try
{
if (Parame.FuncObject != null)
{
if (Parame.FuncObject.Count > 0)
{
foreach (Func func in Parame.FuncObject)
@ -1271,6 +1363,12 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
}
}
}
}
catch (Exception ex)
{
Log.Error("是否已获取收取异常:" + ex.Message);
}
return isFunc;
}
@ -1280,6 +1378,8 @@ namespace AKS.EnterpriseLibrary.WebBrowser
/// <param name="Describer"></param>
/// <param name="funcName"></param>
public static void SubmitLogs(string Describer, string funcName)
{
try
{
Task.Run(async () =>
{
@ -1320,5 +1420,72 @@ namespace AKS.EnterpriseLibrary.WebBrowser
}
});
}
catch (Exception ex)
{
Log.Error("提交设备操作日志异常:" + ex.Message);
}
}
/// <summary>
/// 播放语音文件
/// </summary>
/// <param name="ispaly"></param>
public static void AutoAudio(bool ispaly, string path)
{
try
{
if (ispaly)
{
Parame.videoV.Play(new Uri(path));//播放
}
else
{
Parame.videoV.Pause();//停止
}
}
catch (Exception ex)
{
Log.Error("播放语音文件异常:" + ex.Message);
}
}
/// <summary>
/// string 转换为 base64
/// </summary>
/// <returns></returns>
public static string str2Base64(string str)
{
try
{
byte[] b = System.Text.Encoding.UTF8.GetBytes(str);
string result = Convert.ToBase64String(b);
return result;
}
catch (Exception ex)
{
Log.Error("string 转换为 base64异常:" + ex.Message);
}
return "";
}
/// <summary>
/// base64 转换为 string
/// </summary>
/// <param name="data"></param>
public static string Base64str2(string data)
{
try
{
byte[] c = Convert.FromBase64String(data);
string result = System.Text.Encoding.UTF8.GetString(c);
//Log.Info("接收返回数据:" + result);
return result;
}
catch (Exception ex)
{
Log.Error("base64 转换为 string异常:" + ex.Message);
}
return "";
}
}
}

2
CPF_Cef/Parame.cs

@ -1,4 +1,5 @@
using AKS.EnterpriseLibrary.WebBrowser;
using CPF.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
@ -11,6 +12,7 @@ namespace AksWebBrowser
public class Parame
{
public static TcpClient tcpClient { get; set; }
public static VideoView videoV { get; set; }
public static CusWebBrowser webBrowser { get; set; }
public static List<Func> FuncObject { get; set; }
//接口地址

Loading…
Cancel
Save