Commit c91625d1 authored by garciay's avatar garciay
Browse files

UpperTester/CAM validation

parent abca89e6
Loading
Loading
Loading
Loading
+42 −16
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@ int UpperTesterCamCodec::encode (const Record_Type& msg, OCTETSTRING& data)
  TTCN_EncDec::clear_error();
  TTCN_Buffer encoding_buffer;
  if (std::string(msg.get_descriptor()->name).compare("@LibItsCam_TypesAndValues.UtCamInitialize") == 0) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamInitialize));
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamInitialize));
  } else if (std::string(msg.get_descriptor()->name).compare("@LibItsCam_TypesAndValues.UtCamChangePosition") == 0) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamChangePosition));
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamChangePosition));
  } else { // Error
    data = OCTETSTRING();
    loggers::get_instance().log("<<< UpperTesterCamCodec::encode: Return -1");
@@ -38,26 +38,52 @@ int UpperTesterCamCodec::encode (const LibItsCam__TypesAndValues::UtCamTrigger&
  
  TTCN_EncDec::clear_error();
  TTCN_Buffer encoding_buffer;
  const Record_Type *type;
  //const Record_Type *type;
  const LibItsCam__TypesAndValues::UtCamTrigger &u = static_cast<const LibItsCam__TypesAndValues::UtCamTrigger &>(msg);
  if (u.changeCurvature().is_present()) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamChangeCurvature));
  if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_changeCurvature)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamChangeCurvature));
    encoding_buffer.put_string(int2oct(u.changeCurvature(), 2));
  } else if (u.changeSpeed().is_present()) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamChangeSpeed));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_changeSpeed)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamChangeSpeed));
    encoding_buffer.put_string(int2oct(u.changeSpeed(), 2));
  } else if (u.changeHeading().is_present()) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamChangeHeading));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setAccelerationControlStatus)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetAccelerationStatus));
    encoding_buffer.put_c(*static_cast<const unsigned char*>(u.setAccelerationControlStatus()));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setExteriorLightsStatus)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetExteriorLightsStatus));
    encoding_buffer.put_c(*static_cast<const unsigned char*>(u.setExteriorLightsStatus()));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_changeHeading)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamChangeHeading));
    encoding_buffer.put_string(int2oct(u.changeHeading(), 2));
  } else if (u.setDriveDirection().is_present()) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamSetDriveDirection));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setDriveDirection)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetDriveDirection));
    encoding_buffer.put_c((unsigned char)static_cast<const Enum_Type&>(u.setDriveDirection()).as_int());
  } else if (u.changeYawRate().is_present()) {
    encoding_buffer.put_c(static_cast<unsigned char>(UpperTesterCamCodec::c_utCamChangeYawRate));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_changeYawRate)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamChangeYawRate));
    encoding_buffer.put_string(int2oct(u.changeYawRate(), 2));
  }
    // TODO To be continued
  else { // Error
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setStationType)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetStationType));
    encoding_buffer.put_string(int2oct(u.setStationType(), 1));
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setVehicleRole)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetVehicleRole));
    encoding_buffer.put_c((unsigned char)static_cast<const Enum_Type&>(u.setVehicleRole()).as_int());
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setEmbarkationStatus)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetEmbarkationStatus));
    encoding_buffer.put_c((u.setEmbarkationStatus() == true) ? 0xff : 0x00);
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setDangerousGoods)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetDangerousGoods));
    encoding_buffer.put_c((unsigned char)static_cast<const Enum_Type&>(u.setDangerousGoods()).as_int());
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setPtActivation)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetPtActivation));
    encoding_buffer.put_c(static_cast<const unsigned char>(u.setPtActivation().ptActivationType()));
    const OCTETSTRING& os = u.setPtActivation().ptActivationData();
    encoding_buffer.put_c(static_cast<const unsigned char>(os.lengthof()));
    encoding_buffer.put_string(os);
  } else if (u.ischosen(LibItsCam__TypesAndValues::UtCamTrigger::ALT_setLightBarSirene)) {
    encoding_buffer.put_c(static_cast<const unsigned char>(UpperTesterCamCodec::c_utCamSetLightBarSirene));
    loggers::get_instance().log("UpperTesterCamCodec::encode: BarSirene=0x%02x - 0x%02x", *static_cast<const unsigned char*>(u.setLightBarSirene()), *static_cast<const unsigned char*>(u.setLightBarSirene()) << 6);
    encoding_buffer.put_c(*static_cast<const unsigned char*>(u.setLightBarSirene()) << 6);
  } else { // Error
    data = OCTETSTRING();
    loggers::get_instance().log("<<< UpperTesterCamCodec::encode: Return -1");
    return -1;
+6 −0
Original line number Diff line number Diff line
@@ -31,6 +31,12 @@ class UpperTesterCamCodec: public Codec <
  const unsigned char c_utCamChangeHeading = 0x34;
  const unsigned char c_utCamSetDriveDirection = 0x35;
  const unsigned char c_utCamChangeYawRate = 0x36;
  const unsigned char c_utCamSetStationType = 0x39;
  const unsigned char c_utCamSetVehicleRole = 0x3a;
  const unsigned char c_utCamSetEmbarkationStatus = 0x3b;
  const unsigned char c_utCamSetPtActivation = 0x3c;
  const unsigned char c_utCamSetDangerousGoods = 0x3d;
  const unsigned char c_utCamSetLightBarSirene = 0x3f;
  const unsigned char c_utCamTriggerResult = 0x21;
  const unsigned char c_utCamEventInd = 0x23;