syntax = "proto3";
package cmvr.config;

message RH56DFTPDexHandConfig{
    reserved 4;

    string id = 1;
    string ip = 2;
    int32  port = 3;
    int32 poll_interval_ms = 5;
}

enum PX6AXGen3PollingReadMode {
    PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_AND_RESULTANT_FORCE = 0;
    PX_6AX_GEN3_POLLING_READ_MODE_DISTRIBUTED_FORCE = 1;
    PX_6AX_GEN3_POLLING_READ_MODE_RESULTANT_FORCE = 2;
}

message PX6AXGen3{
    reserved 10;

    string id = 1;
    string serial_port = 2;
    string sensor_model = 3;
    int32 module_id = 4;
    int32 baud_rate = 5;
    int32 distributed_length = 6;
    int32 resultant_length = 7;
    int32 poll_interval_ms = 8;
    bool auto_calibrate = 9;
    int32 response_timeout_ms = 11;
    int32 tactile_rows = 12;
    int32 tactile_cols = 13;
    int32 response_header_bytes = 14;
    string tactile_finger = 15;
    string tactile_region = 16;
    string sensor_name = 17;
    PX6AXGen3PollingReadMode polling_read_mode = 18;
}



message DexHandDeviceConfig {
    string id = 1;
    reserved 2;

    oneof backend {
        RH56DFTPDexHandConfig rh56dftp = 10;
        PX6AXGen3 px_6ax_gen3 = 11;
    }
}

message DexHandConfig{
    repeated DexHandDeviceConfig dexhands = 1;
}

message DexHandRootConfig {
    DexHandConfig dexhand = 1;
}
