You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.2 KiB

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