Ejemplo n.º 1
0
        /// <summary>
        /// Получить настройки сети счетчика (сегмент #66)
        /// </summary>
        /// <returns>настройки сети счетчика</returns>
        public NetworkConfig GetNetworkConfig()
        {
            const byte    Segment = 66;
            const UInt16  Offset  = 0;
            const byte    Len     = 3;
            NetworkConfig res     = default;

            try
            {
                SegmentRead(Segment, Offset, Len, out byte[] answ);
                res.Addr    = answ[0];
                res.Divisor = ToUint16(ArrayPart(answ, 1, 2));
                ChangeCmdStatus(StringsTable.GetNetOk);
            }
            catch (OblikSegException)
            {
                string mes = StringsTable.GetNetworkConfigErr;
                ChangeCmdStatus(mes);
                throw new OblikCmdException(mes);
            }
            return(res);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Установить настройки сети счетчика (сегмент #67)
        /// </summary>
        /// <param name="nc">Настройки сети счетчика</param>
        public void SetNetworkConfig(NetworkConfig nc)
        {
            const byte   Segment = 67;
            const UInt16 Offset  = 0;

            byte[] Buf = NetworkConfigToByte(nc);
            try
            {
                SegmentWrite(Segment, Offset, Buf);
                //Меняем настройку сети класса в соответствии с новой настройкой
                if (_ConParams.Address != 0)
                {
                    _ConParams.Address  = nc.Addr;
                    _ConParams.Baudrate = 115200 / nc.Divisor;
                    ChangeCmdStatus(StringsTable.SetNetOK);
                }
            }
            catch (OblikSegException)
            {
                string mes = StringsTable.SetNetworkConfigErr;
                ChangeCmdStatus(mes);
                throw new OblikCmdException(mes);
            }
        }