using Newtonsoft.Json; using System; using ZJ_BYD.Model; namespace ZJ_BYD.Untils { /// /// CAN通讯 /// public class CAN1Helper { public static (bool isOk, string barCode, string msg) CanCommunication(T_MaskCode mskcode, string barCode) { CAN1DeviceHelper.Instance.Run(); LogHelper.WriteLog(JsonConvert.SerializeObject(CAN1DeviceHelper.Instance.DeviceInfo)); //软件编码、引导版本号、电压上限、电压下限 string softcode; string guideversion; decimal voltagemax_1; decimal voltagemin_1; decimal volt_sum = 0; try { softcode = mskcode.SoftCode; guideversion = mskcode.GuideVersion; var voltagemax = mskcode.VoltageMax; var voltagemin = mskcode.VoltageMin; decimal.TryParse(voltagemax, out voltagemax_1); decimal.TryParse(voltagemin, out voltagemin_1); if (CAN1DeviceHelper.Instance.DeviceInfo != null && CAN1DeviceHelper.Instance.DeviceInfo.Voltage.Length >= 3) { volt_sum = Convert.ToDecimal(CAN1DeviceHelper.Instance.DeviceInfo.Voltage.Substring(0, 3).Trim()); } else { LogHelper.WriteLog($"232通讯时异常:{JsonConvert.SerializeObject(CAN1DeviceHelper.Instance.DeviceInfo)}"); } } catch (Exception ex) { var msg = ex == null ? "操作异常" : ex.Message; LogHelper.WriteLog($"打印时查询数据库中软件编码、引导版本号、电压上限、电压下限异常:{msg}"); return (false, "", $"{DateTime.Now:HH:mm:ss}>>>>>一体机反馈打印时查询数据库中软件编码、引导版本号、电压上限、电压下限异常:{msg}{Environment.NewLine}"); } //获取软件版本号 if (string.IsNullOrEmpty(CAN1DeviceHelper.Instance.DeviceInfo.SoftwareVersion)) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【软件版号本】读取为空"); } //验证软件编号 if (string.IsNullOrEmpty(CAN1DeviceHelper.Instance.DeviceInfo.SoftwareCode)) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【软件编号】 读取为空"); } //验证引导版本 if (string.IsNullOrEmpty(CAN1DeviceHelper.Instance.DeviceInfo.GuideVersion)) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【引导版本】读取为空"); } //与掩码表比对 if (softcode != CAN1DeviceHelper.Instance.DeviceInfo.SoftwareCode && guideversion != CAN1DeviceHelper.Instance.DeviceInfo.GuideVersion) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【软件编号:{CAN1DeviceHelper.Instance.DeviceInfo.SoftwareCode}】和【引导版本: {CAN1DeviceHelper.Instance.DeviceInfo.GuideVersion}】与掩码表匹配不一致"); } if (volt_sum < voltagemin_1 || volt_sum > voltagemax_1) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【电压:{CAN1DeviceHelper.Instance.DeviceInfo.Voltage}】不在范围内"); } if (CAN1DeviceHelper.Instance.DeviceInfo.SoftwareVersion.Length != mskcode.SoftVersionLen) { return (false, barCode, $"{DateTime.Now:HH:mm:ss}>>>>>验证设备信息NG,【软件版本:{CAN1DeviceHelper.Instance.DeviceInfo.SoftwareVersion}】长度不对"); } return (true, barCode, CAN1DeviceHelper.Instance.DeviceInfo.SoftwareVersion); } } }