createSessionMesg static method

Mesg createSessionMesg()

Implementation

static Mesg createSessionMesg() {
  int fieldIndex, subfieldIndex;
  Mesg newMesg = Mesg("Session", MesgNum.session);
  fieldIndex = 0;
  newMesg.setField(
    Field(
      "MessageIndex",
      254,
      132,
      1.0,
      0.0,
      "",
      false,
      ProfileType.messageIndex,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("Timestamp", 253, 134, 1.0, 0.0, "s", false, ProfileType.dateTime),
  );
  fieldIndex++;
  newMesg.setField(
    Field("Event", 0, 0, 1.0, 0.0, "", false, ProfileType.event),
  );
  fieldIndex++;
  newMesg.setField(
    Field("EventType", 1, 0, 1.0, 0.0, "", false, ProfileType.eventType),
  );
  fieldIndex++;
  newMesg.setField(
    Field("StartTime", 2, 134, 1.0, 0.0, "", false, ProfileType.dateTime),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "StartPositionLat",
      3,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "StartPositionLong",
      4,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("Sport", 5, 0, 1.0, 0.0, "", false, ProfileType.sport),
  );
  fieldIndex++;
  newMesg.setField(
    Field("SubSport", 6, 0, 1.0, 0.0, "", false, ProfileType.subSport),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalElapsedTime",
      7,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalTimerTime",
      8,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalDistance",
      9,
      134,
      100.0,
      0.0,
      "m",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  Field totalCyclesField = Field(
    "TotalCycles",
    10,
    134,
    1.0,
    0.0,
    "cycles",
    false,
    ProfileType.uint32,
  );
  subfieldIndex = 0;
  totalCyclesField.subfields.add(
    Subfield("TotalStrides", 134, 1.0, 0.0, "strides"),
  );
  totalCyclesField.subfields[subfieldIndex].addMap(5, 1);
  totalCyclesField.subfields[subfieldIndex].addMap(5, 11);
  subfieldIndex++;
  totalCyclesField.subfields.add(
    Subfield("TotalStrokes", 134, 1.0, 0.0, "strokes"),
  );
  totalCyclesField.subfields[subfieldIndex].addMap(5, 2);
  totalCyclesField.subfields[subfieldIndex].addMap(5, 5);
  totalCyclesField.subfields[subfieldIndex].addMap(5, 15);
  totalCyclesField.subfields[subfieldIndex].addMap(5, 37);
  subfieldIndex++;
  newMesg.setField(totalCyclesField);
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalCalories",
      11,
      132,
      1.0,
      0.0,
      "kcal",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalFatCalories",
      13,
      132,
      1.0,
      0.0,
      "kcal",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  Field avgSpeedField = Field(
    "AvgSpeed",
    14,
    132,
    1000.0,
    0.0,
    "m/s",
    false,
    ProfileType.uint16,
  );
  avgSpeedField.components.add(
    FieldComponent(124, false, 16, 1000.0, 0.0),
  ); // enhanced_avg_speed
  newMesg.setField(avgSpeedField);
  fieldIndex++;
  Field maxSpeedField = Field(
    "MaxSpeed",
    15,
    132,
    1000.0,
    0.0,
    "m/s",
    false,
    ProfileType.uint16,
  );
  maxSpeedField.components.add(
    FieldComponent(125, false, 16, 1000.0, 0.0),
  ); // enhanced_max_speed
  newMesg.setField(maxSpeedField);
  fieldIndex++;
  newMesg.setField(
    Field("AvgHeartRate", 16, 2, 1.0, 0.0, "bpm", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxHeartRate", 17, 2, 1.0, 0.0, "bpm", false, ProfileType.uint8),
  );
  fieldIndex++;
  Field avgCadenceField = Field(
    "AvgCadence",
    18,
    2,
    1.0,
    0.0,
    "rpm",
    false,
    ProfileType.uint8,
  );
  subfieldIndex = 0;
  avgCadenceField.subfields.add(
    Subfield("AvgRunningCadence", 2, 1.0, 0.0, "strides/min"),
  );
  avgCadenceField.subfields[subfieldIndex].addMap(5, 1);
  subfieldIndex++;
  newMesg.setField(avgCadenceField);
  fieldIndex++;
  Field maxCadenceField = Field(
    "MaxCadence",
    19,
    2,
    1.0,
    0.0,
    "rpm",
    false,
    ProfileType.uint8,
  );
  subfieldIndex = 0;
  maxCadenceField.subfields.add(
    Subfield("MaxRunningCadence", 2, 1.0, 0.0, "strides/min"),
  );
  maxCadenceField.subfields[subfieldIndex].addMap(5, 1);
  subfieldIndex++;
  newMesg.setField(maxCadenceField);
  fieldIndex++;
  newMesg.setField(
    Field("AvgPower", 20, 132, 1.0, 0.0, "watts", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxPower", 21, 132, 1.0, 0.0, "watts", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("TotalAscent", 22, 132, 1.0, 0.0, "m", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("TotalDescent", 23, 132, 1.0, 0.0, "m", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalTrainingEffect",
      24,
      2,
      10.0,
      0.0,
      "",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("FirstLapIndex", 25, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("NumLaps", 26, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("EventGroup", 27, 2, 1.0, 0.0, "", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("Trigger", 28, 0, 1.0, 0.0, "", false, ProfileType.sessionTrigger),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "NecLat",
      29,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "NecLong",
      30,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "SwcLat",
      31,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "SwcLong",
      32,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "NumLengths",
      33,
      132,
      1.0,
      0.0,
      "lengths",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "NormalizedPower",
      34,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TrainingStressScore",
      35,
      132,
      10.0,
      0.0,
      "tss",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "IntensityFactor",
      36,
      132,
      1000.0,
      0.0,
      "if",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "LeftRightBalance",
      37,
      132,
      1.0,
      0.0,
      "",
      false,
      ProfileType.leftRightBalance100,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EndPositionLat",
      38,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EndPositionLong",
      39,
      133,
      1.0,
      0.0,
      "semicircles",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStrokeCount",
      41,
      134,
      10.0,
      0.0,
      "strokes/lap",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStrokeDistance",
      42,
      132,
      100.0,
      0.0,
      "m",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "SwimStroke",
      43,
      0,
      1.0,
      0.0,
      "swim_stroke",
      false,
      ProfileType.swimStroke,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("PoolLength", 44, 132, 100.0, 0.0, "m", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "ThresholdPower",
      45,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "PoolLengthUnit",
      46,
      0,
      1.0,
      0.0,
      "",
      false,
      ProfileType.displayMeasure,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "NumActiveLengths",
      47,
      132,
      1.0,
      0.0,
      "lengths",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("TotalWork", 48, 134, 1.0, 0.0, "J", false, ProfileType.uint32),
  );
  fieldIndex++;
  Field avgAltitudeField = Field(
    "AvgAltitude",
    49,
    132,
    5.0,
    500.0,
    "m",
    false,
    ProfileType.uint16,
  );
  avgAltitudeField.components.add(
    FieldComponent(126, false, 16, 5.0, 500.0),
  ); // enhanced_avg_altitude
  newMesg.setField(avgAltitudeField);
  fieldIndex++;
  Field maxAltitudeField = Field(
    "MaxAltitude",
    50,
    132,
    5.0,
    500.0,
    "m",
    false,
    ProfileType.uint16,
  );
  maxAltitudeField.components.add(
    FieldComponent(128, false, 16, 5.0, 500.0),
  ); // enhanced_max_altitude
  newMesg.setField(maxAltitudeField);
  fieldIndex++;
  newMesg.setField(
    Field("GpsAccuracy", 51, 2, 1.0, 0.0, "m", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgGrade", 52, 131, 100.0, 0.0, "%", false, ProfileType.sint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgPosGrade", 53, 131, 100.0, 0.0, "%", false, ProfileType.sint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgNegGrade", 54, 131, 100.0, 0.0, "%", false, ProfileType.sint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxPosGrade", 55, 131, 100.0, 0.0, "%", false, ProfileType.sint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxNegGrade", 56, 131, 100.0, 0.0, "%", false, ProfileType.sint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgTemperature", 57, 1, 1.0, 0.0, "C", false, ProfileType.sint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxTemperature", 58, 1, 1.0, 0.0, "C", false, ProfileType.sint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalMovingTime",
      59,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgPosVerticalSpeed",
      60,
      131,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.sint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgNegVerticalSpeed",
      61,
      131,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.sint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxPosVerticalSpeed",
      62,
      131,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.sint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxNegVerticalSpeed",
      63,
      131,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.sint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MinHeartRate", 64, 2, 1.0, 0.0, "bpm", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TimeInHrZone",
      65,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TimeInSpeedZone",
      66,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TimeInCadenceZone",
      67,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TimeInPowerZone",
      68,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgLapTime", 69, 134, 1000.0, 0.0, "s", false, ProfileType.uint32),
  );
  fieldIndex++;
  newMesg.setField(
    Field("BestLapIndex", 70, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  Field minAltitudeField = Field(
    "MinAltitude",
    71,
    132,
    5.0,
    500.0,
    "m",
    false,
    ProfileType.uint16,
  );
  minAltitudeField.components.add(
    FieldComponent(127, false, 16, 5.0, 500.0),
  ); // enhanced_min_altitude
  newMesg.setField(minAltitudeField);
  fieldIndex++;
  newMesg.setField(
    Field("PlayerScore", 82, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("OpponentScore", 83, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("OpponentName", 84, 7, 1.0, 0.0, "", false, ProfileType.string),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "StrokeCount",
      85,
      132,
      1.0,
      0.0,
      "counts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "ZoneCount",
      86,
      132,
      1.0,
      0.0,
      "counts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxBallSpeed",
      87,
      132,
      100.0,
      0.0,
      "m/s",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgBallSpeed",
      88,
      132,
      100.0,
      0.0,
      "m/s",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgVerticalOscillation",
      89,
      132,
      10.0,
      0.0,
      "mm",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStanceTimePercent",
      90,
      132,
      100.0,
      0.0,
      "percent",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStanceTime",
      91,
      132,
      10.0,
      0.0,
      "ms",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgFractionalCadence",
      92,
      2,
      128.0,
      0.0,
      "rpm",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxFractionalCadence",
      93,
      2,
      128.0,
      0.0,
      "rpm",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalFractionalCycles",
      94,
      2,
      128.0,
      0.0,
      "cycles",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgTotalHemoglobinConc",
      95,
      132,
      100.0,
      0.0,
      "g/dL",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MinTotalHemoglobinConc",
      96,
      132,
      100.0,
      0.0,
      "g/dL",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxTotalHemoglobinConc",
      97,
      132,
      100.0,
      0.0,
      "g/dL",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgSaturatedHemoglobinPercent",
      98,
      132,
      10.0,
      0.0,
      "%",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MinSaturatedHemoglobinPercent",
      99,
      132,
      10.0,
      0.0,
      "%",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxSaturatedHemoglobinPercent",
      100,
      132,
      10.0,
      0.0,
      "%",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgLeftTorqueEffectiveness",
      101,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgRightTorqueEffectiveness",
      102,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgLeftPedalSmoothness",
      103,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgRightPedalSmoothness",
      104,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgCombinedPedalSmoothness",
      105,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "SportProfileName",
      110,
      7,
      1.0,
      0.0,
      "",
      false,
      ProfileType.string,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("SportIndex", 111, 2, 1.0, 0.0, "", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TimeStanding",
      112,
      134,
      1000.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("StandCount", 113, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgLeftPco", 114, 1, 1.0, 0.0, "mm", false, ProfileType.sint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgRightPco", 115, 1, 1.0, 0.0, "mm", false, ProfileType.sint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgLeftPowerPhase",
      116,
      2,
      0.7111111,
      0.0,
      "degrees",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgLeftPowerPhasePeak",
      117,
      2,
      0.7111111,
      0.0,
      "degrees",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgRightPowerPhase",
      118,
      2,
      0.7111111,
      0.0,
      "degrees",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgRightPowerPhasePeak",
      119,
      2,
      0.7111111,
      0.0,
      "degrees",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgPowerPosition",
      120,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxPowerPosition",
      121,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgCadencePosition",
      122,
      2,
      1.0,
      0.0,
      "rpm",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxCadencePosition",
      123,
      2,
      1.0,
      0.0,
      "rpm",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedAvgSpeed",
      124,
      134,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedMaxSpeed",
      125,
      134,
      1000.0,
      0.0,
      "m/s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedAvgAltitude",
      126,
      134,
      5.0,
      500.0,
      "m",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedMinAltitude",
      127,
      134,
      5.0,
      500.0,
      "m",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedMaxAltitude",
      128,
      134,
      5.0,
      500.0,
      "m",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgLevMotorPower",
      129,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxLevMotorPower",
      130,
      132,
      1.0,
      0.0,
      "watts",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "LevBatteryConsumption",
      131,
      2,
      2.0,
      0.0,
      "percent",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgVerticalRatio",
      132,
      132,
      100.0,
      0.0,
      "percent",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStanceTimeBalance",
      133,
      132,
      100.0,
      0.0,
      "percent",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgStepLength",
      134,
      132,
      10.0,
      0.0,
      "mm",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalAnaerobicTrainingEffect",
      137,
      2,
      10.0,
      0.0,
      "",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgVam", 139, 132, 1000.0, 0.0, "m/s", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgDepth", 140, 134, 1000.0, 0.0, "m", false, ProfileType.uint32),
  );
  fieldIndex++;
  newMesg.setField(
    Field("MaxDepth", 141, 134, 1000.0, 0.0, "m", false, ProfileType.uint32),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "SurfaceInterval",
      142,
      134,
      1.0,
      0.0,
      "s",
      false,
      ProfileType.uint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("StartCns", 143, 2, 1.0, 0.0, "percent", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("EndCns", 144, 2, 1.0, 0.0, "percent", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "StartN2",
      145,
      132,
      1.0,
      0.0,
      "percent",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("EndN2", 146, 132, 1.0, 0.0, "percent", false, ProfileType.uint16),
  );
  fieldIndex++;
  Field avgRespirationRateField = Field(
    "AvgRespirationRate",
    147,
    2,
    1.0,
    0.0,
    "",
    false,
    ProfileType.uint8,
  );
  avgRespirationRateField.components.add(
    FieldComponent(169, false, 8, 1.0, 0.0),
  ); // enhanced_avg_respiration_rate
  newMesg.setField(avgRespirationRateField);
  fieldIndex++;
  Field maxRespirationRateField = Field(
    "MaxRespirationRate",
    148,
    2,
    1.0,
    0.0,
    "",
    false,
    ProfileType.uint8,
  );
  maxRespirationRateField.components.add(
    FieldComponent(170, false, 8, 1.0, 0.0),
  ); // enhanced_max_respiration_rate
  newMesg.setField(maxRespirationRateField);
  fieldIndex++;
  Field minRespirationRateField = Field(
    "MinRespirationRate",
    149,
    2,
    1.0,
    0.0,
    "",
    false,
    ProfileType.uint8,
  );
  minRespirationRateField.components.add(
    FieldComponent(180, false, 8, 1.0, 0.0),
  ); // enhanced_min_respiration_rate
  newMesg.setField(minRespirationRateField);
  fieldIndex++;
  newMesg.setField(
    Field("MinTemperature", 150, 1, 1.0, 0.0, "C", false, ProfileType.sint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "O2Toxicity",
      155,
      132,
      1.0,
      0.0,
      "OTUs",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("DiveNumber", 156, 134, 1.0, 0.0, "", false, ProfileType.uint32),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TrainingLoadPeak",
      168,
      133,
      65536.0,
      0.0,
      "",
      false,
      ProfileType.sint32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedAvgRespirationRate",
      169,
      132,
      100.0,
      0.0,
      "Breaths/min",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedMaxRespirationRate",
      170,
      132,
      100.0,
      0.0,
      "Breaths/min",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "EnhancedMinRespirationRate",
      180,
      132,
      100.0,
      0.0,
      "",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalGrit",
      181,
      136,
      1.0,
      0.0,
      "kGrit",
      false,
      ProfileType.float32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalFlow",
      182,
      136,
      1.0,
      0.0,
      "Flow",
      false,
      ProfileType.float32,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field("JumpCount", 183, 132, 1.0, 0.0, "", false, ProfileType.uint16),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgGrit", 186, 136, 1.0, 0.0, "kGrit", false, ProfileType.float32),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgFlow", 187, 136, 1.0, 0.0, "Flow", false, ProfileType.float32),
  );
  fieldIndex++;
  newMesg.setField(
    Field("WorkoutFeel", 192, 2, 1.0, 0.0, "", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("WorkoutRpe", 193, 2, 1.0, 0.0, "", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgSpo2", 194, 2, 1.0, 0.0, "percent", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("AvgStress", 195, 2, 1.0, 0.0, "percent", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("SdrrHrv", 197, 2, 1.0, 0.0, "mS", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field("RmssdHrv", 198, 2, 1.0, 0.0, "mS", false, ProfileType.uint8),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalFractionalAscent",
      199,
      2,
      100.0,
      0.0,
      "m",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "TotalFractionalDescent",
      200,
      2,
      100.0,
      0.0,
      "m",
      false,
      ProfileType.uint8,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "AvgCoreTemperature",
      208,
      132,
      100.0,
      0.0,
      "C",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MinCoreTemperature",
      209,
      132,
      100.0,
      0.0,
      "C",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;
  newMesg.setField(
    Field(
      "MaxCoreTemperature",
      210,
      132,
      100.0,
      0.0,
      "C",
      false,
      ProfileType.uint16,
    ),
  );
  fieldIndex++;

  return newMesg;
}