from enum import Enum, IntEnum from nbus_hal.nbus_serial.serial_config import NBusBaudrate, NBusParity config = { "port_name": "COM14", "baud": NBusBaudrate.SPEED_921600, "parity": NBusParity.NONE, "timeout": 0.01, "flush_delay": 0.5, "request_attempts": 1, "enable_log": False, } BRIDGE_ACQUIRE_WAIT = 0.002 TASK_NBUS_DELAY = 0.05 # Znížené na 50 ms, aby sa dáta nehromadili v bufferi PHASE_SID = "5.129.2" MODULE_ADDR = 5 PHASES = [ "Neaktívne", "Meranie referenčnej polohy", "Čakanie na meranie pohybu", "Meranie východiskovej polohy", "Meranie pohybu", "Meranie cieľovej polohy", "Meranie dokončené"] class MeasuringPhase(IntEnum): IDLE = 0, POS_REF = 1, INTERLUDE = 2, POS_START = 3, MOVEMENT = 4, POS_END = 5, ACK = 6 PRECISION = 5 MA = 5 SA_TOF = 1 SA_ACC = 2 SA_GYR = 3 SA_TMP = 4 SA_HUM = 5 SA_MES = 129 VA_AX = 1 VA_AY = 2 VA_AZ = 3 VA_TMP = 1 VA_HUM = 1 VA_SER = 1 VA_PHA = 2 CN_TIME = "time" CN_TOF_X = "tof_x" CN_TOF_Y = "tof_y" CN_TOF_Z = "tof_z" CN_ACC_X = "acc_x" CN_ACC_Y = "acc_y" CN_ACC_Z = "acc_z" CN_GYR_X = "gyr_x" CN_GYR_Y = "gyr_y" CN_GYR_Z = "gyr_z" CN_TMP = "temp" CN_HUM = "hum" CN_SER = "ser" CN_PHA = "pha" TOF_NAN = 65535 IMU_NAN = 3276.7 TEMP_NAN = 327.67 HUM_NAN = 655.35 NBUS_DATA_COLUMN_MAPPING = { "TS" : CN_TIME, f"{MA}.{SA_TOF}.{VA_AX}" : CN_TOF_X, f"{MA}.{SA_TOF}.{VA_AY}" : CN_TOF_Y, f"{MA}.{SA_TOF}.{VA_AZ}" : CN_TOF_Z, f"{MA}.{SA_ACC}.{VA_AX}" : CN_ACC_X, f"{MA}.{SA_ACC}.{VA_AY}" : CN_ACC_Y, f"{MA}.{SA_ACC}.{VA_AZ}" : CN_ACC_Z, f"{MA}.{SA_GYR}.{VA_AX}" : CN_GYR_X, f"{MA}.{SA_GYR}.{VA_AY}" : CN_GYR_Y, f"{MA}.{SA_GYR}.{VA_AZ}" : CN_GYR_Z, f"{MA}.{SA_TMP}.{VA_TMP}" : CN_TMP, f"{MA}.{SA_HUM}.{VA_HUM}" : CN_HUM, f"{MA}.{SA_MES}.{VA_SER}" : CN_SER, f"{MA}.{SA_MES}.{VA_PHA}" : CN_PHA } NBUS_DATA_NAN_MAPPING = { CN_TOF_X : TOF_NAN, CN_TOF_Y : TOF_NAN, CN_TOF_Z : TOF_NAN, CN_ACC_X : IMU_NAN, CN_ACC_Y : IMU_NAN, CN_ACC_Z : IMU_NAN, CN_GYR_X : IMU_NAN, CN_GYR_Y : IMU_NAN, CN_GYR_Z : IMU_NAN, CN_TMP : TEMP_NAN, CN_HUM : HUM_NAN } NBUS_DATA_EMPTY_MAPPING = [ CN_TOF_X, CN_TOF_Y, CN_TOF_Z, CN_ACC_X, CN_ACC_Y, CN_ACC_Z, CN_GYR_X, CN_GYR_Y, CN_GYR_Z, CN_TMP, CN_HUM ] NBUS_DATA_PHASES_TO_REMOVE = [ MeasuringPhase.IDLE.value, MeasuringPhase.INTERLUDE.value, MeasuringPhase.ACK.value ] NBUS_DATA_PHASE_MAPPING = { MeasuringPhase.POS_REF.value : 'ref', MeasuringPhase.POS_START.value : 'beg', MeasuringPhase.MOVEMENT.value : 'mov', MeasuringPhase.POS_END.value : 'end' }