Exemple #1
0
        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();
        }
Exemple #4
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        /// <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 + "未找到");
            }
        }
Exemple #9
0
        /// <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);
        }