""" Constants used throughout the MQTT protocol implementation """ # Protocol version PROTOCOL_VERSION = "V2.6.2" # Topic related constants TOPIC_PREFIX = "HCMS" # Heavy truck Charging Management System TOPIC_SEPARATOR = "/" # Message directions M2S = "M2S" # Master to Slave (Cloud Platform to Station) S2M = "S2M" # Slave to Master (Station to Cloud Platform) # Message types STATE = "state" EVENT = "event" CONFIRM = "confirm" REQUEST = "request" RESPONSE = "response" KEEPALIVE = "keepalive" ENCRYPT_KEY_REQ = "encryptKeyReq" ENCRYPT_KEY_RESP = "encryptKeyResp" # Station modes STATION_MODE_OPERATION = 1 STATION_MODE_DEBUG = 2 STATION_MODE_MAINTENANCE = 3 # Device states DEVICE_STATE_UNKNOWN = 0 DEVICE_STATE_NORMAL = 1 DEVICE_STATE_ALARM = 2 # Charging states CHARGING_STATE_STANDBY = 1 CHARGING_STATE_CHARGING = 2 CHARGING_STATE_COMPLETE = 3 CHARGING_STATE_FAULT = 4 CHARGING_STATE_OFFLINE = 5 # Swap states SWAP_STATE_NOT_STARTED = 1 SWAP_STATE_STARTED = 2 SWAP_STATE_PAUSED = 3 SWAP_STATE_RESUMED = 4 SWAP_STATE_TERMINATED = 5 SWAP_STATE_COMPLETED = 6 # Rate types RATE_TYPE_SHARP = 1 RATE_TYPE_PEAK = 2 RATE_TYPE_FLAT = 3 RATE_TYPE_VALLEY = 4 # Lane types LANE_TYPE_SINGLE = 1 LANE_TYPE_DOUBLE = 2 # Error codes ERROR_SUCCESS = 1 ERROR_FAILURE = 2 # Timeouts (in seconds) KEEPALIVE_INTERVAL = 30 EVENT_RETRY_INTERVAL = 15 COMMUNICATION_TIMEOUT = 90 # 3 * KEEPALIVE_INTERVAL