From fe158753afceb664b86fa15bebaf435acaffaf85 Mon Sep 17 00:00:00 2001 From: zqm Date: Fri, 24 Oct 2025 14:51:22 +0800 Subject: [PATCH] A8SDK --- .../CS/Framework4.0/Toprie/Toprie/A8SDK.cs | 426 ++++-------------- 1 file changed, 76 insertions(+), 350 deletions(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/A8SDK.cs b/Windows/CS/Framework4.0/Toprie/Toprie/A8SDK.cs index 72f4b24..c25275b 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/A8SDK.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/A8SDK.cs @@ -172,89 +172,50 @@ namespace JoyD.Windows.CS.Toprie public char second; } - // TODO: 添加DllImport声明 - // [DllImport(@"SDK\a8sdk.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "sdk_initialize")] - // private static extern int SdkInitialize(); - // ... 其他DllImport声明 ... - - private readonly IntPtr ipx; + // 使用V8类实例来实现功能 + private readonly string deviceIp; + private readonly V8 v8Instance; public A8SDK(string ip) { - ipx = Marshal.StringToHGlobalAnsi(ip); + deviceIp = ip; + v8Instance = new V8(ip); } ~A8SDK() { - Marshal.FreeHGlobal(ipx); - // 注意:不再直接调用SdkDestroy(),全局资源由静态方法SDK_destroy()统一管理 + // V8类的析构函数会自动处理资源释放 } public static int SDK_initialize() { - // TODO: 实现SDK初始化 - 需添加DllImport声明 - return 0; + return V8.SDK_initialize(); } public static int SDK_destroy() { - // TODO: 实现SDK清理 - 需添加DllImport声明 - return 0; + return V8.SDK_destroy(); } public static String SDK_serch_device(int list_len) { - // TODO: 实现设备搜索 - 需添加DllImport声明 - // 根据list_len参数分配足够的内存,至少128字节 - int bufferSize = Math.Max(128, list_len); - IntPtr device_list = Marshal.AllocHGlobal(bufferSize); - - try - { - // 调用SDK搜索设备,并检查返回值 - // int result = SdkSearchDevice(device_list, list_len); - // if (result != 0) - // { - // // 搜索失败,返回空字符串或错误信息 - // return string.Empty; - // } - - // 安全地将非托管内存转换为字符串 - string str = Marshal.PtrToStringAnsi(device_list); - return str; - } - catch (Exception ex) - { - // 捕获可能的异常 - Console.WriteLine($"搜索设备时出错: {ex.Message}"); - return string.Empty; - } - finally - { - // 确保在任何情况下都释放内存 - Marshal.FreeHGlobal(device_list); - } + return V8.SDK_serch_device(list_len); } public void Shutter_correction() { - // TODO: 实现快门校正 - 需添加DllImport声明 - // SdkShutterCorrection(ipx); + v8Instance.Shutter_correction(); } public int Shutter_times { get { - // TODO: 实现获取快门时间 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetShutterAutoCorrection(ipx, &i); } - return i; + return v8Instance.Shutter_times; } set { - // TODO: 实现设置快门时间 - 需添加DllImport声明 - // SdkSetShutterAutoCorrection(ipx, value); + v8Instance.Shutter_times = value; } } @@ -262,15 +223,11 @@ namespace JoyD.Windows.CS.Toprie { get { - // TODO: 实现获取色板 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetColorPlate(ipx, &i); } - return i; + return v8Instance.Color_plate; } set { - // TODO: 实现设置色板 - 需添加DllImport声明 - // SdkSetColorPlate(ipx, value); + v8Instance.Color_plate = value; } } @@ -278,15 +235,11 @@ namespace JoyD.Windows.CS.Toprie { get { - // TODO: 实现获取镜像模式 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoMirror(ipx, &i); } - return i; + return v8Instance.Mirror_mode; } set { - // TODO: 实现设置镜像模式 - 需添加DllImport声明 - // SdkSetVideoMirror(ipx, value); + v8Instance.Mirror_mode = value; } } @@ -294,62 +247,43 @@ namespace JoyD.Windows.CS.Toprie { get { - // TODO: 实现获取视频模式 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoMode(ipx, &i); } - return i; + return v8Instance.Video_mode; } set { - // TODO: 实现设置视频模式 - 需添加DllImport声明 - // SdkSetVideoMode(ipx, value); + v8Instance.Video_mode = value; } } public void Set_area_pos(int index, AreaPos area_data) { - // TODO: 实现设置区域位置 - 需添加DllImport声明 - // unsafe { SdkSetAreaPos(ipx, index, &area_data); } + v8Instance.Set_area_pos(index, area_data); } public AreaPos Get_area_pos(int index) { - // TODO: 实现获取区域位置 - 需添加DllImport声明 - AreaPos area_data = new AreaPos(); - // unsafe { SdkGetAreaPos(ipx, index, &area_data); } - return area_data; + return v8Instance.Get_area_pos(index); } public void Set_spot_pos(int index, SpotPos spot_data) { - // TODO: 实现设置点位置 - 需添加DllImport声明 - // unsafe { SdkSetSpotPos(ipx, index, &spot_data); } + v8Instance.Set_spot_pos(index, spot_data); } public SpotPos Get_spot_pos(int index) { - // TODO: 实现获取点位置 - 需添加DllImport声明 - SpotPos spot_data = new SpotPos(); - // unsafe { SdkGetSpotPos(ipx, index, &spot_data); } - return spot_data; + return v8Instance.Get_spot_pos(index); } public LinePos Line_pos { set { - // TODO: 实现设置线位置 - 需添加DllImport声明 - // unsafe - // { - // SdkSetLinePos(ipx, &value); - // } + v8Instance.Line_pos = value; } get { - // TODO: 实现获取线位置 - 需添加DllImport声明 - LinePos line_data = new LinePos(); - // unsafe { SdkGetLinePos(ipx, &line_data); } - return line_data; + return v8Instance.Line_pos; } } @@ -357,13 +291,7 @@ namespace JoyD.Windows.CS.Toprie { get { - // TODO: 实现获取所有位置 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ImagePos))); - ImagePos data = new ImagePos(); - // SdkGetAllPos(ipx, ip); - // data = (ImagePos)Marshal.PtrToStructure(ip, typeof(ImagePos)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.All_pos; } } @@ -371,15 +299,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置温度范围 - 需添加DllImport声明 - // SdkSetTempRange(ipx, value); + v8Instance.Temp_range = value; } get { - // TODO: 实现获取温度范围 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetTempRange(ipx, &i); } - return i; + return v8Instance.Temp_range; } } @@ -387,15 +311,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置X偏移 - 需添加DllImport声明 - // SdkSetVideoIspXOffset(ipx, value); + v8Instance.Video_isp_x_offset = value; } get { - // TODO: 实现获取X偏移 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoIspXOffset(ipx, &i); } - return i; + return v8Instance.Video_isp_x_offset; } } @@ -403,15 +323,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置Y偏移 - 需添加DllImport声明 - // SdkSetVideoIspYOffset(ipx, value); + v8Instance.Video_isp_y_offset = value; } get { - // TODO: 实现获取Y偏移 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoIspYOffset(ipx, &i); } - return i; + return v8Instance.Video_isp_y_offset; } } @@ -419,15 +335,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置X缩放 - 需添加DllImport声明 - // SdkSetVideoIspXScale(ipx, value); + v8Instance.Video_isp_x_scale = value; } get { - // TODO: 实现获取X缩放 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoIspXScale(ipx, &i); } - return i; + return v8Instance.Video_isp_x_scale; } } @@ -435,15 +347,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置Y缩放 - 需添加DllImport声明 - // SdkSetVideoIspYScale(ipx, value); + v8Instance.Video_isp_y_scale = value; } get { - // TODO: 实现获取Y缩放 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetVideoIspYScale(ipx, &i); } - return i; + return v8Instance.Video_isp_y_scale; } } @@ -451,15 +359,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置LED - 需添加DllImport声明 - // SdkSetLed(ipx, value); + v8Instance.Set_led = value; } get { - // TODO: 实现获取LED状态 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetLed(ipx, &i); } - return i; + return v8Instance.Set_led; } } @@ -467,21 +371,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置邮件服务器 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EmailServer))); - Marshal.StructureToPtr(value, ip, true); - // SdkSetEmailServer(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Email_server = value; } get { - // TODO: 实现获取邮件服务器 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EmailServer))); - EmailServer data = new EmailServer(); - // SdkGetEmailServer(ipx, ip); - // data = (EmailServer)Marshal.PtrToStructure(ip, typeof(EmailServer)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Email_server; } } @@ -489,21 +383,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置TFTP服务器 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TftpServer))); - Marshal.StructureToPtr(value, ip, true); - // SdkSetTftpServer(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Tftp_server = value; } get { - // TODO: 实现获取TFTP服务器 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TftpServer))); - TftpServer data = new TftpServer(); - // SdkGetTftpServer(ipx, ip); - // data = (TftpServer)Marshal.PtrToStructure(ip, typeof(TftpServer)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Tftp_server; } } @@ -511,21 +395,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置网络参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NetworkEth))); - Marshal.StructureToPtr(value, ip, true); - // SdkSetNetworkEth(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Network_eth = value; } get { - // TODO: 实现获取网络参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(NetworkEth))); - NetworkEth data = new NetworkEth(); - // SdkGetNetworkEth(ipx, ip); - // data = (NetworkEth)Marshal.PtrToStructure(ip, typeof(NetworkEth)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Network_eth; } } @@ -533,285 +407,148 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置融合距离 - 需添加DllImport声明 - // SdkSetFusionDistance(ipx, value); + v8Instance.Fusion_distance = value; } get { - // TODO: 实现获取融合距离 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetFusionDistance(ipx, &i); } - return i; + return v8Instance.Fusion_distance; } } public void Set_envir_param(EnvirParam data) { - // TODO: 实现设置环境参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam))); - Marshal.StructureToPtr(data, ip, true); - // SdkSetEnvirParam(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Set_envir_param(data); } public EnvirParam Get_area_envir_param(int index) { - // TODO: 实现获取区域环境参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam))); - EnvirParam data = new EnvirParam(); - // SdkGetAreaEnvirParam(ipx, index, ip); - // data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_area_envir_param(index); } public EnvirParam Get_spot_envir_param(int index) { - // TODO: 实现获取点环境参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam))); - EnvirParam data = new EnvirParam(); - // SdkGetSpotEnvirParam(ipx, index, ip); - // data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_spot_envir_param(index); } public EnvirParam Get_line_envir_param() { - // TODO: 实现获取线环境参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam))); - EnvirParam data = new EnvirParam(); - // SdkGetLineEnvirParam(ipx, 0, ip); - // data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_line_envir_param(); } public EnvirParam Get_globa_envir_param() { - // TODO: 实现获取全局环境参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(EnvirParam))); - EnvirParam data = new EnvirParam(); - // SdkGetGlobaEnvirParam(ipx, ip); - // data = (EnvirParam)Marshal.PtrToStructure(ip, typeof(EnvirParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_globa_envir_param(); } public void Set_alarm_param(AlarmParam data) { - // TODO: 实现设置报警参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam))); - Marshal.StructureToPtr(data, ip, true); - // SdkSetAlarmParam(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Set_alarm_param(data); } public AlarmParam Get_area_alarm_param(int index) { - // TODO: 实现获取区域报警参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam))); - AlarmParam data = new AlarmParam(); - // SdkGetAreaAlarmParam(ipx, index, ip); - // data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_area_alarm_param(index); } public AlarmParam Get_spot_alarm_param(int index) { - // TODO: 实现获取点报警参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam))); - AlarmParam data = new AlarmParam(); - // SdkGetSpotAlarmParam(ipx, index, ip); - // data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_spot_alarm_param(index); } public AlarmParam Get_globa_alarm_param() { - // TODO: 实现获取全局报警参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam))); - AlarmParam data = new AlarmParam(); - // SdkGetLineAlarmParam(ipx, 0, ip); - // data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_globa_alarm_param(); } public AlarmParam Get_line_alarm_param() { - // TODO: 实现获取线报警参数 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AlarmParam))); - AlarmParam data = new AlarmParam(); - // SdkGetLineAlarmParam(ipx, 0, ip); - // data = (AlarmParam)Marshal.PtrToStructure(ip, typeof(AlarmParam)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_line_alarm_param(); } public AreaTemp Get_area_temp(int index) { - // TODO: 实现获取区域温度 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(AreaTemp))); - AreaTemp data = new AreaTemp(); - // SdkGetAreaTempData(ipx, index, ip); - // data = (AreaTemp)Marshal.PtrToStructure(ip, typeof(AreaTemp)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_area_temp(index); } public SpotTemp Get_spot_temp(int index) { - // TODO: 实现获取点温度 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SpotTemp))); - SpotTemp data = new SpotTemp(); - // SdkGetSpotTempData(ipx, index, ip); - // data = (SpotTemp)Marshal.PtrToStructure(ip, typeof(SpotTemp)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_spot_temp(index); } public LineTemp Get_line_temp() { - // TODO: 实现获取线温度 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LineTemp))); - LineTemp data = new LineTemp(); - // SdkGetLineTempData(ipx, 0, ip); - // data = (LineTemp)Marshal.PtrToStructure(ip, typeof(LineTemp)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_line_temp(); } public GlobaTemp Get_globa_temp() { - // TODO: 实现获取全局温度 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(GlobaTemp))); - GlobaTemp data = new GlobaTemp(); - // SdkGetGlobaTempData(ipx, ip); - // data = (GlobaTemp)Marshal.PtrToStructure(ip, typeof(GlobaTemp)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_globa_temp(); } public ImageTemp Get_all_temp() { - // TODO: 实现获取所有温度数据 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(ImageTemp))); - ImageTemp data = new ImageTemp(); - // SdkGetAllTempData(ipx, ip); - // data = (ImageTemp)Marshal.PtrToStructure(ip, typeof(ImageTemp)); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_all_temp(); } public void Power_reboot() { - // TODO: 实现设备重启 - 需添加DllImport声明 - // SdkPowerReboot(ipx); + v8Instance.Power_reboot(); } public void Param_recover() { - // TODO: 实现参数恢复 - 需添加DllImport声明 - // SdkParamRecover(ipx); + v8Instance.Param_recover(); } public void Update() { - // TODO: 实现设备更新 - 需添加DllImport声明 - // SdkUpdate(ipx); + v8Instance.Update(); } public int Heartbeat() { - // TODO: 实现心跳检测 - 需添加DllImport声明 - try - { - // 确保ipx指针有效 - if (ipx == IntPtr.Zero) - { - Console.WriteLine("SDK实例IP指针无效"); - return -1; - } - - // int result = SdkHeartbeat(ipx); - return 0; // 默认返回0表示成功 - } - catch (Exception ex) - { - Console.WriteLine($"心跳检测异常: {ex.Message}"); - return -1; - } + return v8Instance.Heartbeat(); } public void Set_uart(int nSpeed, int nBits, char nEvent, int nStop) { - // TODO: 实现设置串口 - 需添加DllImport声明 - // SdkSetUart(ipx, nSpeed, nBits, nEvent, nStop); + v8Instance.Set_uart(nSpeed, nBits, nEvent, nStop); } public void Send_uart_command(byte[] cmd) { - // TODO: 实现发送串口命令 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(cmd.Length); - char len = (char)cmd.Length; - // SdkSendUartCommand(ipx, ip, len); - Marshal.FreeHGlobal(ip); + v8Instance.Send_uart_command(cmd); } public void Autofocus(FocusParam data) { - // TODO: 实现自动对焦 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(FocusParam))); - Marshal.StructureToPtr(data, ip, true); - // SdkAutofocus(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Autofocus(data); } public void Set_device_name(string data) { - // TODO: 实现设置设备名称 - 需添加DllImport声明 - IntPtr ip = Marshal.StringToHGlobalAnsi(data); - // SdkSetDeviceName(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Set_device_name(data); } public string Get_device_name() { - // TODO: 实现获取设备名称 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(128); - // SdkGetDeviceName(ipx, ip); - string str = Marshal.PtrToStringAnsi(ip); - Marshal.FreeHGlobal(ip); - return str; + return v8Instance.Get_device_name(); } public byte[] Get_detect_number() { - // TODO: 实现获取检测编号 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(20); - // SdkGetDetectNumber(ipx, ip); - byte[] data = new byte[20]; - // Marshal.Copy(ip, data, 0, 20); - Marshal.FreeHGlobal(ip); - return data; + return v8Instance.Get_detect_number(); } public char Temp_frame { set { - // TODO: 实现设置温度帧 - 需添加DllImport声明 - // SdkSetTempFrame(ipx, value); + v8Instance.Temp_frame = value; } get { - // TODO: 实现获取温度帧 - 需添加DllImport声明 - char i = (char)0; - // unsafe { SdkGetTempFrame(ipx, &i); } - return i; + return v8Instance.Temp_frame; } } @@ -819,15 +556,11 @@ namespace JoyD.Windows.CS.Toprie { set { - // TODO: 实现设置报警输出 - 需添加DllImport声明 - // SdkSetAlarmOut(ipx, value); + v8Instance.Alarm = value; } get { - // TODO: 实现获取报警输入 - 需添加DllImport声明 - char i = (char)0; - // unsafe { SdkGetAlarmIn(ipx, &i); } - return i; + return v8Instance.Alarm; } } @@ -835,20 +568,13 @@ namespace JoyD.Windows.CS.Toprie { get { - // TODO: 实现获取补偿温度 - 需添加DllImport声明 - int i = 0; - // unsafe { SdkGetCompTemp(ipx, &i); } - return i; + return v8Instance.Comp_temp; } } public void Set_time(TimeParam data) { - // TODO: 实现设置系统时间 - 需添加DllImport声明 - IntPtr ip = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TimeParam))); - Marshal.StructureToPtr(data, ip, true); - // SdkSetTime(ipx, ip); - Marshal.FreeHGlobal(ip); + v8Instance.Set_time(data); } } } \ No newline at end of file