from enum import Enum from typing import List, Dict class comFuncList(Enum): IDIMMES_COM_C_Init = 220 IDIMMES_COM_C_ShtDown = 221 IDIMMES_COM_C_Freeze = 222 IDIMMES_COM_C_Resume = 223 IDIMMES_COM_C_Dummy = 224 IDIMMES_COM_C_AssignGroup = 225 IDIMMES_COM_C_SetAlarmL12 = 226 IDIMMES_COM_C_SetAlarmL = 227 IDIMMES_COM_C_Virtual = 228 IDIMMES_COM_C_SyncReadChnl = 229 IDIMMES_COM_C_SyncRead = 230 IDIMMES_COM_C_SyncDoChnl = 231 IDIMMES_COM_C_SyncDo = 232 IDIMMES_COM_C_SyncClear = 233 IDIMMES_COM_C_BurstReadCnt = 234 IDIMMES_COM_C_BurstReadTime = 235 IDIMMES_COM_C_SendTimeDate = 236 IDIMMES_COM_C_MkTimedMaster = 237 IDIMMES_COM_C_EnterBootloader = 238 #Skipped for historical reasons IDIMMES_COM_C_ReadDevFullSN_MS = 241 IDIMMES_COM_C_WriteSnIPv4IPv6 = 242 IDIMMES_COM_C_WriteSnVerifyDates = 243 IDIMMES_COM_C_WriteSnAES256 = 244 IDIMMES_COM_C_SendLongMessage = 245 IDIMMES_COM_C_GetLondMessage = 246 IDIMMES_COM_C_DummyModule = 247 IDIMMES_COM_C_CheckModuleLongOp = 248 IDIMMES_COM_C_CheckChannelLongOp = 249 IDIMMES_COM_C_FmwBootloaderInfo = 250 # Ask for bootloader version IDIMMES_COM_C_FmwBootloaderStart = 251 # Start upload and recieve fwinfo IDIMMES_COM_C_FmwBootloaderWrite = 252 # Write chunk IDIMMES_COM_C_FmwBootloaderEnd = 253 # upload end. Finish operations and reboot IDIMMES_COM_C_GotoApp = 254 #Goto APP @classmethod def values(cls) -> List[int]: """Список всех значений""" return [status.value for status in cls] @classmethod def names(cls) -> List[str]: """Список всех имен""" return [status.name for status in cls] @classmethod def dict(cls) -> Dict[str, int]: """Словарь имя -> значение""" return {status.name: status.value for status in cls} @classmethod def get_by_value(cls, value: int): """Получить статус по значению""" for status in cls: if status.value == value: return status return None ''' moduleTypeList = { "TYPE_TST" : "ATmega328PB", "TYPE_1W1" : "ATmega328PB", "TYPE_TTT" : "ATmega2560", "TYPE_2ST" : "ATmega2560", "TYPE_4DC" : "ATmega2560", "TYPE_RM8" : "ATmega2560", } ''' class IdiBusSpeedCodes(Enum): CODE_19200B = 19200, CODE_500K = 576000, CODE_2400B = 2400, CODE_9600B = 9600, CODE_115200B = 115200, CODE_250K = 256000, CODE_1M = 921600, CODE_10M = 10000000 @classmethod def values(cls) -> List[int]: """Список всех значений""" return [status.value for status in cls] @classmethod def names(cls) -> List[int]: """Список всех имен""" return [status.name for status in cls] @classmethod def dict(cls) -> Dict[str, int]: """Словарь имя -> значение""" return {status.name: status.value for status in cls} @classmethod def get_by_value(cls, value: str): """Получить статус по значению""" for status in cls: if status.value == value: return status return None