Пример #1
0
        /// <summary>
        /// Возвращает тип счетчика и версию его ПО
        /// </summary>
        /// <returns>Тип счетчика и версия его ПО</returns>
        public override string ToString()
        {
            string      text = string.Empty;
            FirmwareVer fw = default;
            int         v1, v2;

            try
            {
                GetFWVersion(out fw);
            }
            catch
            {
                ChangeCmdStatus(StringsTable.Error);
            }
            finally
            {
                v1 = fw.Version & 15;
                v2 = fw.Version & 240;
                switch (v2)
                {
                case 0:
                    text = StringsTable.CntrType1;
                    break;

                case 1:
                    text = StringsTable.CntrType2;
                    break;

                case 2:
                    text = StringsTable.CntrType3;
                    break;

                case 3:
                    text = StringsTable.CntrType4;
                    break;
                }
                text += $" V.{v1}.{fw.Build} mod.{v2} ";
            }
            return(text);
        }
Пример #2
0
        /// <summary>
        /// Получить версию ПО счетчика (сегмент #2)
        /// </summary>
        /// <param name="FirmwareVer">Структура версии ПО</param>
        public void GetFWVersion(out FirmwareVer FirmwareVer)
        {
            FirmwareVer = new FirmwareVer();
            const byte   segment = 2;
            const ushort offset  = 0;
            const byte   len     = 2;

            try
            {
                SegmentRead(segment, offset, len, out byte[] QueryResult);
                if (QueryResult != null)
                {
                    FirmwareVer.Version = QueryResult[0];
                    FirmwareVer.Build   = QueryResult[1];
                }
                ChangeCmdStatus(StringsTable.GetFWVerOK);
            }
            catch (OblikSegException)
            {
                string mes = StringsTable.GetFWVersionErr;
                ChangeCmdStatus(mes);
                throw new OblikCmdException(mes);
            }
        }