Schema

The schema that's used in the Centipede communication is the following:

syntax = "proto3";

syntax = "proto3";

message Command {
    int32 command = 1;
    optional int32 parameter = 2;
    optional string filter = 3;
}

message Project {
    UID project_id = 10;
    optional string client_code = 12;
    optional string site_code = 13;
    optional int32 last_update = 14;
    optional string project_name = 15;
}

message TestPlan {
    UID testplan_id = 20;
    string testplan_code = 21;
    string testplan_name = 22;
    bool locked = 23;
    repeated ResultSetting settings = 24;
    optional string description = 25;
    int32 lockPin = 26;
}

message Step {
    UID step_id = 30;
    UID parent_id = 31;
    int32 seq_num = 32;
    repeated ResultSetting results = 33;
    repeated Measurement measurements = 34;
    repeated ResultSetting settings = 35;
    optional string instruction = 36;
}

message Measurement {
    int32 measurement_number = 40;
    repeated ResultSetting results = 41;
    repeated ResultSetting settings = 42;
    optional int32 text_id = 43;
}

message DUT {
    UID dut_id = 50;
    string dut_code_or_serial = 51;
    optional UID project_id = 52;
    optional UID testplan_id = 53;
    repeated ResultSetting results = 54;
    optional int32 last_update = 55;
    optional string model_or_vin = 56;
    optional string plate_number = 57;
    optional string manufacturer = 58;
    repeated ResultSetting settings = 59;
    optional int32 ampacity_override = 60;
    optional int32 cable_length = 61;
    optional int32 phases_override = 62;
}

message ResultSetting {
    int32 name_enum = 60;
    optional ResultSettingValue value = 61;
    optional LimitValue limit = 62;
}

message ResultSettingValue {
    optional float numeric_value = 70;
    optional int32 descriptive_value = 71;
}

message LimitValue {
    optional float limit_low = 80;
    optional float limit_high = 81;
}

message Ota {
    int32 seq_num = 90;
    int32 address = 91;
    bytes byte_array = 92;
}

message UID {
    uint32 serial_counter = 100;
    uint32 timestamp = 101;
}

message TesterInfo {
    string fw_ver = 110;
    string hw_ver = 111;
    int32 protocol_version = 112;
    string ag_version = 113;
    int32 serial_number = 114;
    string model = 115;
    int32 last_calibration_date = 116;
    int32 communication_line = 117;
}

message OtaInfo {
    int32 number_of_packets = 120;
    int32 overall_crc32 = 121;
    string firmware_version = 122;
}

message UpdatePacket {
    OtaInfo info = 130;
    repeated Ota packets = 131;
}

message ImportExportCommand {
    optional int32 parameter = 140;
    repeated UID path_sections = 141;
    optional int32 seq_num = 142;
    optional bytes query = 143;
}

message DateTimeZoneCommand {
    int32 timezone = 150;
    int64 epoch = 151;
}

message CommandEnums {
    int32 Ota = 100;
    int32 Ok = 101;
    int32 Nok = 102;
    int32 TesterInfo = 103;
    int32 Import = 104;
    int32 Export = 105;
    int32 End = 106;
}

message ParameterOtaEnums {
    int32 Start = 108;
    int32 OtaErase = 109;
    int32 ShowUpdatePopup = 110;
    int32 CreateBridge = 111;
    int32 DestroyBridge = 112;
    int32 GoToBootloader = 113;
    int32 GoToApp = 114;
}

message ParameterEntityEnums {
    int32 Project = 111;
    int32 DUT = 112;
    int32 DUTStep = 113;
    int32 TestPlan = 114;
    int32 TestPlanStep = 115;
    int32 Root = 116;
    int32 TestPlanRoot = 117;
    int32 Manufacturer = 118;
    int32 VisualText = 119;
}

message StructureIDs {
    int32 Command = 10;
    int32 Project = 11;
    int32 DUT = 12;
    int32 DutStep = 13;
    int32 TestPlan = 14;
    int32 TestPlanStep = 15;
    int32 Result = 16;
    int32 Setting = 17;
    int32 Ota = 18;
    int32 TesterInfo = 19;
    int32 OtaInfo = 20;
    int32 ImportCommand = 21;
    int32 ExportCommand = 22;
    int32 DateTimeZoneCommand = 23;
    int32 Manufacturer = 24;
    int32 VisualText = 25;
}