private void Do() { Task.Factory.StartNew(() => { List <int> ports = CMDNetstatTool.GetAvailablePorts(10, 52810); if (Ls.Ok(ports)) { foreach (var p in ports) { try { R.Tx.TcppPort = p; R.Tx.TcppServer = new TcppServer(R.Tx.TcppPort, TcppEvent.ReceiveMessage, TcppEvent.OnConnect, TcppEvent.OnDisconnect); R.Tx.TcppServer.Start();//启动 Socket Tcp 通信机制 IniTool.Set(R.Files.Settings, "Tx", "TcppPort", R.Tx.TcppPort); IniTool.Set(R.Files.Settings, "Tx", "StartTime", DateTime.Now.ToString()); break; } catch { } } } R.USBListener.Start(); // 启动USB监控 R.USBStorageListener.Start(); // 启动U盘监控 }); }
public override bool SaveParam() { string fileName = $@"{m_strDir}param.ini"; if (!System.IO.Directory.Exists(m_strDir)) { System.IO.Directory.CreateDirectory(m_strDir); } IniTool.Set(fileName, "camera", "exposure", m_ExposureTime); return(true); }
private void AutoForm_FormClosing(object sender, FormClosingEventArgs e) { SaveParam(); //获取相机名称 string fileName = $@"{System.Environment.CurrentDirectory}\Product\CameraName.ini"; IniTool.Set(fileName, "CameraName", "MainCamera", CameraName.MainCamera); IniTool.Set(fileName, "CameraName", "SideCamera", CameraName.SideCamera); //关闭所有相机 VisionMgr.GetInstance().CloseCameraAll(); }
private void AutoForm_FormClosing(object sender, FormClosingEventArgs e) { SaveParam(); //获取相机名称 string fileName = $@"{System.Environment.CurrentDirectory}\Product\CameraName.ini"; IniTool.Set(fileName, "CameraName", "MainCamera", CameraName.MainCamera); IniTool.Set(fileName, "CameraName", "SideCamera", CameraName.SideCamera); foreach (var cam in VisionMgr.GetInstance().m_dicCamera.Values) { cam.Close(); } }
/// <summary> /// 设定曝光值 /// </summary> /// <param name="nExp"></param> public override void SetExposureTime(int nExp) { try { m_Camera.SetGrabParam("ExposureTimeAbs", nExp); m_ExposureTime = nExp; if (!System.IO.Directory.Exists(m_strDir)) { System.IO.Directory.CreateDirectory(m_strDir); } IniTool.Set($@"{m_strDir}param.ini", "camera", "exposure", m_ExposureTime); } catch (Exception) { } }
/// <summary> /// /// </summary> /// <returns></returns> public override bool SaveParam() { string fileName = $@"{m_strDir}param.ini"; if (!System.IO.Directory.Exists(m_strDir)) { System.IO.Directory.CreateDirectory(m_strDir); } //if (MeasureHandle != null) //{ // HOperatorSet.WriteMeasure(MeasureHandle, $"{m_strDir}MeasureHandle.mea"); // HOperatorSet.WriteObject(MeasureRect, $"{MeasureRect}MeasureRect.hobj"); //} IniTool.Set(fileName, "camera", "exposure", m_ExposureTime); return(true); }
private static void InitConfig() { //通讯接受 Tx R.Tx.Port = IniTool.GetInt(R.Files.Settings, "Tx", "Port", 52830); IniTool.Set(R.Files.Settings, "Tx", "Port", R.Tx.Port); R.Tx.ConnectKey = IniTool.GetString(R.Files.Settings, "Tx", "ConnectKey", R.Tx.ConnectKey); IniTool.Set(R.Files.Settings, "Tx", "ConnectKey", R.Tx.ConnectKey); //通讯转发 TxConvert R.TxConvert.IP = IniTool.GetString(R.Files.Settings, "TxConvert", "IP", "vaselee.com"); IniTool.Set(R.Files.Settings, "TxConvert", "IP", R.TxConvert.IP); R.TxConvert.Port = IniTool.GetInt(R.Files.Settings, "TxConvert", "Port", 0); IniTool.Set(R.Files.Settings, "TxConvert", "Port", R.TxConvert.Port); R.TxConvert.ConnectKey = IniTool.GetString(R.Files.Settings, "TxConvert", "ConnectKey", R.TxConvert.ConnectKey); IniTool.Set(R.Files.Settings, "TxConvert", "ConnectKey", R.TxConvert.ConnectKey); }
/// <summary> /// 保存各个相机的曝光值到ini /// </summary> public void WriteExposureTime(string strStep, int nExp) { string strFile = m_strConfigDir /*/* + strStep + "/"*/ + /*strStep+*/ "param.ini"; IniTool.Set(strFile, "ExposureTime", "nExp", nExp.ToString()); //IniOperation.WriteValue(strFile, "ExposureTime", "nExp", nExp.ToString()); // IniOperation.WriteValue(strFile, strStep, "ExposureTime", nExp.ToString()); VisionBase vb; if (m_dicVision.TryGetValue(strStep, out vb)) { vb.SetExposureTime(nExp); } else { throw new Exception("系统指定的视觉处理步骤:" + strStep + "未找到"); } }
/// <summary> /// 初始化Ini配置信息 /// </summary> static void InitIni() { DirTool.Create(R.Paths.Settings); DirTool.Create(R.Paths.Projects); DirTool.Create(R.Paths.DefaultPublishStorage); DirTool.Create(R.Paths.DefaultNewStorage); R.Paths.PublishStorage = IniTool.GetString(R.Files.Settings, "Paths", "PublishStorage", R.Paths.DefaultPublishStorage); if (string.IsNullOrWhiteSpace(R.Paths.PublishStorage)) { R.Paths.PublishStorage = R.Paths.DefaultPublishStorage; } R.Paths.NewStorage = IniTool.GetString(R.Files.Settings, "Paths", "NewStorage", R.Paths.DefaultNewStorage); if (string.IsNullOrWhiteSpace(R.Paths.NewStorage)) { R.Paths.NewStorage = R.Paths.DefaultNewStorage; } R.Tx.IP = IniTool.GetString(R.Files.Settings, "Console", "IP", ""); R.Tx.Port = IniTool.GetInt(R.Files.Settings, "Console", "Port", 0); R.Tx.LocalIP = IniTool.GetString(R.Files.Settings, "Local", "IP", ""); R.Tx.LocalName = IniTool.GetString(R.Files.Settings, "Local", "Name", ""); R.IsAutoDeleteExpiredLog = IniTool.GetBool(R.Files.Settings, "Settings", "AutoDeleteExpiredLog", false); R.AppID = IniTool.GetString(R.Files.Settings, "App", "ID", ""); if (!Str.Ok(R.AppID)) { R.AppID = GuidTool.Short(); IniTool.Set(R.Files.Settings, "App", "ID", R.AppID); } if (!File.Exists(R.Files.NewStorageReadme)) { TxtTool.Create(R.Files.NewStorageReadme, R.NewStorageReadmeTxt); } }
/// <summary> /// 接受消息 /// </summary> /// <param name="host"></param> /// <param name="model"></param> public static void ReceiveMessage(string host, TcpDataModel model) { switch (model.Type) { case 10001000: R.Tx.IsAuth = true; R.Tx.ConnectTime = DateTime.Now; R.MainUI.UITxStatus(); TxSendQueue.Start(); break; //状态信息 case 20001000: /* 普通应答 */ break; case 20001001: /* 状态 */ //R.MainUI.UIStatus(model); break; case 20001002: /* 状态(二维码) */ break; case 20002000: //R.MainUI.UILog(Json.Byte2Object<string>(model.Data)); break; case 20003000: //R.MainUI.UIScreen(model); break; case 20004000: /* 系统信息 */ //R.MainUI.UIInfo(model); break; case 20004001: /* 软件信息 */ //R.MainUI.UIInfo(model); break; case 20004002: /* 硬件信息 */ //R.MainUI.UIInfo(model); break; case 20004003: /* 共享信息 */ //R.MainUI.UIInfo(model); break; case 20004004: /* APP信息 */ //R.MainUI.UIInfo(model); break; case 30001000: //R.MainUI.UIConsole(Json.Byte2Object<List<string>>(model.Data)); break; //指令操作 case 40001000: /* 清除过期日志 */ R.Log.I("收到指令操作:40001000:清除过期日志:15天之前日志"); LogCleaner.CleanLogFile(); break; case 40002000: /* 重启服务 */ try { R.Log.I("收到指令操作:40002000:重启服务"); string ss = Json.Byte2Object <string>(model.Data); Tuple <string, int> info = Json.String2Object <Tuple <string, int> >(ss); if (R.Tx.LocalIP == info.Item1 && R.ProjectItems.Any(x => x.Port == info.Item2)) { Parts.ProjectItemPart item = R.ProjectItems.FirstOrDefault(x => x.Port == info.Item2); if (item != null) { item.Restart(); } } } catch { } break; //更新操作 case 90001000: /* 获取更新文件基本信息 */ try { Tuple <string, string> data = Json.Byte2Object <Tuple <string, string> >(model.Data); if (Str.Ok(data.Item1, data.Item2)) { R.AppointName = data.Item1; R.AppointMD5 = data.Item2; TxSendQueue.Add(90001000, "Fire in the hole"); } } catch { } break; case 90002000: /* 获取更新文件 */ try { if (Str.Ok(R.AppointName, R.AppointMD5)) { if (File.Exists(DirTool.Combine(R.Paths.App, R.AppointName))) { FileTool.Delete(DirTool.Combine(R.Paths.App, R.AppointName)); } if (BinaryFileTool.write(DirTool.Combine(R.Paths.App, R.AppointName), model.Data)) { IniTool.Set(R.Files.Settings, "Appoint", "Name", R.AppointName); IniTool.Set(R.Files.Settings, "Appoint", "MD5", R.AppointMD5); // 判断文件存在,并且MD5相符,则退出并运行新版本(否则删除不一致文件) if (File.Exists(DirTool.Combine(R.Paths.App, R.AppointName)) && FileTool.GetMD5(DirTool.Combine(R.Paths.App, R.AppointName)) == R.AppointMD5) { ProcessTool.Start(R.Files.App); R.MainUI.UIExitApp(); } else { FileTool.Delete(DirTool.Combine(R.Paths.App, R.AppointName)); } } } } catch { } break; default: break; } }
private bool SaveSettings() { bool flag = false; if (StringTool.Ok(TBPublishStorage.Text)) { if (Directory.Exists(TBPublishStorage.Text)) { R.Paths.PublishStorage = TBPublishStorage.Text; IniTool.Set(R.Files.Settings, "Paths", "PublishStorage", R.Paths.PublishStorage); flag = true; } else { LBDesc.Text = "发布资料库目录不存在"; } } else { R.Paths.PublishStorage = R.Paths.DefaultPublishStorage; //IniTool.WriteValue(R.Files.Settings, "Paths", "PublishStorage", R.Paths.PublishStorage); flag = true; } if (StringTool.Ok(TBNewStorage.Text)) { if (Directory.Exists(TBNewStorage.Text)) { R.Paths.NewStorage = TBNewStorage.Text; IniTool.Set(R.Files.Settings, "Paths", "NewStorage", R.Paths.NewStorage); flag = true; } else { LBDesc.Text = "新增资料库目录不存在"; } } else { R.Paths.NewStorage = R.Paths.DefaultNewStorage; //IniTool.WriteValue(R.Files.Settings, "Paths", "NewStorage", R.Paths.NewStorage); flag = true; } if (Str.Ok(TBConsoleIP.Text)) { R.Tx.IP = TBConsoleIP.Text; IniTool.Set(R.Files.Settings, "Console", "IP", R.Tx.IP); } if (Str.Ok(TBConsolePort.Text)) { if (int.TryParse(TBConsolePort.Text, out int port)) { R.Tx.Port = port; IniTool.Set(R.Files.Settings, "Console", "Port", R.Tx.Port); } } if (Str.Ok(TBLocalIP.Text)) { R.Tx.LocalIP = TBLocalIP.Text; IniTool.Set(R.Files.Settings, "Local", "IP", R.Tx.LocalIP); } if (Str.Ok(TBLocalName.Text)) { R.Tx.LocalName = TBLocalName.Text; IniTool.Set(R.Files.Settings, "Local", "Name", R.Tx.LocalName); } R.IsAutoDeleteExpiredLog = CBAutoDeleteExpiredLog.Checked; IniTool.Set(R.Files.Settings, "Settings", "AutoDeleteExpiredLog", R.IsAutoDeleteExpiredLog); return(flag); }