123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #!/usr/bin/env python3
- from typing import Optional
- class Service:
- def __init__(self, should_log: bool, frequency: float, decimation: Optional[int] = None):
- self.should_log = should_log
- self.frequency = frequency
- self.decimation = decimation
- _services: dict[str, tuple] = {
- # service: (should_log, frequency, qlog decimation (optional))
- # note: the "EncodeIdx" packets will still be in the log
- "gyroscope": (True, 104., 104),
- "gyroscope2": (True, 100., 100),
- "accelerometer": (True, 104., 104),
- "accelerometer2": (True, 100., 100),
- "magnetometer": (True, 25.),
- "lightSensor": (True, 100., 100),
- "temperatureSensor": (True, 2., 200),
- "temperatureSensor2": (True, 2., 200),
- "gpsNMEA": (True, 9.),
- "deviceState": (True, 2., 1),
- "can": (True, 100., 2053), # decimation gives ~3 msgs in a full segment
- "controlsState": (True, 100., 10),
- "selfdriveState": (True, 100., 10),
- "pandaStates": (True, 10., 1),
- "peripheralState": (True, 2., 1),
- "radarState": (True, 20., 5),
- "roadEncodeIdx": (False, 20., 1),
- "liveTracks": (True, 20.),
- "sendcan": (True, 100., 139),
- "logMessage": (True, 0.),
- "errorLogMessage": (True, 0., 1),
- "liveCalibration": (True, 4., 4),
- "liveTorqueParameters": (True, 4., 1),
- "androidLog": (True, 0.),
- "carState": (True, 100., 10),
- "carControl": (True, 100., 10),
- "carOutput": (True, 100., 10),
- "longitudinalPlan": (True, 20., 10),
- "driverAssistance": (True, 20., 20),
- "procLog": (True, 0.5, 15),
- "gpsLocationExternal": (True, 10., 10),
- "gpsLocation": (True, 1., 1),
- "ubloxGnss": (True, 10.),
- "qcomGnss": (True, 2.),
- "gnssMeasurements": (True, 10., 10),
- "clocks": (True, 0.1, 1),
- "ubloxRaw": (True, 20.),
- "livePose": (True, 20., 4),
- "liveParameters": (True, 20., 5),
- "cameraOdometry": (True, 20., 10),
- "thumbnail": (True, 0.2, 1),
- "onroadEvents": (True, 1., 1),
- "carParams": (True, 0.02, 1),
- "roadCameraState": (True, 20., 20),
- "driverCameraState": (True, 20., 20),
- "driverEncodeIdx": (False, 20., 1),
- "driverStateV2": (True, 20., 10),
- "driverMonitoringState": (True, 20., 10),
- "wideRoadEncodeIdx": (False, 20., 1),
- "wideRoadCameraState": (True, 20., 20),
- "drivingModelData": (True, 20., 10),
- "modelV2": (True, 20.),
- "managerState": (True, 2., 1),
- "uploaderState": (True, 0., 1),
- "navInstruction": (True, 1., 10),
- "navRoute": (True, 0.),
- "navThumbnail": (True, 0.),
- "qRoadEncodeIdx": (False, 20.),
- "userFlag": (True, 0., 1),
- "microphone": (True, 10., 10),
- # debug
- "uiDebug": (True, 0., 1),
- "testJoystick": (True, 0.),
- "alertDebug": (True, 20., 5),
- "roadEncodeData": (False, 20.),
- "driverEncodeData": (False, 20.),
- "wideRoadEncodeData": (False, 20.),
- "qRoadEncodeData": (False, 20.),
- "livestreamWideRoadEncodeIdx": (False, 20.),
- "livestreamRoadEncodeIdx": (False, 20.),
- "livestreamDriverEncodeIdx": (False, 20.),
- "livestreamWideRoadEncodeData": (False, 20.),
- "livestreamRoadEncodeData": (False, 20.),
- "livestreamDriverEncodeData": (False, 20.),
- "customReservedRawData0": (True, 0.),
- "customReservedRawData1": (True, 0.),
- "customReservedRawData2": (True, 0.),
- }
- SERVICE_LIST = {name: Service(*vals) for
- idx, (name, vals) in enumerate(_services.items())}
- def build_header():
- h = ""
- h += "/* THIS IS AN AUTOGENERATED FILE, PLEASE EDIT services.py */\n"
- h += "#ifndef __SERVICES_H\n"
- h += "#define __SERVICES_H\n"
- h += "#include <map>\n"
- h += "#include <string>\n"
- h += "struct service { std::string name; bool should_log; int frequency; int decimation; };\n"
- h += "static std::map<std::string, service> services = {\n"
- for k, v in SERVICE_LIST.items():
- should_log = "true" if v.should_log else "false"
- decimation = -1 if v.decimation is None else v.decimation
- h += ' { "%s", {"%s", %s, %d, %d}},\n' % \
- (k, k, should_log, v.frequency, decimation)
- h += "};\n"
- h += "#endif\n"
- return h
- if __name__ == "__main__":
- print(build_header())
|