/// <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); }
/// <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); } }