Setting_NInit.cs 14.2 KB
using ConfigHelper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TSA_V.Common
{
    public class Setting_NInit
    {
       
        [MyConfigComment("1时自动启动,并隐藏窗口,=0时不需要")]
        public static   MyConfig<bool> App_AutoRun =true ;
       
        [MyConfigComment("系统主界面标题")]
        public static MyConfig<string> App_App_Title = "SmartWorkstation";
      
        [MyConfigComment("IO模块IP")]
        public static MyConfig<string> Device_IO_IP = "192.168.200.11";
        [MyConfigComment("IO模块端口号")]
        public static MyConfig<int> Device_IO_Port = 502;
         
        [MyConfigComment("默认语言")]
        public static MyConfig<string> App_Default_Language = "zh-CN";


        [MyConfigComment("是否调试状态")]
        public static MyConfig<bool> App_IsDebug = true;

         
        [MyConfigComment("是否需要进行AOI检测")]
        public static MyConfig<bool> Work_IsNeedAOI = false ;
 
        [MyConfigComment("工作模式")]
        public static MyConfig<int> Work_WorkMode =0;
     
        [MyConfigComment("自动工作间隔")]
        public static MyConfig<int> Work_AuToModeSeconds = 5;

        [MyConfigComment("是否需要统计")]
        public static MyConfig<bool> Work_IsNeedCount = true ;


        [MyConfigComment(" IO模块 0=康耐得 1=零点  2=南京实点 3=泥人科技,无线体")]
        public static MyConfig<int> Work_IOType =2;
         
        [MyConfigComment("元器件库名称的类型,0=英文,1=中文")]
        public static MyConfig<int> Work_LibNameType = 1;
         


        [MyConfigComment("相机名称")]
        public static MyConfig<string > Device_CameraName = "";
        [MyConfigComment("投影点默认尺寸")]
        public static MyConfig<int> Device_DefaultPointSize =5;
        [MyConfigComment("投影点默认类型")]
        public static MyConfig<int> Device_DefaultPointType =1;

        [MyConfigComment("投影屏幕索引,默认1")]
        public static MyConfig<int> Device_ProjectorScreen_Index = 1;



        [MyConfigComment("显示通信日志")]
        public static MyConfig<bool> App_Server_Log_Open =false;
        [MyConfigComment("组装完成后上传数据的服务器地址")]
        public static MyConfig<string> App_DCSServerAddr = "";
        [MyConfigComment("本地开放的http服务器端口号")]
        public static MyConfig<string> App_WebServiceAddr = "";
       
        [MyConfigComment("是否需要输入pcb条码")]
        public static MyConfig<bool> Device_NeedPCBCode = false;
        [MyConfigComment("是否禁用侧挡气缸")]
        public static MyConfig<bool> Device_DisableSideCylinder = true;
        [MyConfigComment("是否禁用底部气缸")]
        public static MyConfig<bool> Device_DisableBottomCylinder =true;
        [MyConfigComment("是否循环测试")]
        public static MyConfig<bool> Device_IsCycleDebug =false;
        [MyConfigComment("侧挡气缸是否先移动")]
        public static MyConfig<bool> Device_SideCylinderMoveFirst =true;
        [MyConfigComment("离线编程模式,自动进入过板模式")]
        public static MyConfig<bool> Device_AutoGuoBan = false ;



        [MyConfigComment("是否工作区域启动")]
        public static MyConfig<bool> Work_WorkSingleStart = false;
        [MyConfigComment("是否离线模式")]
        public static MyConfig<bool> Work_OfflineMode = false;
        [MyConfigComment("点位显示:优先使用位号")]
        public static MyConfig<int> Work_PointDisplayType =1;
         
        [MyConfigComment("最后一次中断的程序名称")]
        public static MyConfig<string> Work_ProcedureName = "";
         
        [MyConfigComment("最后一次工作的位号")]
        public static MyConfig<int> Work_TagNumber = 0; 
        [MyConfigComment("禁用继续未完成程序功能")]
        public static MyConfig<bool> Work_DisContinueWorking = true ;

        [MyConfigComment("禁用投影屏幕显示报警")]
        public static MyConfig<bool> Work_DisShowScreenAlarm = true ;


        [MyConfigComment("软件配置是否需要迁移")]
        public static MyConfig<bool> Soft_NeedChangeConfig = true ;

        [MyConfigComment("软件配置迁移完成")]
        public static MyConfig<bool > Soft_ChangeOk= false;





        [MyConfigComment("调宽配置:电机回原点后的宽度")]
        public static MyConfig<int> Line_HomeWidth = 508;
        [MyConfigComment("调宽配置:宽度转换系数,1mm对应的电机位置")]
        public static MyConfig<int> Line_ChangeValue = 200;
        [MyConfigComment("调宽配置:调宽伺服地址")]
        public static MyConfig<int> Line_NodeAddr = 11;
        [MyConfigComment("流水线最后一次调的宽度")]
        public static MyConfig<int> Line_LastWidth = 400;
        [MyConfigComment("宽度对应位置配置")]
        public static MyConfig<string > Line_WidthPosition = "";


        [MyConfigComment("SMF服务器地址")]
        public static MyConfig<string> App_Server = "";
        [MyConfigComment("设备Cid")]
        public static MyConfig<string> App_Cid = "";


        [MyConfigComment("是否打开报警音效")]
        public static MyConfig<bool> Set_AlarmSound =true;
        [MyConfigComment("是否打开提示音")]
        public static MyConfig<bool> Set_TipSound = true;
        [MyConfigComment("是否限制鼠标不能移出主屏幕")]
        public static MyConfig<bool> Set_CursorProcess= true;
         
        [MyConfigComment("报警音效文件")]
        public static MyConfig<string> Set_AlarmSoundFile = @"\sound\alarm.wav";
        [MyConfigComment("新板子开始音效文件")]
        public static MyConfig<string> Set_NewBoardSound = @"\sound\newBoard.wav";
        [MyConfigComment("板子结束音效文件")]
        public static MyConfig<string> Set_BoardEndSound = @"\sound\boardEnd.wav";
        [MyConfigComment("点位切换音效文件")]
        public static MyConfig<string> Set_PointChangeSound = @"\sound\pointC.wav";

        public static void ChangeConfig()
        {
            try
            {
                ConfigRead();
                //配置迁移
                if (!Soft_NeedChangeConfig)
                {
                    LogUtil.info("不需要迁移配置,直接返回");
                    return;
                }
                if (Soft_ChangeOk.Val)
                {
                    LogUtil.info("已迁移过配置,直接返回");
                    return;
                }
                App_Server = ConfigAppSettings.GetValue("SMF_Serverurl" , App_Server); 
                App_Cid = ConfigAppSettings.GetValue("SMF_CID",App_Cid);
                Device_ProjectorScreen_Index = ConfigAppSettings.GetIntValue(Setting_Init.ProjectorScreen_Index, Device_ProjectorScreen_Index);
                Work_DisShowScreenAlarm = ConfigAppSettings.GetBoolValue(Setting_Init.DisShowScreenAlarm, Work_DisShowScreenAlarm);
                Work_DisContinueWorking = ConfigAppSettings.GetBoolValue(Setting_Init.DisContinueWorking);
                Work_TagNumber = ConfigAppSettings.GetIntValue(Setting_Init.TagNumber, Work_TagNumber);
                Work_ProcedureName = ConfigAppSettings.GetValue(Setting_Init.ProcedureName, Work_ProcedureName);
                Work_PointDisplayType = ConfigAppSettings.GetIntValue(Setting_Init.PointDisplayType, Work_PointDisplayType);
                Work_OfflineMode = ConfigAppSettings.GetBoolValue(Setting_Init.OfflineMode, Work_OfflineMode);
                Work_WorkSingleStart = ConfigAppSettings.GetBoolValue(Setting_Init.WorkSingleStart, Work_WorkSingleStart);
                Device_SideCylinderMoveFirst = ConfigAppSettings.GetBoolValue(Setting_Init.SideCylinderMoveFirst, Device_SideCylinderMoveFirst);
                Device_IsCycleDebug = ConfigAppSettings.GetBoolValue(Setting_Init.IsCycleDebug, Device_IsCycleDebug);
                Device_DisableBottomCylinder = ConfigAppSettings.GetBoolValue(Setting_Init.DisableBottomCylinder, Device_DisableBottomCylinder);
                Device_DisableSideCylinder = ConfigAppSettings.GetBoolValue(Setting_Init.DisableSideCylinder, Device_DisableSideCylinder);

                Device_NeedPCBCode = ConfigAppSettings.GetBoolValue(Setting_Init.NeedPCBCode, Device_NeedPCBCode);
                App_WebServiceAddr = ConfigAppSettings.GetValue(Setting_Init.WebServiceAddr, App_WebServiceAddr);
                App_DCSServerAddr = ConfigAppSettings.GetValue(Setting_Init.DCSServerAddr, App_DCSServerAddr);
                App_Server_Log_Open = ConfigAppSettings.GetBoolValue(Setting_Init.Server_Log_Open, App_Server_Log_Open);


                Device_DefaultPointType = ConfigAppSettings.GetIntValue(Setting_Init.DefaultPointType, Device_DefaultPointType);
                Device_DefaultPointSize = ConfigAppSettings.GetIntValue(Setting_Init.DefaultPointSize, Device_DefaultPointSize);
                Work_IOType = ConfigAppSettings.GetIntValue(Setting_Init.UseAIOBOX, Work_IOType);
                Work_IsNeedCount = ConfigAppSettings.GetBoolValue(Setting_Init.IsNeedCount, Work_IsNeedCount);
                Work_AuToModeSeconds = ConfigAppSettings.GetIntValue(Setting_Init.AuToModeSeconds, Work_AuToModeSeconds);
                Work_WorkMode = ConfigAppSettings.GetIntValue(Setting_Init.WorkMode, Work_WorkMode);
                Work_IsNeedAOI = ConfigAppSettings.GetBoolValue(Setting_Init.IsNeedAOI, Work_IsNeedAOI);
                Device_CameraName = ConfigAppSettings.GetValue(Setting_Init.CameraName, Device_CameraName);

                App_IsDebug = ConfigAppSettings.GetBoolValue(Setting_Init.IsDebug, App_IsDebug);
                Device_IO_Port = ConfigAppSettings.GetIntValue(Setting_Init.IO_Port, Device_IO_Port);
                Device_IO_IP = ConfigAppSettings.GetValue(Setting_Init.IO_IP, Device_IO_IP);
                App_App_Title = ConfigAppSettings.GetValue(Setting_Init.App_Title, App_App_Title);
                App_AutoRun = ConfigAppSettings.GetBoolValue(Setting_Init.App_AutoRun, App_AutoRun);
                App_Default_Language = ConfigAppSettings.GetValue(Setting_Init.Default_Language, App_Default_Language);

                Line_ChangeValue = ConfigAppSettings.GetIntValue(Setting_Init.Line_ChangeValue, Line_ChangeValue);
                Line_HomeWidth = ConfigAppSettings.GetIntValue(Setting_Init.Line_HomeWidth, Line_HomeWidth);
                Line_NodeAddr = ConfigAppSettings.GetIntValue(Setting_Init.Line_NodeAddr, Line_NodeAddr);
                Line_LastWidth = ConfigAppSettings.GetIntValue(Setting_Init.Line_LastWidth, Line_LastWidth);
                Line_WidthPosition = ConfigAppSettings.GetValue(Setting_Init.Line_WidthPosition, Line_WidthPosition);
                 
                Soft_NeedChangeConfig = true;
                Soft_ChangeOk = true;
                LogUtil.info(" 配置迁移完成, 备份并删除原来配置");
                ConfigAppSettings.BackFile();


                ConfigAppSettings.RemoveKey(Setting_Init.ProjectorScreen_Index);
                ConfigAppSettings.RemoveKey(Setting_Init.DisShowScreenAlarm);
                ConfigAppSettings.RemoveKey(Setting_Init.DisContinueWorking);
                ConfigAppSettings.RemoveKey(Setting_Init.TagNumber);
                ConfigAppSettings.RemoveKey(Setting_Init.ProcedureName);
                ConfigAppSettings.RemoveKey(Setting_Init.PointDisplayType);
                ConfigAppSettings.RemoveKey(Setting_Init.OfflineMode);
                ConfigAppSettings.RemoveKey(Setting_Init.WorkSingleStart);
                ConfigAppSettings.RemoveKey(Setting_Init.SideCylinderMoveFirst);
                ConfigAppSettings.RemoveKey(Setting_Init.IsCycleDebug);
                ConfigAppSettings.RemoveKey(Setting_Init.DisableBottomCylinder);
                ConfigAppSettings.RemoveKey(Setting_Init.DisableSideCylinder);

                ConfigAppSettings.RemoveKey(Setting_Init.NeedPCBCode);
                ConfigAppSettings.RemoveKey(Setting_Init.WebServiceAddr);
                ConfigAppSettings.RemoveKey(Setting_Init.DCSServerAddr);
                ConfigAppSettings.RemoveKey(Setting_Init.Server_Log_Open);


                ConfigAppSettings.RemoveKey(Setting_Init.DefaultPointType);
                ConfigAppSettings.RemoveKey(Setting_Init.DefaultPointSize);
                ConfigAppSettings.RemoveKey(Setting_Init.UseAIOBOX);
                ConfigAppSettings.RemoveKey(Setting_Init.IsNeedCount);
                ConfigAppSettings.RemoveKey(Setting_Init.AuToModeSeconds);
                ConfigAppSettings.RemoveKey(Setting_Init.WorkMode);
                ConfigAppSettings.RemoveKey(Setting_Init.IsNeedAOI);
                ConfigAppSettings.RemoveKey(Setting_Init.CameraName);

                ConfigAppSettings.RemoveKey(Setting_Init.IsDebug);
                ConfigAppSettings.RemoveKey(Setting_Init.IO_Port);
                ConfigAppSettings.RemoveKey(Setting_Init.IO_IP);
                ConfigAppSettings.RemoveKey(Setting_Init.App_Title);
                ConfigAppSettings.RemoveKey(Setting_Init.App_AutoRun);
                ConfigAppSettings.RemoveKey(Setting_Init.Default_Language);

                ConfigAppSettings.RemoveKey(Setting_Init.Line_ChangeValue);
                ConfigAppSettings.RemoveKey(Setting_Init.Line_HomeWidth);
                ConfigAppSettings.RemoveKey(Setting_Init.Line_NodeAddr);
                ConfigAppSettings.RemoveKey(Setting_Init.Line_LastWidth);
                ConfigAppSettings.RemoveKey(Setting_Init.Line_WidthPosition); 
                ConfigAppSettings.RemoveKey("SMF_Serverurl");
                ConfigAppSettings.RemoveKey("SMF_CID"); 
                 

            }
            catch (Exception ex)
            {
                LogUtil.error("配置迁移出错:" + ex.ToString());
            }
        }


        public static void ConfigRead()
        {
            try
            {
                Device_AutoGuoBan = ConfigAppSettings.GetBoolValue("Device_AutoGuoBan", Device_AutoGuoBan);
                ConfigAppSettings.RemoveKey("Device_AutoGuoBan");

            }
            catch (Exception ex)
            {
                LogUtil.error("ConfigRead 出错: " + ex.ToString());
            }

        }
    }
}