<commit_before>syntax = "proto2";

package apollo.drivers.gnss.config;

message Stream {
  enum Format {
    UNKNOWN = 0;
    NMEA = 1;
    RTCM_V2 = 2;
    RTCM_V3 = 3;

    NOVATEL_TEXT = 10;
    NOVATEL_BINARY = 11;

    UBLOX_TEXT = 20;
    UBLOX_BINARY = 21;

    NEWTONM2_TEXT = 30;
    NEWTONM2_BINARY = 31;
  }
  optional Format format = 1;

  message Serial {
    optional bytes device = 1;  // Something like "/dev/ttyXXX".
    optional int32 baud_rate = 2 [default = 9600];
    // In general, we assumes no parity, 8 data bits, 1 stop bit, no
    // handshaking, break detection enabled. If not, add more fields here.
  }

  message Tcp {
    optional bytes address = 1;  // Something like "192.168.10.6".
    optional int32 port = 2 [default = 3001];
  }

  message Udp {
    optional bytes address = 1;  // Something like "192.168.10.6".
    optional int32 port = 2 [default = 3001];
  }

  message Ntrip {
    optional bytes address = 1;  // Something like "1.1.1.1".
    optional int32 port = 2 [default = 2101];
    optional bytes mount_point = 3;  // Something like "demo".
    optional bytes user = 4;
    optional bytes password = 5;
    optional uint32 timeout_s = 6 [default = 30];
  }

  oneof type {
    Serial serial = 2;
    Tcp tcp = 3;
    Udp udp = 4;
    Ntrip ntrip = 5;
  }
  optional bool push_location = 6;
}

// Device-specific configuration.
message NovatelConfig {
  // See Page 75 of SPAN on OEM6 Firmware Reference Manual for details.
  optional int32 imu_orientation = 1 [default = 5];
}

message NewtonM2Config {
  optional int32 imu_orientation = 1 [default = 5];
}

message UbloxConfig {
}

enum ImuType {
  // We currently use the following IMUs. We'll extend this list when a new IMU
  // is introduced.
  IMAR_FSAS = 13;      // iMAR iIMU-FSAS
  ISA100C = 26;        // Northrop Grumman Litef ISA-100C
  ADIS16488 = 31;      // Analog Devices ADIS16488
  STIM300 = 32;        // Sensonor STIM300
  ISA100 = 34;         // Northrop Grumman Litef ISA-100
  ISA100_400HZ = 38;   // Northrop Grumman Litef ISA-100
  ISA100C_400HZ = 39;  // Northrop Grumman Litef ISA-100
  G320N = 40;          // EPSON G320N
  CPT_XW5651 = 41;     // IMU@SPAN-CPT, and XingWangYuda 5651
  UM442 = 42;          // UM442
  IAM20680 = 57;       // InvenSense-IAM20680
}

message TF {
  optional string frame_id = 1 [default = "world"];
  optional string child_frame_id = 2 [default = "novatel"];<commit_msg>[gnss] Assign the IMU ID 41 to the EPSON G320N as required by Novatel<commit_after>syntax = "proto2";

package apollo.drivers.gnss.config;

message Stream {
  enum Format {
    UNKNOWN = 0;
    NMEA = 1;
    RTCM_V2 = 2;
    RTCM_V3 = 3;

    NOVATEL_TEXT = 10;
    NOVATEL_BINARY = 11;

    UBLOX_TEXT = 20;
    UBLOX_BINARY = 21;

    NEWTONM2_TEXT = 30;
    NEWTONM2_BINARY = 31;
  }
  optional Format format = 1;

  message Serial {
    optional bytes device = 1;  // Something like "/dev/ttyXXX".
    optional int32 baud_rate = 2 [default = 9600];
    // In general, we assumes no parity, 8 data bits, 1 stop bit, no
    // handshaking, break detection enabled. If not, add more fields here.
  }

  message Tcp {
    optional bytes address = 1;  // Something like "192.168.10.6".
    optional int32 port = 2 [default = 3001];
  }

  message Udp {
    optional bytes address = 1;  // Something like "192.168.10.6".
    optional int32 port = 2 [default = 3001];
  }

  message Ntrip {
    optional bytes address = 1;  // Something like "1.1.1.1".
    optional int32 port = 2 [default = 2101];
    optional bytes mount_point = 3;  // Something like "demo".
    optional bytes user = 4;
    optional bytes password = 5;
    optional uint32 timeout_s = 6 [default = 30];
  }

  oneof type {
    Serial serial = 2;
    Tcp tcp = 3;
    Udp udp = 4;
    Ntrip ntrip = 5;
  }
  optional bool push_location = 6;
}

// Device-specific configuration.
message NovatelConfig {
  // See Page 75 of SPAN on OEM6 Firmware Reference Manual for details.
  optional int32 imu_orientation = 1 [default = 5];
}

message NewtonM2Config {
  optional int32 imu_orientation = 1 [default = 5];
}

message UbloxConfig {
}

enum ImuType {
  // We currently use the following IMUs. We'll extend this list when a new IMU
  // is introduced.
  IMAR_FSAS = 13;      // iMAR iIMU-FSAS
  ISA100C = 26;        // Northrop Grumman Litef ISA-100C
  ADIS16488 = 31;      // Analog Devices ADIS16488
  STIM300 = 32;        // Sensonor STIM300
  ISA100 = 34;         // Northrop Grumman Litef ISA-100
  ISA100_400HZ = 38;   // Northrop Grumman Litef ISA-100
  ISA100C_400HZ = 39;  // Northrop Grumman Litef ISA-100
  CPT_XW5651 = 40;     // IMU@SPAN-CPT, and XingWangYuda 5651
  G320N = 41;          // EPSON G320N
  UM442 = 42;          // UM442
  IAM20680 = 57;       // InvenSense-IAM20680
}

message TF {
  optional string frame_id = 1 [default = "world"];
  optional string child_frame_id = 2 [default = "novatel"];
{'fraction_non_alphanumeric': 0.09971509971509972, 'fraction_numerical': 0.08363858363858363, 'mean_word_length': 2.4563994374120957, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 6, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5093916', 'n_tokens_mistral': 2099, 'n_tokens_neox': 1734, 'n_words': 554}