예제 #1
0
    /// <summary>
    /// 从配置文件读取串口信息
    /// </summary>
    /// <param name="xml"></param>
    /// <returns></returns>
    public static List <SerialInfo> SerialInfoList(string xml)
    {
        List <SerialInfo> serialList = new List <SerialInfo>();
        XmlDocument       document   = new XmlDocument();

        document.Load(xml); //加载xml文件

        //XmlDocument支持使用xpath表达式选择文档中节点,方法:SelectNodes(String expression)
        //SelectNodes 返回符合expression表达式的所有元素,返回值为XmlNodeList,获取serial所有的节点
        XmlNodeList nodeList = document.SelectNodes("config/serialInf/serial");

        //返回的XmlNodeList,我们可以通过循环读取,对于单个XmlNode,我们通过Attributes获取属性值。遍历节点获取节点属性,保存在SerialInfo类中
        foreach (XmlNode node in nodeList)
        {
            SerialInfo serialInfo = new SerialInfo();
            string     id         = node.SelectSingleNode("id").InnerText; // 返回符合id的第一个节点, InnerText获取标签文本,标签过滤
            //string enabled = node.SelectSingleNode("enabled").InnerText;
            string serialName = node.SelectSingleNode("serialName").InnerText;
            string baudRate   = node.SelectSingleNode("baudRate").InnerText;
            string dataBits   = node.SelectSingleNode("dataBits").InnerText;
            string stopBits   = node.SelectSingleNode("stopBits").InnerText;
            string parity     = node.SelectSingleNode("parity").InnerText;
            serialInfo.Id = id;
            //serialInfo.Enabled = enabled.Equals("true") || serialInfo.Equals("yes");
            serialInfo.SerialName = serialName;
            serialInfo.BaudRate   = baudRate;
            serialInfo.DataBits   = dataBits;
            serialInfo.StopBits   = stopBits;
            serialInfo.Parity     = parity;
            serialList.Add(serialInfo);
        }
        return(serialList);
    }
예제 #2
0
        public CoreConfig()
        {
            TempPath = "Temp";

            LightSerialInfo = new SerialInfo();

            HostPort          = 5555;
            InspectorPort     = 4000;
            ResultPath        = "../Result";
            LogPath           = "../Log";
            ImageFormat       = ImageFormat.Bmp;
            ResultStoringDays = 90;
            LogStoringDays    = 365;
            LightNum          = 1;

            ReponseTimeout = 200;
            ResultTimeout  = 2000;

            CommCheckDelay = 1000;

            StoringCheckDelay = 60;

            MaxLogCount = 1000;

            GrabCount = 220;

            ResolutionWidth  = 100;
            ResolutionHeight = 100;
        }
예제 #3
0
    public static SerialInfo SerialInfo(string xml)
    {
        XmlDocument document = new XmlDocument();

        document.Load(xml); //加载xml文件


        XmlNode    node       = document.SelectSingleNode("config/serialInf/serial");
        SerialInfo serialInfo = new SerialInfo();
        string     id         = node.SelectSingleNode("id").InnerText;

        serialInfo.SerialName = node.SelectSingleNode("serialName").InnerText;
        serialInfo.BaudRate   = node.SelectSingleNode("baudRate").InnerText;
        serialInfo.DataBits   = node.SelectSingleNode("dataBits").InnerText;
        serialInfo.StopBits   = node.SelectSingleNode("stopBits").InnerText;
        serialInfo.Parity     = node.SelectSingleNode("parity").InnerText;


        /*string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText;
         * string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText;
         * string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText;
         * string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText;
         * string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText;
         * string id = document.SelectSingleNode("config/serialInf/serial/id").InnerText; */
        return(serialInfo);
    }
예제 #4
0
        /// <summary>
        /// Serial Port에 접속
        /// </summary>
        /// <param name="serialInfo">Serial 통신 정보 객체</param>
        /// <returns>함수 실행 결과 (FuncResult 객체)</returns>
        public CommonStruct.FuncResult Connect(SerialInfo serialInfo = null)
        {
            CommonStruct.FuncResult result = new CommonStruct.FuncResult();

            stopWatch.Start();

            try
            {
                if (serialInfo == null && this.serialInfo == null)
                {
                    result.isSuccess = false;
                }
                else
                {
                    if (serialHandle == null)
                    {
                        serialHandle = new SerialPort();
                    }

                    if (serialInfo != null)
                    {
                        serialHandle.PortName = serialInfo.portName;
                        serialHandle.BaudRate = serialInfo.baudRate;
                        serialHandle.Parity   = serialInfo.parity;
                        serialHandle.DataBits = serialInfo.dataBits;
                        serialHandle.StopBits = serialInfo.stopBits;

                        serialHandle.Open();

                        this.serialInfo = serialInfo;
                    }
                    else
                    {
                        serialHandle.Open();
                    }
                }

                if (serialHandle.IsOpen)
                {
                    result.isSuccess = true;
                }
                else
                {
                    result.isSuccess = false;
                }
            }
            catch (Exception ex)
            {
                result.isSuccess     = false;
                result.funcException = ex;
            }

            stopWatch.Stop();

            result.totalMilliseconds = stopWatch.ElapsedMilliseconds;

            stopWatch.Reset();

            return(result);
        }
예제 #5
0
        public static void Main()
        {
            CommonInfo.Print();
            Debug.Print(String.Empty);

            I2CInfo.Print();
            Debug.Print(String.Empty);

            PwmInfo.Print();
            Debug.Print(String.Empty);

            AnalogOutputInfo.Print();
            Debug.Print(String.Empty);

            AnalogInfo.Print();
            Debug.Print(String.Empty);

            SpiInfo.Print();
            Debug.Print(String.Empty);

            SerialInfo.Print();
            Debug.Print(String.Empty);

            UsbInfo.Print();
        }
예제 #6
0
        public override void SerialObject()
        {
            ConditionSerialList.Clear();
            ConditionList.ForEach(v => ConditionSerialList.Add(SerialInfo.GetSerialInfo(v)));

            PredicateSerialList.Clear();
            PredicateList.ForEach(v => PredicateSerialList.Add(SerialInfo.GetSerialInfo(v)));
        }
예제 #7
0
        public override void SerialObject()
        {
            TestStrategySerial = SerialInfo.GetSerialInfo(TestStrategy);
            RiskPolicySerial   = SerialInfo.GetSerialInfo(RiskPolicy);
            DataSourceSerial   = SerialInfo.GetSerialInfo(CurrentDataSource);
            TradeGateSerial    = SerialInfo.GetSerialInfo(CurrentTradeGate);

            ConditionSerialList.Clear();
            ConditionList.ForEach(v => ConditionSerialList.Add(SerialInfo.GetSerialInfo(v)));
        }
예제 #8
0
        public void ValidateCase(string areaName, string locName, string caseID, List <string> serialList)
        {
            foreach (string item in serialList)
            {
                SerialInfo si = new SerialInfo();

                si.serial = item;

                LocationData d = new LocationData();
                d.curCase      = caseID;
                d.date         = DateTime.UtcNow.Date.ToString("dd/MM/yyyy");
                d.time         = DateTime.Now.ToString("h:mm:ss tt");
                d.location     = locName;
                d.lastLocation = true;
                d.userID       = "311015";


                si.locationData.Add(d);



                if (MongoCRUD.GetInstance().RecordExists <SerialInfo>("Serial", item, "serial"))
                {
                    MongoCRUD.GetInstance().AppendRecord <SerialInfo>("Serial", item, d);
                }
                else
                {
                    MongoCRUD.GetInstance().InsertRecord("Serial", si, item, caseID);
                }
            }

            CaseInfo ci = new CaseInfo();

            ci.caseID  = caseID;
            ci.curLoc  = locName;
            ci.ageInfo = DateTime.Now.ToString("MM-dd-yyyy hh: mm tt");

            MongoCRUD.GetInstance().InsertRecord("Cases", ci, caseID, null);

            List <AreaInfo> areas = MongoCRUD.GetInstance().LoadRecords <AreaInfo>("Areas", "areaName", areaName);

            if (areas.Count != 0)
            {
                foreach (LocationObject lo in areas[0].locationsList)
                {
                    if (lo.locName == ci.curLoc)
                    {
                        if (!lo.casesList.Contains(ci))
                        {
                            MongoCRUD.GetInstance().UpdateLocationCases(lo, areas[0], ci);
                        }
                    }
                }
            }
        }
예제 #9
0
 public static RTU GetInstance(SerialInfo serialInfo)
 {
     lock ("rtu")
     {
         if (_instance == null)
         {
             _instance = new RTU(serialInfo);
         }
         return(_instance);
     }
 }
예제 #10
0
 public Product(int id, string name, Color color, Channel channel, SerialInfo serialInfo,
                MarketValueDetails marketValueDetails, ProductionCondition productionCondition,
                List <string> destinationConutries)
 {
     Id                   = id;
     Name                 = name;
     Color                = color;
     Channel              = channel;
     SerialInfo           = serialInfo;
     MarketValueDetails   = marketValueDetails;
     ProductionCondition  = productionCondition;
     DestinationCountries = destinationConutries;
 }
예제 #11
0
        public virtual void GetNewCode(ClaseAuditoria parent)
        {
            Serial = SerialInfo.GetNext(typeof(TipoAuditoria));

            foreach (TipoAuditoria item in parent.TipoAuditorias)
            {
                if (item.Serial >= Serial)
                {
                    Serial = item.Serial + 1;
                }
            }

            Codigo = Serial.ToString(Resources.Defaults.TIPO_AUDITORIA_CODE_FORMAT);
            Numero = parent.Numero + "." + Serial.ToString();
        }
예제 #12
0
    void _TestSerialInfo()
    {
        SerialInfo v1 = new SerialInfo();
        v1.vector2 = new Vector2(0.5f, 0.5f);

        if (m_Format == Format.Pretty)
        {
            m_PrettyWriter.Reset();
            LitJson.JsonMapper.ToJson(v1, m_PrettyWriter);
            m_str1 = m_PrettyWriter.ToString();
        }
        else
        {
            m_str1 = LitJson.JsonMapper.ToJson(v1); //serialize	object to string
        }

        LitJson.JsonMapper.ToObject<SerialInfo>(m_str1); //de-serialize string back to object
    }
예제 #13
0
        public ActionResult RemoveSerial(string serialID)
        {
            bool success = false;

            if (MongoCRUD.GetInstance().RecordExists <SerialInfo>("Serial", serialID, "serial"))
            {
                List <SerialInfo> list = MongoCRUD.GetInstance().LoadRecords <SerialInfo>("Serial", "serial", serialID);

                if (list != null)
                {
                    SerialInfo si = list[0];

                    success = MongoCRUD.GetInstance().RemoveRecord <SerialInfo>("Serial", si.ID);
                }
            }

            return(Json(success, JsonRequestBehavior.AllowGet));
        }
예제 #14
0
        /// <summary>
        /// Parameter를 사용하여 Propery 초기화
        /// </summary>
        /// <param name="serialInfo">Serial 통신 정보 객체 (생략할 경우 이후 초기화 필요)</param>
        public SerialHandler(SerialInfo serialInfo = null)
        {
            this.serialHandle = new SerialPort();

            if (serialInfo != null)
            {
                this.serialInfo            = serialInfo;
                this.serialHandle.PortName = serialInfo.portName;
                this.serialHandle.BaudRate = serialInfo.baudRate;
                this.serialHandle.Parity   = serialInfo.parity;
                this.serialHandle.DataBits = serialInfo.dataBits;
                this.serialHandle.StopBits = serialInfo.stopBits;
            }
            else
            {
                this.serialInfo = new SerialInfo();
            }
        }
예제 #15
0
    void _TestSerialInfo()
    {
        SerialInfo v1 = new SerialInfo();

        v1.vector2 = new Vector2(0.5f, 0.5f);

        if (m_Format == Format.Pretty)
        {
            m_PrettyWriter.Reset();
            LitJson.JsonMapper.ToJson(v1, m_PrettyWriter);
            m_str1 = m_PrettyWriter.ToString();
        }
        else
        {
            m_str1 = LitJson.JsonMapper.ToJson(v1);             //serialize	object to string
        }

        LitJson.JsonMapper.ToObject <SerialInfo>(m_str1);        //de-serialize string back to object
    }
예제 #16
0
        /// <summary>
        /// 获取串口信息
        /// </summary>
        /// <returns></returns>
        public DataResult <SerialInfo> InitSerialInfo()
        {
            DataResult <SerialInfo> result = new DataResult <SerialInfo>();

            try
            {
                SerialInfo serialInfo = new SerialInfo();
                serialInfo.PortName = ConfigurationManager.AppSettings["port"].ToString();
                serialInfo.BaudRate = Convert.ToInt32(ConfigurationManager.AppSettings["baud"].ToString());
                serialInfo.DataBit  = Convert.ToInt32(ConfigurationManager.AppSettings["data_bit"].ToString());
                serialInfo.Parity   = (Parity)Enum.Parse(typeof(Parity), ConfigurationManager.AppSettings["data_bit"].ToString(), true);
                serialInfo.StopBits = (StopBits)Enum.Parse(typeof(StopBits), ConfigurationManager.AppSettings["stop_bit"].ToString(), true);
                result.State        = true;
                result.Data         = serialInfo;
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            return(result);
        }
예제 #17
0
        private SerialHandler arduinoHandle;                        // Serial 핸들
        #endregion

        #region Constructor
        public InterfaceArduino(CommInfo commInfo)
        {
            try
            {
                base.division  = "CNC";
                base.commInfo  = commInfo;
                base.isConnect = false;
                //base.sendData = new Dictionary<string, object>();
                //base.receiveData = new Dictionary<string, object>();

                SerialInfo serialInfo = new SerialInfo();
                serialInfo.portName = commInfo.machineSerialPort;
                serialInfo.baudRate = 57400;
                serialInfo.parity   = System.IO.Ports.Parity.None;
                serialInfo.dataBits = 8;
                serialInfo.stopBits = System.IO.Ports.StopBits.One;

                arduinoHandle = new SerialHandler(serialInfo);
            }
            catch (Exception ex)
            {
                LogHandler.PrintLog(string.Format("{0} :: Constructor Exception :: Message = {1}", this.ToString(), ex.Message));
            }
        }
예제 #18
0
 /// <summary>
 /// Parameter를 사용하여 Propery 초기화
 /// </summary>
 /// <param name="serialInfo">Serial 통신 정보 객체</param>
 public ModbusRtuHandler(SerialInfo serialInfo)
 {
     serialHandler = new SerialHandler(serialInfo);
 }
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Departamento));
     Codigo = Serial.ToString(Resources.Defaults.DEPARTAMENTO_CODE_FORMAT);
 }
예제 #20
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(InformeAmpliacion));
     Codigo = Serial.ToString(Resources.Defaults.INFORME_AMPLIACION_CODE_FORMAT);
 }
예제 #21
0
 public virtual void GetNewCode()
 {
     // Obtenemos el último serial de servicio
     Serial = SerialInfo.GetNext(typeof(Documento));
     Codigo = "DOC#" + Serial.ToString(Resources.Defaults.DOCUMENTO_CODE_FORMAT);
 }
예제 #22
0
        static public string ImportExcel(string fileName, AppDbContext db, ILogger logger, string userId, bool moveToArhive = true)
        {
            string error     = "";
            int    rowNumber = 0; // номер строки в которой произошла ошибка при импорте

            FileInfo file = new FileInfo(fileName);

            try
            {
                using (ExcelPackage package = new ExcelPackage(file))
                {
                    var fileInfo = new ImportFileInfo
                    {
                        FileName   = fileName,
                        ImportDate = DateTime.Now,
                        DateFile   = File.GetLastWriteTime(fileName),
                        UserId     = userId
                    };

                    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                    int            rowCount  = worksheet.Dimension.Rows;

                    for (int row = 2; row <= rowCount; row++)
                    {
                        rowNumber = row;

                        if (worksheet.Cells[row, 1].Value == null)
                        {
                            continue;
                        }

                        if (worksheet.Cells[row, 3].Value == null)
                        {
                            continue;
                        }

                        if (worksheet.Cells[row, 4].Value == null)
                        {
                            continue;
                        }

                        if (worksheet.Cells[row, 1].Value.ToString().Equals(""))
                        {
                            continue;
                        }

                        if (worksheet.Cells[row, 2].Value == null)
                        {
                            throw new Exception("Model/PartNumber is null");
                        }

                        var serial = new SerialInfo
                        {
                            SerialNumber   = worksheet.Cells[row, 1].Value.ToString(),
                            Model          = worksheet.Cells[row, 2].Value.ToString(),
                            Reference1     = worksheet.Cells[row, 3].Value.ToString(),
                            Reference2     = worksheet.Cells[row, 4].Value.ToString(),
                            Date           = Convert.ToDateTime(worksheet.Cells[row, 5].Value),
                            ImportFileInfo = fileInfo
                        };

                        db.SerialInfo.Add(serial);
                    }

                    db.SaveChanges();

                    // кладем файл в папку с архивом
                    if (moveToArhive)
                    {
                        string sourcePath = @"C:\Temp";
                        string targetPath = @"C:\Temp\archive";
                        if (!Directory.Exists(targetPath))
                        {
                            Directory.CreateDirectory(targetPath);
                        }

                        if (Directory.Exists(sourcePath))
                        {
                            string[] files = Directory.GetFiles(sourcePath);


                            foreach (string s in files)
                            {
                                fileName = Path.GetFileName(s);
                                string destFile = Path.Combine(targetPath, fileName);
                                File.Copy(s, destFile, true);
                            }
                        }
                        else
                        {
                            error = "Source path does not exist!";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                error = $"Import error. Row: {rowNumber}. Error text: {ex.Message}";
            }

            return(error);
        }
예제 #23
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Ayuda));
     Codigo = Serial.ToString(Resources.Defaults.AYUDA_CODE_FORMAT);
 }
예제 #24
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(TipoGasto));
     Codigo = Serial.ToString(Resources.Defaults.TIPOGASTO_CODE_FORMAT);
 }
예제 #25
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Traspaso));
     Codigo = Serial.ToString(Resources.Defaults.DEFAULT_CODE_FORMAT);
 }
예제 #26
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Pesaje));
     Codigo = Serial.ToString(Resources.Defaults.PESAJE_CODE_FORMAT);
 }
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(ClaseAuditoria));
     Codigo = Serial.ToString(Resources.Defaults.CLASE_AUDITORIA_CODE_FORMAT);
     Numero = Serial;
 }
예제 #28
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Transaction));
     Code   = Serial.ToString(Resources.Defaults.TRANSACTION_CODE_FORMAT);
 }
예제 #29
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(Company));
     Code   = Serial.ToString(Properties.Settings.Default.EMPRESA_CODE_FORMAT);
 }
예제 #30
0
 public RTU(SerialInfo serialInfo)
 {
     _serialInfo = serialInfo;
 }
예제 #31
0
 public virtual void GetNewCode()
 {
     Serial = SerialInfo.GetNext(typeof(WorkReport));
     Code   = Serial.ToString(Resources.Defaults.DEFAULT_CODE_FORMAT);
 }