Exemple #1
0
        //----------------------------------------------------------------------------
        /// <summary>
        /// Метод генерирует серийный номер устройства на основе вводимых данных
        /// </summary>
        /// <param name="type">Тип устройства NGK</param>
        /// <param name="year">Год выпуска, две последних цыфры</param>
        /// <param name="SerialNumber">Номер по порядку за год</param>
        /// <returns></returns>
        private UInt64 SerialNumberGenerator(
            TYPE_NGK_DEVICE type,
            int year,
            int serialNumber)
        {
            // XX.XX.XX.XXXX
            // |  |  |  |_____ Номер по порядку в соответствии с типом и подтипом устройства выпущенных за указанный год
            // |  |  |________ Год выпуска изделия 0..99
            // |  |___________ Под тип устройства NGK
            // |______________ Тип устройства NGK

            if ((year > 99) || (year < 1))
            {
                throw new ArgumentOutOfRangeException("Year",
                                                      "Выходит за границы допустимого диапазона 1...99");
            }

            if ((serialNumber > 9999) || (serialNumber < 0))
            {
                throw new ArgumentOutOfRangeException("serialNumber",
                                                      "Выходит за границы допустимого диапазона 0...9999");
            }

            UInt64 sn = 0;

            sn = sn + (UInt64)serialNumber;
            sn = sn + (((UInt64)year) * 10000);
            sn = sn + (((UInt64)type) * 1000000);

            return(sn);
        }
Exemple #2
0
        //----------------------------------------------------------------------------
        public void Read_IR_TypeOfDevice(
            ref Modbus.OSIModel.ApplicationLayer.Master.Device host,
            out OperationResult error, Byte addressSlave, out TYPE_NGK_DEVICE typeOfDevice)
        {
            Modbus.OSIModel.Message.Result result;
            UInt16[] registers;

            if (host == null)
            {
                typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                error = new OperationResult(OPERATION_RESULT.CONNECTION_ERROR, 
                    "Подключение к сети не создано");
            }
            else
            {
                if (host.DataLinkObject.IsOpen())
                {
                    result = host.ReadInputRegisters(addressSlave,
                        BI_ADDRESSES_OF_INPUTREGISTERS.TypeOfDevice,
                        1, out registers);

                    if (result.Error == Modbus.OSIModel.ApplicationLayer.Error.NoError)
                    {
                        try
                        {
                            typeOfDevice =
                                (TYPE_NGK_DEVICE)Enum.Parse(typeof(TYPE_NGK_DEVICE),
                                registers[0].ToString());
                            error = new OperationResult(OPERATION_RESULT.OK, String.Empty);
                        }
                        catch
                        {
                            typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                            error = new OperationResult(OPERATION_RESULT.UNKNOWN_DEVICE, 
                                String.Format(
                                "Устройство вернуло код неизвестного типа устройства: {0}", registers[0].ToString()));
                        }
                    }
                    else
                    {
                        typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                        error = new OperationResult(OPERATION_RESULT.FAILURE, 
                            result.Description);
                    }
                }
                else
                {
                    typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                    error = new OperationResult(OPERATION_RESULT.CONNECTION_ERROR, 
                        "Соeдинение создано, но не открыто");
                }
            }
            return;
        }
Exemple #3
0
        //------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="typeOfDevice">Тип устройства</param>
        public MeasuringPeriodMainPowerControl(TYPE_NGK_DEVICE typeOfDevice)
        {
            InitializeComponent();

            switch (typeOfDevice)
            {
            case TYPE_NGK_DEVICE.BI_MAIN_POWERED:
            {
                comboBoxMode.Items.Clear();
                comboBoxMode.Items.Add("Указанный период");
                comboBoxMode.Items.Add("Измерять постоянно");
                comboBoxMode.Items.Add("Ответ по запросу");
                comboBoxMode.SelectedItem = "Указанный период";

                numericUpDownValue.Minimum   = 1;
                numericUpDownValue.Maximum   = 0x93A80;
                numericUpDownValue.Increment = 1;

                break;
            }

            case TYPE_NGK_DEVICE.BI_BATTERY_POWER:
            {
                comboBoxMode.Items.Clear();
                comboBoxMode.Items.Add("Указанный период");
                //comboBoxMode.Items.Add("Измерять постоянно");
                comboBoxMode.Items.Add("Ответ по запросу");
                comboBoxMode.SelectedItem = "Указанный период";

                numericUpDownValue.Minimum   = 0x0A;
                numericUpDownValue.Maximum   = 0x93A80;
                numericUpDownValue.Increment = 1;

                break;
            }

            case TYPE_NGK_DEVICE.UNKNOWN_DEVICE:
            {
                throw new Exception("Невозможно создать контрол, неизвестное устройство");
            }

            default:
            {
                throw new Exception("Невозможно создать контрол, неизвестное устройство");
            }
            }
        }
        //------------------------------------------------------------------------------------------------------
        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="typeOfDevice">Тип устройства</param>
        public MeasuringPeriodMainPowerControl(TYPE_NGK_DEVICE typeOfDevice)
        {
            InitializeComponent();

            switch (typeOfDevice)
            {
                case TYPE_NGK_DEVICE.BI_MAIN_POWERED:
                    {
                        comboBoxMode.Items.Clear();
                        comboBoxMode.Items.Add("Указанный период");
                        comboBoxMode.Items.Add("Измерять постоянно");
                        comboBoxMode.Items.Add("Ответ по запросу");
                        comboBoxMode.SelectedItem = "Указанный период";

                        numericUpDownValue.Minimum = 1;
                        numericUpDownValue.Maximum = 0x93A80;
                        numericUpDownValue.Increment = 1;

                        break; 
                    }
                case TYPE_NGK_DEVICE.BI_BATTERY_POWER:
                    {
                        comboBoxMode.Items.Clear();
                        comboBoxMode.Items.Add("Указанный период");
                        //comboBoxMode.Items.Add("Измерять постоянно");
                        comboBoxMode.Items.Add("Ответ по запросу");
                        comboBoxMode.SelectedItem = "Указанный период";

                        numericUpDownValue.Minimum = 0x0A;
                        numericUpDownValue.Maximum = 0x93A80;
                        numericUpDownValue.Increment = 1;

                        break; 
                    }
                case TYPE_NGK_DEVICE.UNKNOWN_DEVICE:
                    {
                        throw new Exception("Невозможно создать контрол, неизвестное устройство"); 
                    }
                default:
                    { 
                        throw new Exception("Невозможно создать контрол, неизвестное устройство"); 
                    }
            }
        }
Exemple #5
0
        //----------------------------------------------------------------------------
        private void comboBoxDeviceType_SelectedIndexChanged(
            object sender,
            EventArgs e)
        {
            ComboBox cb = (ComboBox)sender;
            String   deviceName;

            deviceName = (String)cb.SelectedItem;

            switch (deviceName)
            {
            case "Неизвестное устройство":
            {
                _TypeDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                break;
            }

            case "Устройство БИ(У)-01":
            {
                _TypeDevice = TYPE_NGK_DEVICE.BI_BATTERY_POWER;
                break;
            }

            case "Устройство БИ(У)-00":
            {
                _TypeDevice = TYPE_NGK_DEVICE.BI_MAIN_POWERED;
                break;
            }

            default:
            {
                throw new Exception("Получен список устройств не поддерживаемых в данной версии ПО");
            }
            }

            //_TypeDevice =
            //    (TYPE_NGK_DEVICE)Enum.Parse(typeof(TYPE_NGK_DEVICE),
            //    (String)cb.SelectedItem);
        }
        //----------------------------------------------------------------------------
        private void comboBoxDeviceType_SelectedIndexChanged(
            object sender, 
            EventArgs e)
        {
            ComboBox cb = (ComboBox)sender;
            String deviceName;

            deviceName = (String)cb.SelectedItem;
            
            switch (deviceName)
            {
                case "Неизвестное устройство":
                    {
                        _TypeDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                        break;
                    }
                case "Устройство БИ(У)-01":
                    {
                        _TypeDevice = TYPE_NGK_DEVICE.BI_BATTERY_POWER;
                        break;
                    }
                case "Устройство БИ(У)-00":
                    {
                        _TypeDevice = TYPE_NGK_DEVICE.BI_MAIN_POWERED;
                        break;
                    }
                default:
                    {
                        throw new Exception("Получен список устройств не поддерживаемых в данной версии ПО");
                    }
            }			 
            
            //_TypeDevice = 
            //    (TYPE_NGK_DEVICE)Enum.Parse(typeof(TYPE_NGK_DEVICE), 
            //    (String)cb.SelectedItem);
        }
        //----------------------------------------------------------------------------
        public void Read_IR_TypeOfDevice(
            ref Modbus.OSIModel.ApplicationLayer.Master.Device host,
            out OperationResult error, out TYPE_NGK_DEVICE typeOfDevice)
        {
            Modbus.OSIModel.Message.Result result;
            //String msg;
            UInt16[] registers;

            result = host.ReadInputRegisters(AddressSlave,
                BI_ADDRESSES_OF_INPUTREGISTERS.TypeOfDevice,
                1, out registers);

            if (result.Error == Modbus.OSIModel.ApplicationLayer.Error.NoError)
            {
                try
                {
                    typeOfDevice =
                        (TYPE_NGK_DEVICE)Enum.Parse(typeof(TYPE_NGK_DEVICE),
                        registers[0].ToString());
                    
                    error = new OperationResult(OPERATION_RESULT.OK, String.Empty);
                }
                catch
                {
                    typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                    error = new OperationResult(OPERATION_RESULT.UNKNOWN_DEVICE, String.Format(
                        "Устройство вернуло код неизвестного типа устройства: {0}", registers[0].ToString()));
                }
            }
            else
            {
                typeOfDevice = TYPE_NGK_DEVICE.UNKNOWN_DEVICE;
                error = new OperationResult(OPERATION_RESULT.FAILURE, result.Description);
            }
            return;
        }
Exemple #8
0
 //----------------------------------------------------------------------------
 public FormInitDevice(TYPE_NGK_DEVICE type)
 {
     InitializeComponent();
     TypeOfDevice = type;
 }
Exemple #9
0
        //----------------------------------------------------------------------------
        /// <summary>
        /// Метод генерирует серийный номер устройства на основе вводимых данных
        /// </summary>
        /// <param name="type">Тип устройства NGK</param>
        /// <param name="year">Год выпуска, две последних цыфры</param>
        /// <param name="SerialNumber">Номер по порядку за год</param>
        /// <returns></returns>
        private UInt64 SerialNumberGenerator(
            TYPE_NGK_DEVICE type, 
            int year, 
            int serialNumber)
        {
            // XX.XX.XX.XXXX
            // |  |  |  |_____ Номер по порядку в соответствии с типом и подтипом устройства выпущенных за указанный год
            // |  |  |________ Год выпуска изделия 0..99
            // |  |___________ Под тип устройства NGK
            // |______________ Тип устройства NGK

            if ((year > 99) || (year < 1))
            {
                throw new ArgumentOutOfRangeException("Year", 
                    "Выходит за границы допустимого диапазона 1...99");
            }

            if ((serialNumber > 9999) || (serialNumber < 0))
            {
                throw new ArgumentOutOfRangeException("serialNumber",
                    "Выходит за границы допустимого диапазона 0...9999");
            }

            UInt64 sn = 0;
            sn = sn + (UInt64)serialNumber;
            sn = sn + (((UInt64)year) * 10000);
            sn = sn + (((UInt64)type) * 1000000);

            return sn;
        }
Exemple #10
0
 //----------------------------------------------------------------------------
 public FormInitDevice(TYPE_NGK_DEVICE type)
 {
     InitializeComponent();
     TypeOfDevice = type;
 }