diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..6fe2959 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,9 @@ +{ + "permissions": { + "allow": [ + "Bash(source /opt/rk3506-toolchain/environment-setup)", + "Bash(java -jar fastddsgen.jar lib/System.idl -d lib/ -replace)", + "Bash(make)" + ] + } +} diff --git a/.qtcreator/CMakeLists.txt.user b/.qtcreator/CMakeLists.txt.user new file mode 100644 index 0000000..6abe076 --- /dev/null +++ b/.qtcreator/CMakeLists.txt.user @@ -0,0 +1,318 @@ + + + + + + EnvironmentId + {834c89b2-b6a0-49f4-8777-82ca3f17a41d} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + true + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 0 + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + false + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + false + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 10 + true + + + + true + + 0 + + + + ProjectExplorer.Project.Target.0 + + Desktop + true + Desktop Qt 6.11.1 MinGW 64-bit + Desktop Qt 6.11.1 MinGW 64-bit + qt.qt6.6111.win64_mingw_kit + 0 + 0 + 0 + + Release + 2 + false + + -DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_GENERATOR:STRING=MinGW Makefiles +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtcreator/cmake-helper/qtcreator-project.cmake +-DQT_CREATOR_ENABLE_MAINTENANCE_TOOL_PROVIDER:BOOL=ON +-DQT_CREATOR_ENABLE_PACKAGE_MANAGER_SETUP:BOOL=ON +-DQT_ENABLE_QML_DEBUG:BOOL=%{Qt:QT_ENABLE_QML_DEBUG} +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} + .\build\%{Asciify:%{Kit:FileSystemName}-%{BuildConfig:Name}} + + + + + all + + false + + true + 构建 + CMakeProjectManager.MakeStep + + 1 + 构建 + 构建 + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + 构建 + CMakeProjectManager.MakeStep + + 1 + 清除 + 清除 + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + CMakeProjectManager.CMakeBuildConfiguration + 0 + 0 + + + 0 + 部署 + 部署 + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + + + + + + + + false + + true + 构建 + ApplicationManagerPlugin.Deploy.CMakePackageStep + + + install-package --acknowledge + true + Install Application Manager package + ApplicationManagerPlugin.Deploy.InstallPackageStep + + + + + + + + 2 + 部署 + 部署 + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ApplicationManagerPlugin.Deploy.Configuration + + 2 + + false + + false + + + true + true + 0 + true + + + 2 + + false + -e cpu-cycles --call-graph "dwarf,4096" -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + 1 + + + 0 + 部署 + 部署 + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + + + + + + + + false + + true + 构建 + ApplicationManagerPlugin.Deploy.CMakePackageStep + + + install-package --acknowledge + true + Install Application Manager package + ApplicationManagerPlugin.Deploy.InstallPackageStep + + + + + + + + 2 + 部署 + 部署 + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ApplicationManagerPlugin.Deploy.Configuration + + 2 + + true + true + 0 + true + + + 2 + + false + -e cpu-cycles --call-graph "dwarf,4096" -F 250 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + + true + true + %{RunConfig:Executable:Path} + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + Version + 22 + + diff --git a/BX-5(M)_6K字库控制器通讯协议用户版.pdf b/BX-5(M)_6K字库控制器通讯协议用户版.pdf new file mode 100644 index 0000000..5143ff1 Binary files /dev/null and b/BX-5(M)_6K字库控制器通讯协议用户版.pdf differ diff --git a/CMakeLists.txt b/CMakeLists.txt index dd03ab7..9b034c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ include_directories(common) include_directories(lib) message(STATUS "Configuring System...") -add_library(System_lib lib/SystemTypeObjectSupport.cxx lib/SystemPubSubTypes.cxx) +add_library(System_lib lib/WeighingDDSTypeTypeObjectSupport.cxx lib/WeighingDDSTypePubSubTypes.cxx) target_link_libraries(System_lib fastcdr fastdds) # Demo Application. @@ -52,6 +52,8 @@ add_executable(Core core/main.cxx core/Publisher.cxx core/Subscriber.cxx + core/msg.hpp + lib/WeighingDDSType.hpp ) target_compile_definitions(Core PRIVATE PROGRAM_MODULE="${PROGRAM_MODULE}" PROGRAM_VERSION="${PROGRAM_VERSION}") target_include_directories(Core PRIVATE core) @@ -104,16 +106,18 @@ target_link_libraries(HttpServer fastcdr fastdds ) # Led Application. -link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib) +# 注:不再依赖 vendor SDK(libfun.so / YQNetCom.h),改为裸 TCP 走 BX-6K1-YY 协议。 set(PROGRAM_MODULE "Led") add_executable(Led led/main.cxx led/Subscriber.cxx + led/BX6K1YYProtocol.cxx + led/Bx6k1YyLedClient.cxx ) target_compile_definitions(Led PRIVATE PROGRAM_MODULE="${PROGRAM_MODULE}" PROGRAM_VERSION="${PROGRAM_VERSION}") target_include_directories(Led PRIVATE led) target_link_libraries(Led fastcdr fastdds - System_lib fun + System_lib ) # Print Application. @@ -125,6 +129,7 @@ add_executable(Print print/MsgHandler.cxx common/SerialMsgHandler.cxx lib/strcode.cpp + print/MsgHandler.hpp ) target_compile_definitions(Print PRIVATE PROGRAM_MODULE="${PROGRAM_MODULE}" PROGRAM_VERSION="${PROGRAM_VERSION}") target_include_directories(Print PRIVATE print) @@ -132,6 +137,24 @@ target_link_libraries(Print fastcdr fastdds System_lib ) +# ReadCard Application. +set(PROGRAM_MODULE "ReadCard") +add_executable(ReadCard + readcard/main.cxx + readcard/Publisher.cxx + readcard/Subscriber.cxx + readcard/MsgHandler.cxx + readcard/Publisher.hpp + readcard/msg.hpp + common/SerialMsgHandler.cxx + readcard/MsgHandler.hpp + ) +target_compile_definitions(ReadCard PRIVATE PROGRAM_MODULE="${PROGRAM_MODULE}" PROGRAM_VERSION="${PROGRAM_VERSION}") +target_include_directories(ReadCard PRIVATE readcard) +target_link_libraries(ReadCard fastcdr fastdds + System_lib + ) + # Weigh Application. set(PROGRAM_MODULE "Weigh") add_executable(Weigh @@ -141,6 +164,7 @@ add_executable(Weigh weigh/MsgHandler.cxx weigh/WeightStabilityDetector.cxx common/SerialMsgHandler.cxx + common/SerialMsgHandler.hpp ) target_compile_definitions(Weigh PRIVATE PROGRAM_MODULE="${PROGRAM_MODULE}" PROGRAM_VERSION="${PROGRAM_VERSION}") target_include_directories(Weigh PRIVATE weigh) diff --git a/RC522.c b/RC522.c new file mode 100644 index 0000000..912174b --- /dev/null +++ b/RC522.c @@ -0,0 +1,666 @@ +//#include "intrins.h" +#include "main.h" +#include "RC522.h" +#include "stdio.h" +//#include "tim.h" + +extern TIM_HandleTypeDef htim6; + +#define MAXRLEN 18 + + +///////////////////////////////////////////////////////////////////// +#define RC522_RST_HIGH HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET); //任意未接IO +#define RC522_RST_LOW HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); //任意未接IO + +#define RC522_ENABLE HAL_GPIO_WritePin(ADDR_ALE_GPIO_Port,ADDR_ALE_Pin,GPIO_PIN_RESET); +#define RC522_DISABLE HAL_GPIO_WritePin(ADDR_ALE_GPIO_Port,ADDR_ALE_Pin,GPIO_PIN_SET); + +extern SPI_HandleTypeDef hspi1; + +#define fac_us 25 //72 //时钟频率,单位MHZ + +/*微秒级延时函数*/ +//void delay_us(uint32_t nus) +//{ +// uint32_t ticks; +// uint32_t told,tnow,tcnt=0; +// uint32_t reload=SysTick->LOAD; //LOAD的值 +// ticks=nus*fac_us; //需要的节拍数 +//// delay_osschedlock(); //阻止os调度,防止打断us延时 +//// vTaskSuspendAll(); +// told=SysTick->VAL; //刚进入时的计数器值 +// while(1) +// { +// +// tnow=SysTick->VAL; +// if(tnow!=told) +// { +// if(tnow=ticks) //时间超过/等于要延迟的时间,则退出. +// { +// break; +// } +// } +// } +//// delay_osschedunlock(); //恢复os调度 +//// xTaskResumeAll(); //恢复OS调度 +//} + +void delay_us(uint16_t nus) +{ + __HAL_TIM_SetCounter(&htim6,0); + __HAL_TIM_ENABLE(&htim6); + while(__HAL_TIM_GetCounter(&htim6)SR&SPI_FLAG_TXE)==0)//等待发送区空 + { + retry++; + if(retry>20000)return -1; + } + SPIx->DR=*p_TxData++;//发送一个byte + retry=0; + while((SPIx->SR&SPI_FLAG_RXNE)==0)//等待接收完一个byte + { + SPIx->SR = SPIx->SR; + retry++; + if(retry>20000)return -1; + } + SPIx->DR; + } + return 0; +} +//------------------------------------------------------------------------------------ +int32_t SPI_ReadNBytes(SPI_TypeDef* SPIx, uint8_t *p_RxData,uint32_t readDataNum) +{ + uint16_t retry=0; + while(readDataNum--) + { + SPIx->DR = 0xFF; + while(!(SPIx->SR&SPI_FLAG_TXE)) + { + retry++; + if(retry>20000)return -1; + } + retry = 0; + while(!(SPIx->SR&SPI_FLAG_RXNE)) + { + retry++; + if(retry>20000)return -1; + } + *p_RxData++ = SPIx->DR; + } + return 0; +} +//------------------------------------------------------------------------------------ +void RC522_Init(void) +{ + RC522_ENABLE; + HAL_SPI_Transmit(&hspi1, (uint8_t *)0xaa, sizeof((uint8_t *)0xaa), 0xFF);//启动传输 + RC522_DISABLE; + + HAL_Delay(50); + PcdReset();//复位RC522读卡器 + HAL_Delay(10); + PcdReset();//复位RC522读卡器 + HAL_Delay(10); + + PcdAntennaOff();//关闭天线发射 + HAL_Delay(10); + PcdAntennaOn();//开启天线发射 + + printf("RFID-MFRC522 初始化完成\r\n"); //测试引脚初始化完成 +// printf("RFID-MFRC522 Initialization Finished!\r\n"); //测试引脚初始化完成 + printf("FindCard Starting ...\r\n"); //测试引脚初始化完成 +} +//------------------------------------------------------------------------------- +//功 能:寻卡 +//参数说明: req_code[IN]:寻卡方式 +// 0x52 = 寻感应区内所有符合14443A标准的卡 +// 0x26 = 寻未进入休眠状态的卡 +// pTagType[OUT]:卡片类型代码 +// 0x4400 = Mifare_UltraLight +// 0x0400 = Mifare_One(S50) +// 0x0200 = Mifare_One(S70) +// 0x0800 = Mifare_Pro(X) +// 0x4403 = Mifare_DESFire +//返 回: 成功返回MI_OK +char PcdRequest(unsigned char req_code, unsigned char *pTagType) +{ + char status; + unsigned int unLen; + unsigned char ucComMF522Buf[MAXRLEN]; + + ClearBitMask(Status2Reg, 0x08); //清RC522寄存位 + WriteRawRC(BitFramingReg, 0x07); //写RC623寄存器 + SetBitMask(TxControlReg, 0x03); //置RC522寄存位 + + ucComMF522Buf[0] = req_code; + + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 1, ucComMF522Buf, &unLen); + if ((status == MI_OK) && (unLen == 0x10)) + { + *pTagType = ucComMF522Buf[0]; + *(pTagType + 1) = ucComMF522Buf[1]; + } + else + { + status = MI_ERR; + } + return status; +} +//------------------------------------------------------------------------------- +//功 能:防冲撞 +//参数说明: pSnr[OUT]:卡片序列号,4字节 +//返 回: 成功返回MI_OK +char PcdAnticoll(unsigned char *pSnr) +{ + char status; + unsigned char i, snr_check = 0; + unsigned int unLen; + unsigned char ucComMF522Buf[MAXRLEN]; + ClearBitMask(Status2Reg, 0x08); + WriteRawRC(BitFramingReg, 0x00); + ClearBitMask(CollReg, 0x80); + ucComMF522Buf[0] = PICC_ANTICOLL1; + ucComMF522Buf[1] = 0x20; + + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 2, ucComMF522Buf, &unLen); + if (status == MI_OK) + { + for (i = 0; i < 4; i++) + { + *(pSnr + i) = ucComMF522Buf[i]; + snr_check ^= ucComMF522Buf[i]; + } + if (snr_check != ucComMF522Buf[i]) + { + status = MI_ERR; + } + } + SetBitMask(CollReg, 0x80); + return status; +} +//--------------------------------------------------------------------------- +//功 能:选定卡片 +//参数说明: pSnr[IN]:卡片序列号,4字节 +//返 回: 成功返回MI_OK +char PcdSelect(unsigned char *pSnr) +{ + char status; + unsigned char i; + unsigned int unLen; + unsigned char ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = PICC_ANTICOLL1; + ucComMF522Buf[1] = 0x70; + ucComMF522Buf[6] = 0; + for (i = 0; i < 4; i++) + { + ucComMF522Buf[i + 2] = *(pSnr + i); + ucComMF522Buf[6] ^= *(pSnr + i); + } + CalulateCRC(ucComMF522Buf, 7, &ucComMF522Buf[7]); + ClearBitMask(Status2Reg, 0x08); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 9, ucComMF522Buf, &unLen); + if ((status == MI_OK) && (unLen == 0x18)) + { + status = MI_OK; + } + else + { + status = MI_ERR; + } + return status; +} +//---------------------------------------------------------------------------------- +//功 能:验证卡片密码 +//参数说明: auth_mode[IN]: 密码验证模式 +// 0x60 = 验证A密钥 +// 0x61 = 验证B密钥 +// addr[IN]:块地址 +// pKey[IN]:密码 +// pSnr[IN]:卡片序列号,4字节 +//返 回: 成功返回MI_OK +char PcdAuthState(unsigned char auth_mode, unsigned char addr, unsigned char *pKey, unsigned char *pSnr) +{ + char status; + unsigned int unLen; + unsigned char i, ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = auth_mode; + ucComMF522Buf[1] = addr; + for (i = 0; i < 6; i++) + { + ucComMF522Buf[i + 2] = *(pKey + i); + } + for (i = 0; i < 6; i++) + { + ucComMF522Buf[i + 8] = *(pSnr + i); + } + status = PcdComMF522(PCD_AUTHENT, ucComMF522Buf, 12, ucComMF522Buf, &unLen); + if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08))) + { + status = MI_ERR; + } + return status; +} +//-------------------------------------------------------------------------------------- +//功 能:读取M1卡一块数据 +//参数说明: addr[IN]:块地址 +// p [OUT]:读出的数据,16字节 +//返 回: 成功返回MI_OK +char PcdRead(unsigned char addr, unsigned char *pData) +{ + char status; + unsigned int unLen; + unsigned char i, ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = PICC_READ; + ucComMF522Buf[1] = addr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + if ((status == MI_OK) && (unLen == 0x90)) + { + for (i = 0; i < 16; i++) + { + *(pData + i) = ucComMF522Buf[i]; + } + } + else + { + status = MI_ERR; + } + return status; +} +//----------------------------------------------------------------------------------- +//功 能:写数据到M1卡一块 +//参数说明: addr[IN]:块地址 +// p [IN]:写入的数据,16字节 +//返 回: 成功返回MI_OK +char PcdWrite(unsigned char addr, unsigned char *pData) +{ + char status; + unsigned int unLen; + unsigned char i, ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = PICC_WRITE; + ucComMF522Buf[1] = addr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + if (status == MI_OK) + { + for (i = 0; i < 16; i++) + { + ucComMF522Buf[i] = *(pData + i); + } + CalulateCRC(ucComMF522Buf, 16, &ucComMF522Buf[16]); + + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 18, ucComMF522Buf, &unLen); + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + } + return status; +} +//---------------------------------------------------------------------------------- +//功 能:扣款和充值 +//参数说明: dd_mode[IN]:命令字 +// 0xC0 = 扣款 +// 0xC1 = 充值 +// addr[IN]:钱包地址 +// pValue[IN]:4字节增(减)值,低位在前 +//返 回: 成功返回MI_OK +char PcdValue(unsigned char dd_mode, unsigned char addr, unsigned char *pValue) +{ + char status; + unsigned int unLen; + unsigned char i, ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = dd_mode; + ucComMF522Buf[1] = addr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + if (status == MI_OK) + { + for (i = 0; i < 16; i++) + { + ucComMF522Buf[i] = *(pValue + i); + } + CalulateCRC(ucComMF522Buf, 4, &ucComMF522Buf[4]); + unLen = 0; + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 6, ucComMF522Buf, &unLen); + if (status != MI_ERR) + { + status = MI_OK; + } + } + if (status == MI_OK) + { + ucComMF522Buf[0] = PICC_TRANSFER; + ucComMF522Buf[1] = addr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + } + return status; +} +//------------------------------------------------------------------------------------ +//功 能:备份钱包 +//参数说明: sourceaddr[IN]:源地址 +// goaladdr[IN]:目标地址 +//返 回: 成功返回MI_OK +char PcdBakValue(unsigned char sourceaddr, unsigned char goaladdr) +{ + char status; + unsigned int unLen; + unsigned char ucComMF522Buf[MAXRLEN]; + ucComMF522Buf[0] = PICC_RESTORE; + ucComMF522Buf[1] = sourceaddr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + if (status == MI_OK) + { + ucComMF522Buf[0] = 0; + ucComMF522Buf[1] = 0; + ucComMF522Buf[2] = 0; + ucComMF522Buf[3] = 0; + CalulateCRC(ucComMF522Buf, 4, &ucComMF522Buf[4]); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 6, ucComMF522Buf, &unLen); + if (status != MI_ERR) + { + status = MI_OK; + } + } + if (status != MI_OK) + { + return MI_ERR; + } + ucComMF522Buf[0] = PICC_TRANSFER; + ucComMF522Buf[1] = goaladdr; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)) + { + status = MI_ERR; + } + return status; +} +//------------------------------------------------------------------------------------ +//功 能:命令卡片进入休眠状态 +//返 回: 成功返回MI_OK +char PcdHalt(void) +{ + // char status; + unsigned int unLen; + unsigned char ucComMF522Buf[MAXRLEN]; + + ucComMF522Buf[0] = PICC_HALT; + ucComMF522Buf[1] = 0; + CalulateCRC(ucComMF522Buf, 2, &ucComMF522Buf[2]); + + PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 4, ucComMF522Buf, &unLen); + + return MI_OK; +} +//-------------------------------------------------------------------------------------- +//用MF522计算CRC16函数 +void CalulateCRC(unsigned char *pIndata, unsigned char len, unsigned char *pOutData) +{ + unsigned char i, n; + ClearBitMask(DivIrqReg, 0x04); + WriteRawRC(CommandReg, PCD_IDLE); + SetBitMask(FIFOLevelReg, 0x80); + for (i = 0; i < len; i++) + { + WriteRawRC(FIFODataReg, *(pIndata + i)); + } + WriteRawRC(CommandReg, PCD_CALCCRC); + i = 0xFF; + do + { + n = ReadRawRC(DivIrqReg); + i--; + } while ((i != 0) && !(n & 0x04)); + pOutData[0] = ReadRawRC(CRCResultRegL); + pOutData[1] = ReadRawRC(CRCResultRegM); +} +//----------------------------------------------------------------------------------------- +//功 能:复位RC522 +//返 回: 成功返回MI_OK +char PcdReset(void) +{ +// RC522_RST_HIGH; +// delay_us(10); +// RC522_RST_LOW; +// HAL_Delay(60); +// RC522_RST_HIGH; +// HAL_GPIO_WritePin(LED_RUN_GPIO_Port,LED_RUN_Pin,GPIO_PIN_RESET); + delay_us(4000); + + + WriteRawRC(CommandReg, PCD_RESETPHASE); + HAL_Delay(20); + + WriteRawRC(ModeReg, 0x3D); + WriteRawRC(TReloadRegL, 30); + WriteRawRC(TReloadRegH, 0); + WriteRawRC(TModeReg, 0x8D); + WriteRawRC(TPrescalerReg, 0x3E); + WriteRawRC(TxAutoReg, 0x40); + + ClearBitMask(TestPinEnReg, 0x80); + WriteRawRC(TxAutoReg, 0x40); + + return MI_OK; +} +//------------------------------------------------------------------------------------- +//功 能:读RC632寄存器 +//参数说明:Address[IN]:寄存器地址 +//返 回:读出的值 +unsigned char ReadRawRC(unsigned char Address) +{ + unsigned char ucAddr; + unsigned char ucResult = 0; + ucAddr = ((Address << 1) & 0x7E) | 0x80; + HAL_Delay(10); + RC522_ENABLE; + SPI_WriteNBytes(SPI1, &ucAddr, 1); //向总线写多个数据 + SPI_ReadNBytes(SPI1, &ucResult, 1); //向总线读多个数据 +// HAL_SPI_Transmit(&hspi1,&ucAddr,1,0xff); +// HAL_SPI_Receive(&hspi1,&ucResult,1,0xff); +// while(HAL_SPI_Transmit(&hspi1,&ucAddr,1,0xff) == HAL_OK); +// while(HAL_SPI_Receive(&hspi1,&ucResult,1,0xff) == HAL_OK); + RC522_DISABLE; + return ucResult; +} +//--------------------------------------------------------------------------------------------- +//功 能:写RC632寄存器 +//参数说明:Address[IN]:寄存器地址 +// value[IN]:写入的值 +void WriteRawRC(unsigned char Address, unsigned char value) +{ + unsigned char ucAddr; + uint8_t write_buffer[2] = {0}; + ucAddr = ((Address << 1) & 0x7E); + write_buffer[0] = ucAddr; + write_buffer[1] = value; + HAL_Delay(10); + RC522_ENABLE; + SPI_WriteNBytes(SPI1, write_buffer, 2); +// HAL_SPI_Transmit(&hspi1,write_buffer,2,0xff); +// while(HAL_SPI_Transmit(&hspi1,write_buffer,2,0xff) == HAL_OK); + RC522_DISABLE; +} +//--------------------------------------------------------------------------------------------- +//功 能:置RC522寄存器位 +//参数说明:reg[IN]:寄存器地址 +// mask[IN]:置位值 +void SetBitMask(unsigned char reg, unsigned char mask) +{ + char tmp = 0x0; + tmp = ReadRawRC(reg); //读RC632寄存器 + WriteRawRC(reg, tmp | mask); // set bit mask +} +//----------------------------------------------------------------------------------------------- +//功 能:清RC522寄存器位 +//参数说明:reg[IN]:寄存器地址 +// mask[IN]:清位值 +void ClearBitMask(unsigned char reg, unsigned char mask) +{ + char tmp = 0x0; + tmp = ReadRawRC(reg); + WriteRawRC(reg, tmp & ~mask); // clear bit mask +} +//------------------------------------------------------------------------------------------ +//功 能:通过RC522和ISO14443卡通讯 +//参数说明:Command[IN]:RC522命令字 +// pIn [IN]:通过RC522发送到卡片的数据 +// InLenByte[IN]:发送数据的字节长度 +// pOut [OUT]:接收到的卡片返回数据 +// *pOutLenBit[OUT]:返回数据的位长度 +char PcdComMF522(unsigned char Command, + unsigned char *pInData, + unsigned char InLenByte, + unsigned char *pOutData, + unsigned int *pOutLenBit) +{ + char status = MI_ERR; + unsigned char irqEn = 0x00; + unsigned char waitFor = 0x00; + unsigned char lastBits; + unsigned char n; + unsigned int i; + switch (Command) + { + case PCD_AUTHENT: + irqEn = 0x12; + waitFor = 0x10; + break; + case PCD_TRANSCEIVE: + irqEn = 0x77; + waitFor = 0x30; + break; + default: + break; + } + WriteRawRC(ComIEnReg, irqEn | 0x80); + ClearBitMask(ComIrqReg, 0x80); + WriteRawRC(CommandReg, PCD_IDLE); + SetBitMask(FIFOLevelReg, 0x80); + for (i = 0; i < InLenByte; i++) + { + WriteRawRC(FIFODataReg, pInData[i]); + } + WriteRawRC(CommandReg, Command); + if (Command == PCD_TRANSCEIVE) + { + SetBitMask(BitFramingReg, 0x80); + } + i = 800; //根据时钟频率调整,操作M1卡最大等待时间25ms + do + { + n = ReadRawRC(ComIrqReg); + i--; + } while ((i != 0) && !(n & 0x01) && !(n & waitFor)); + ClearBitMask(BitFramingReg, 0x80); + if (i != 0) + { + if (!(ReadRawRC(ErrorReg) & 0x1B)) + { + status = MI_OK; + if (n & irqEn & 0x01) + { + status = MI_NOTAGERR; + } + if (Command == PCD_TRANSCEIVE) + { + n = ReadRawRC(FIFOLevelReg); + lastBits = ReadRawRC(ControlReg) & 0x07; + if (lastBits) + { + *pOutLenBit = (n - 1) * 8 + lastBits; + } + else + { + *pOutLenBit = n * 8; + } + if (n == 0) + { + n = 1; + } + if (n > MAXRLEN) + { + n = MAXRLEN; + } + for (i = 0; i < n; i++) + { + pOutData[i] = ReadRawRC(FIFODataReg); + } + } + } + else + { + status = MI_ERR; + } + } + SetBitMask(ControlReg, 0x80); // stop timer now + WriteRawRC(CommandReg, PCD_IDLE); + return status; +} +//-------------------------------------------------------------------------------------- +//开启天线 +//每次启动或关闭天险发射之间应至少有1ms的间隔 +void PcdAntennaOn(void) +{ + unsigned char i; + i = ReadRawRC(TxControlReg); + if (!(i & 0x03)) + { + SetBitMask(TxControlReg, 0x03); + } +} +//---------------------------------------------------------------------------------------- +//关闭天线 +void PcdAntennaOff(void) +{ + ClearBitMask(TxControlReg, 0x03); +} +//------------------------------------------------ +void RC522_Config(unsigned char Card_Type) +{ + ClearBitMask(Status2Reg, 0x08); + WriteRawRC(ModeReg, 0x3D); + WriteRawRC(RxSelReg, 0x86); + WriteRawRC(RFCfgReg, 0x7F); + WriteRawRC(TReloadRegL, 30); + WriteRawRC(TReloadRegH, 0); + WriteRawRC(TModeReg, 0x8D); + WriteRawRC(TPrescalerReg, 0x3E); + HAL_Delay(5); + PcdAntennaOn(); +} diff --git a/RFID_S50.c b/RFID_S50.c new file mode 100644 index 0000000..988f5da --- /dev/null +++ b/RFID_S50.c @@ -0,0 +1,532 @@ +/******************************************************************************* + * ļ User\src\RFID_S50.c + * ־ + * ̼汾 V3.5.0 + * 汾 V1.0 + * ޸ 2016218 + * Ȩ а޹˾ + ****************************************************************************** + * ã + * DZ + * + * + * + * + * + ******************************************************************************/ +#ifdef RFIDS50_DEV + +#include "stm32f10x.h" +#include "RFID_S50.h" +#include +#include +#include "FiveSuart.h" +#include "CANManager.h" + + +#define RFID_S50_CMD_Parameter 20 //0x14 ڲ +#define RFID_S50_CMD_Control 21 //0x15 豸 򿪻ر +#define RFID_S50_CMD_Beep 22 //0x16 +#define RFID_S50_CMD_Password 23 //0x17 +#define RFID_S50_CMD_FindCard 24 //0x18 ԶѰ +#define RFID_S50_CMD_ReadCard 25 //0x19 +#define RFID_S50_CMD_WriteCard 26 //0x1A д +#define RFID_S50_CMD_Stop 27 //0x1B ֹ +#define RFID_S50_CMD_Reset 29 //0x1D λ + +RFID_S50_Parameter RFID_S50_Para; + +//֤д modified by Hy 2019-10-20 +uint8_t RFID_S50_CheckedData[16]={0}; + +//֤д modified by Hy 2019-10-20 +uint8_t RFID_S50_CheckedBlockID=0; + +//Ƿдɹ modified by Hy 2019-10-20 +bool isWrite=false; + +// modified by Hy 2019-10-20 +void ReadCard(uint8_t blockID) +{ + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[6]={0}; + + m_buf[0] = 0x05; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x04; // + m_buf[3] = blockID; // + crcResult = CRC16(m_buf, 4); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[4] = crcH; + m_buf[5] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,6); +} + +/******************************************************************************* +* Function Name : RFID_S50_OnCommand +* Description : +* Input : data +* Output : None +* Return : None +* Attention : +*******************************************************************************/ +void RFID_S50_OnCommand(uint8_t * pData ,uint16_t m_len ) +{ + //յȫ + if (pData[1] == 1) + { + //ַ1 + uint16_t crcResult = 0; //У + uint8_t crcL = 0; //Уλ + uint8_t crcH = 0; //Уλ + crcResult = CRC16(pData,m_len - 2); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + + //if ((crcL == pData[m_len - 1]) || (crcH == pData[m_len])) + if ((crcH == pData[m_len - 2]) && (crcL == pData[m_len-1])) + { + + //ͨУ + uint8_t m_Command = pData[2]; // + if (pData[3]==0) + { + // + CanTxMsg TxMsg; + TxMsg.RTR = CAN_RTR_DATA; // Ϊ֡ + TxMsg.IDE = CAN_ID_EXT; // ʹչ֡ + switch (m_Command) + { + case 1: // + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_Beep,0x01); + //سɹϢ + CAN_SendResult(m_id,0x00); + } + break; + case 2: //Ѱ + { + TxMsg.ExtId=GetCANID(DeviceID,RFID_S50_CMD_FindCard,0x01); + TxMsg.DLC=5; + TxMsg.Data[0]=0x00; + TxMsg.Data[1]=pData[4]; + TxMsg.Data[2]=pData[5]; + TxMsg.Data[3]=pData[6]; + TxMsg.Data[4]=pData[7]; + CAN_SendData(&TxMsg); + } + break; + case 3: // + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_Password,0x01); + //سɹϢ + CAN_SendResult(m_id,0x00); + } + break; + case 4: //ݿ鷵 + { + int flag = 0; + int i = 0; + //֤ modified by Hy 2019-10-20 + if(isWrite) + { + isWrite=false; + if(RFID_S50_CheckedBlockID==pData[4]) + { + for (i = 0; i < 16; i++) + { + if (RFID_S50_CheckedData[i] != pData[i+5]) + { + flag = 1; + break; + } + } + if (flag == 1) + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_WriteCard,0x01); + //ʧϢ + CAN_SendResult(m_id,0x01); + } + else + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_WriteCard,0x01); + //سɹϢ + CAN_SendResult(m_id,0x00); + } + } + } + else + { + //ȷ1ֽڵĿź16ֽ + TxMsg.ExtId=GetCANID(DeviceID,RFID_S50_CMD_ReadCard,0x01); + TxMsg.DLC=2; + TxMsg.Data[0]=0x00; + TxMsg.Data[1]=pData[4]; + CAN_SendData(&TxMsg); + + TxMsg.ExtId=GetCANID(DeviceID,RFID_S50_CMD_ReadCard,0x02); + TxMsg.DLC=8; + TxMsg.Data[0]=pData[5]; + TxMsg.Data[1]=pData[6]; + TxMsg.Data[2]=pData[7]; + TxMsg.Data[3]=pData[8]; + TxMsg.Data[4]=pData[9]; + TxMsg.Data[5]=pData[10]; + TxMsg.Data[6]=pData[11]; + TxMsg.Data[7]=pData[12]; + CAN_SendData(&TxMsg); + + TxMsg.ExtId=GetCANID(DeviceID,RFID_S50_CMD_ReadCard,0x03); + TxMsg.DLC=8; + TxMsg.Data[0]=pData[13]; + TxMsg.Data[1]=pData[14]; + TxMsg.Data[2]=pData[15]; + TxMsg.Data[3]=pData[16]; + TxMsg.Data[4]=pData[17]; + TxMsg.Data[5]=pData[18]; + TxMsg.Data[6]=pData[19]; + TxMsg.Data[7]=pData[20]; + CAN_SendData(&TxMsg); + } + } + + break; + case 5: //д + { + //дɹ modified by Hy 2019-10-20 + isWrite=true; + ReadCard(RFID_S50_CheckedBlockID); + } + break; + + case 8: //ֹIC + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_Stop,0x01); + //سɹϢ + CAN_SendResult(m_id,0x00); + } + break; + } + } + else + { + //ʧ + CanTxMsg TxMsg; + TxMsg.RTR = CAN_RTR_DATA; // Ϊ֡ + TxMsg.IDE = CAN_ID_EXT; // ʹչ֡ + switch (m_Command) + { + case 4: //ݿ鷵 + { + //ȡCANID + TxMsg.ExtId=GetCANID(DeviceID,RFID_S50_CMD_ReadCard,0x01); + TxMsg.DLC=3; + TxMsg.Data[0]=0x01; + TxMsg.Data[1]=pData[3]; + TxMsg.Data[2]=pData[4]; + CAN_SendData(&TxMsg); + } + + } + + } + }//У + } + else + { + //ַ׼ȷ践 + RFID_S50_Reset(); + } + +} + +//յ +void RFID_S50_OnData(uint8_t * m_buf,int m_len) +{ + int m_idx=0; + uint8_t temp; + for (m_idx=0;m_idxCommandID) + { + case RFID_S50_CMD_Parameter: //0x14 ôڲ + { + RFID_S50_Reset(); + RFID_S50_Para.Times=1; //óʱʱ + RFID_S50_Para.CommPara.USARTID =RxMsg->Value[0]; //ں + RFID_S50_Para.CommPara.BaudRate =RxMsg->Value[1]; // + RFID_S50_Para.CommPara.WordLength =RxMsg->Value[2]; //λ + RFID_S50_Para.CommPara.StopBits =RxMsg->Value[3]; //ֹͣλ + RFID_S50_Para.CommPara.Parity =RxMsg->Value[4]; //Уλ + RFID_S50_Para.Type =RxMsg->Value[5]; // + iTemp=GetCANID(DeviceID,0x14,0x01); + CAN_SendResult(iTemp,00); + bResult=true; + } + break; + + case RFID_S50_CMD_Control: //0x15 豸 + { + if (RxMsg->Value[0]==1) + { + //豸 + //1򿪴 + //2ǰ豸պҽӵ + uint32_t tmp_BaudRate=GetBaudRate(RFID_S50_Para.CommPara.BaudRate); + uint16_t tmp_Parity =GetParity(RFID_S50_Para.CommPara.Parity); + + Usart_Open(RFID_S50_Para.CommPara.USARTID,tmp_BaudRate,RFID_S50_Para.CommPara.WordLength,RFID_S50_Para.CommPara.StopBits,tmp_Parity); + SetDeviceOnData(RFID_S50_Para.CommPara.USARTID,RFID_S50_OnData); + SetDeviceProcess(RFID_S50_Para.CommPara.USARTID,RFID_S50_Process); + + //TIM2_Configuration(Weight_Times*2000); //ʱ2 + + //TIM_Cmd(TIM2, ENABLE); //򿪳ʱʱ + + iTemp=GetCANID(DeviceID,RFID_S50_CMD_Control,0x01); + CAN_SendResult(iTemp,00); + + + RFID_S50_Para.Open=true; + + } + else if (RxMsg->Value[0]==0) + { + //ر豸 + } + bResult=true; + } + break; + + case RFID_S50_CMD_Beep: // + { + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[6]={0}; + + if (!RFID_S50_Para.Open) + return false; + + + m_buf[0] = 0x05; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x01; // + m_buf[3] = 0x0F; //ʱ + crcResult = CRC16(m_buf, 4); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[4] = crcH; //0xBC + m_buf[5] = crcL; //0x10 + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,6); + bResult=true; + } + break; + + case RFID_S50_CMD_Password : // 22 0x16 + { + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[13]={0}; + m_buf[0] = 0x0C; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x03; // + memcpy(m_buf+3,RxMsg->Value,8); //CAN8ֽ + + crcResult = CRC16(m_buf,11); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[11] = crcH; + m_buf[12] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,13); + bResult=true; + } + break; + case RFID_S50_CMD_FindCard : // 23 ԶѰ 0x18 + { + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[5]={0}; + + if (!RFID_S50_Para.Open) + return false; + + m_buf[0] = 0x04; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x02; // Ѱ + crcResult = CRC16(m_buf, 3); + + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[3] = crcH; + m_buf[4] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,5); + bResult=true; + } + break; + case RFID_S50_CMD_ReadCard : // 24 0x19 + { + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[6]={0}; + + if (!RFID_S50_Para.Open) + return false; + + m_buf[0] = 0x05; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x04; // + m_buf[3] = RxMsg->Value[0]; // + crcResult = CRC16(m_buf, 4); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[4] = crcH; + m_buf[5] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,6); + bResult=true; + } + break; + case RFID_S50_CMD_WriteCard : // 25 д 0x19 + { + if (RxMsg->BlockID==1) + { + //һ + RFID_S50_ProcessData[0]=RxMsg->Value[0]; + RFID_S50_CheckedBlockID=RxMsg->Value[0]; + } + else if (RxMsg->BlockID==2) + { + //ڶ + memcpy(RFID_S50_ProcessData+1,RxMsg->Value,8); + + } + else if (RxMsg->BlockID==3) + { + // + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[22]={0}; + + if (!RFID_S50_Para.Open) + return false; + + memcpy(RFID_S50_ProcessData+9,RxMsg->Value,8); + + m_buf[0] = 0x15; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x05; // + + memcpy(m_buf+3,RFID_S50_ProcessData,17); //CAN17ֽ + crcResult = CRC16(m_buf,20); + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[20] = crcH; + m_buf[21] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,22); + //дʱ modified by Hy 2019-10-20 + memcpy(RFID_S50_CheckedData,RFID_S50_ProcessData+1,16); + } + bResult=true; + } + break; + + case RFID_S50_CMD_Stop: //ֹ + { + uint16_t crcResult=0; + uint8_t crcL=0; + uint8_t crcH=0; + uint8_t m_buf[5]={0}; + + if (!RFID_S50_Para.Open) + return false; + + m_buf[0] = 0x04; // + m_buf[1] = 0x01; //ַ + m_buf[2] = 0x08; // + crcResult = CRC16(m_buf, 3); + + crcL = (uint8_t)(crcResult & 0xFF); + crcH = (uint8_t)(crcResult >> 8); + m_buf[3] = crcH; + m_buf[4] = crcL; + Usart_SendData(RFID_S50_Para.CommPara.USARTID,m_buf,5); + bResult=true; + } + break; + case RFID_S50_CMD_Reset: + { + uint32_t m_id=GetCANID(DeviceID,RFID_S50_CMD_Reset,0x01); + //سɹϢ + CAN_SendResult(m_id,0x00); + RFID_S50_Reset(); + bResult=true; + } + break; + } + return bResult; +} + +// void TIM3_IRQHandler(void) +// { +// if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) +// { +// TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); + +// } +// } + +//λ +void RFID_S50_Reset() +{ + RFID_S50_Para.IndexFlag=0; +} + + +#endif + diff --git a/S99appinit b/S99appinit new file mode 100644 index 0000000..3c9cc20 --- /dev/null +++ b/S99appinit @@ -0,0 +1,78 @@ +#! /bin/sh + +# Load default env variables from profiles(e.g. /etc/profile.d/*.sh) +. /etc/profile + +start_app() +{ + # Wait for weston ready, 5 seconds timeout + counter=0 + while [ ! -e "${XDG_RUNTIME_DIR}/wayland-0" ] && [ $counter -lt 50 ]; do + sleep 0.1 + counter=$((counter + 1)) + done + + if wait_for_network; then + + killall weston 2>/dev/null || true + sleep 0.5 + /userdata/auseft/WeighUI --domain 13 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/device-daemon > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/Core --domain 13 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/IoCtrl --device gpio --device_id 1 --domain 13 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/HttpServer --domain 13 --port 8081 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/Print --domain 13 --port ttyS2 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/MqttDds --domain 13 --addr ws://10.180.4.1:8083 --user auseft --password 1q2w3E** > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/Led --domain 13 --type 1 --addr 192.168.6.147 > /dev/null 2>&1 & + sleep 0.5 + /userdata/auseft/ReadCard --domain 13 > /dev/null 2>&1 & + else + echo "network failed." + fi +} + +wait_for_network() +{ + local interface="eth0" + local retries=50 + local count=0 + + echo "wait network $interface start..." + + while [ $count -lt $retries ]; do + if ip link show $interface | grep -q "state UP"; then + echo "$interface started." + return 0 + fi + sleep 1 + count=$((count + 1)) + done + + echo "network $interface start failed, retry $retries times." + return 1 +} + +case $1 in + start) + #sh /oem/RkLunch.sh + ip link set can0 type can bitrate 500000 dbitrate 1000000 fd on + ip link set up can0 + echo 34 > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio34/direction + echo 1 > /sys/class/gpio/gpio34/value +# start_app + ;; + stop) + #sh /oem/RkLunch-stop.sh + ;; + *) + echo "Usage: $0 {start|stop}" + ;; +esac diff --git a/common/CanMsgHandler.cxx b/common/CanMsgHandler.cxx index 0b434b9..d995b6b 100644 --- a/common/CanMsgHandler.cxx +++ b/common/CanMsgHandler.cxx @@ -83,6 +83,8 @@ bool CanMsgHandler::OpenPort(const std::string& port, const std::string& baudrat // return false; // } + + return true; } diff --git a/common/SerialMsgHandler.cxx b/common/SerialMsgHandler.cxx index 0c698cd..1178584 100644 --- a/common/SerialMsgHandler.cxx +++ b/common/SerialMsgHandler.cxx @@ -23,6 +23,8 @@ bool SerialMsgHandler::OpenPort(const std::string &port, const std::string &baud ClosePort(); + + fd = open(tty.c_str(), O_RDWR | O_NOCTTY | O_NDELAY); if (fd == -1) { @@ -51,16 +53,31 @@ bool SerialMsgHandler::OpenPort(const std::string &port, const std::string &baud if (baudrate == "115200") { baund = B115200; + } else if (baudrate == "9600") { baund = B9600; + + } + else if (baudrate == "19200") + { + baund = B19200; + } + else if (baudrate == "57600") + { + baund = B57600; } else { baund = B9600; + } + // ========== 新增:保存波特率 ========== + baudrate_ = baund; + + return setPortAttributes(baund); } @@ -69,6 +86,10 @@ bool SerialMsgHandler::setPortAttributes(int baudrate) { struct termios options; + // ========== 新增:调试打印配置前的状态 ========== + std::cout << "[DEBUG] setPortAttributes: configuring port with baudrate=" << baudrate << std::endl; + + // 获取当前串口设置 if (tcgetattr(fd, &options) != 0) { @@ -116,3 +137,17 @@ bool SerialMsgHandler::setPortAttributes(int baudrate) return true; } + +// ========== 新增:刷新串口配置 ========== +bool SerialMsgHandler::refreshPort() +{ + if (fd == -1) { + std::cout << "[DEBUG] refreshPort: fd is -1, skip" << std::endl; + return false; + } + + // ========== 调试打印 ========== + std::cout << "[DEBUG] refreshPort: reconfiguring port, baudrate=" << baudrate_ << std::endl; + + return setPortAttributes(baudrate_); +} \ No newline at end of file diff --git a/common/SerialMsgHandler.hpp b/common/SerialMsgHandler.hpp index 9e485c4..34dfe08 100644 --- a/common/SerialMsgHandler.hpp +++ b/common/SerialMsgHandler.hpp @@ -3,6 +3,8 @@ #include #include +#include +#include #include "MsgHandler.hpp" @@ -18,7 +20,11 @@ public: // 设置串口参数 bool setPortAttributes(int baudrate); + bool refreshPort(); + private: + + speed_t baudrate_; // 新增:保存波特率(speed_t 类型) }; #endif // _SERIALMSGHANDLER_HPP_ diff --git a/config.json b/config.json new file mode 100644 index 0000000..7f297e0 --- /dev/null +++ b/config.json @@ -0,0 +1,89 @@ +{ + "dds": + { + "domain": 0 + }, + "mqtt": + { + "server_url": "mqtt://192.168.1.2:1883", + "client_id": "ddsmqtt_sub_pub_0", + "username": "admin", + "password": "admin", + "sub_topic": ["command"], + "sub_qos": [0], + "pub_topic": ["response"], + "pub_qos": [0] + }, + "httpserver": + { + "port": 8080 + }, + "ioctrl": + { + "bus": "gpio", + "device": "gpio", + "iomap": { + "out": { + "frontbarrup": [48, 0], + "frontbardown": [49, 0] + }, + "in": { + "frontdetect": [5, 1] + } + } + }, + "led": + { + "ip": "192.168.0.199", + "port": 80, + "path": "/home/bo/project/app/dds/led/build/" + }, + "print": + { + "bus": "serial", + "port": "ttyS2", + "baudrate": "9600", + "device": "NP80A" + }, + "readcard": + { + "bus": "serial", + "port": "ttyS1", + "baudrate": "9600", + "device": "RC522", + "password": + [ + { + "sector": 1, + "data": [1, 2, 3, 4, 5, 6] + }, + { + "sector": 2, + "data": [7, 8, 9, 10, 11, 12] + }, + { + "sector": 3, + "data": [13, 14, 15, 16, 17, 18] + }, + { + "sector": 4, + "data": [19, 20, 21, 22, 23, 24] + }, + { + "sector": 5, + "data": [25, 26, 27, 28, 29, 30] + }, + { + "sector": 10, + "data": [177, 10, 35, 209, 143, 32] + } + ] + }, + "weigh": + { + "bus": "serial", + "port": "ttyS5", + "baudrate": "9600", + "device": "Keli" + } +} \ No newline at end of file diff --git a/core/Publisher.cxx b/core/Publisher.cxx index 8254960..d3cea79 100644 --- a/core/Publisher.cxx +++ b/core/Publisher.cxx @@ -24,7 +24,10 @@ #include #include #include +#include +#include #include +#include // 新增:用于 std::fabs #include #include @@ -33,10 +36,11 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" #include "DEBUG.hpp" + using namespace eprosima::fastdds::dds; PublisherApp::PublisherApp( @@ -55,13 +59,11 @@ PublisherApp::PublisherApp( , summary_type_(new WeighingSystem::SummaryUpdatePubSubType()) , print_topic_(nullptr) , print_writer_(nullptr) - , print_type_(new InternalSystem::PrintReqPubSubType()) + , print_type_(new WeighingSystem::PrintReqPubSubType()) , matched_(0) , samples_sent_(0) , stop_(false) { - // - // Create the participant DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT; pqos.name("Core_pub_participant"); @@ -319,7 +321,7 @@ bool PublisherApp::light_ctrl(const std::map& ctrl) bool PublisherApp::print_receipt(const std::map& msg) { - InternalSystem::PrintReq req; + WeighingSystem::PrintReq req; req.msg() = msg; @@ -333,163 +335,60 @@ bool PublisherApp::print_receipt(const std::map& msg) return true; } -#define WEIGH_IDLE 0 -#define WEIGH_LIC 1 -#define WEIGH_STABLE1 2 -#define WEIGH_STABLE2 3 -#define WEIGH_SEND 4 -#define WEIGH_PRINT 5 -#define WEIGH_ERROR 6 -#define WEIGH_LEAVE 7 +#define WEIGH_IDLE 0 +#define WEIGH_QUEUE_RAISED 1 // 已抬杆,计时等 60s 落杆 void PublisherApp::run() { - std::string license_no; - float stable_weight = 0; - float stable_weight1 = 0; - float stable_weight2 = 0; int weigh_state = WEIGH_IDLE; while (!is_stopped()) { + // 1) 消费 DDS 队列 std::unique_lock dds_lock(DdsMsgData::queue_cv_mtx_, std::try_to_lock); if (dds_lock.owns_lock()) { - if (!DdsMsgData::LicenseSnapUpdate_queue_.empty()) + if (!DdsMsgData::QueueSuccess_queue_.empty()) { - WeighingSystem::LicenseSnapUpdate info = std::move(DdsMsgData::LicenseSnapUpdate_queue_.front()); - DdsMsgData::LicenseSnapUpdate_queue_.pop(); + Queue::QueueSuccess info = std::move(DdsMsgData::QueueSuccess_queue_.front()); + DdsMsgData::QueueSuccess_queue_.pop(); dds_lock.unlock(); - DEBUG("车牌: " << info.License()); - DEBUG("类型: " << info.NewTag()); - - if (license_no.empty() == true) - { - license_no = info.License(); - weigh_state = WEIGH_LIC; - } - } - else if (!DdsMsgData::ScaleInfo_queue_.empty()) - { - WeighingSystem::ScaleInfo info = std::move(DdsMsgData::ScaleInfo_queue_.front()); - DdsMsgData::ScaleInfo_queue_.pop(); - dds_lock.unlock(); + DEBUG("==== QueueSuccess received, raising front bar ===="); + DEBUG(" message_id = " << info.message_id()); + DEBUG(" card_number = " << info.card_number()); + DEBUG(" device_id = " << info.device_id()); - DEBUG("有车: " << info.HasVehicle()); - DEBUG("稳定: " << info.WeightOK()); - DEBUG("设备状态: " << info.State()); - DEBUG("实时重量: " << info.Value()); - DEBUG("稳定重量: " << info.StableValue()); - - if (info.WeightOK() == true) - { - stable_weight = info.StableValue(); - } - else - { - stable_weight = 0; - } - - if (info.HasVehicle() == 0) - { - license_no.clear(); - if (weigh_state == WEIGH_LEAVE) - { - std::this_thread::sleep_for(std::chrono::seconds(5)); - std::map ctrl; - ctrl["FrontBar"] = "down"; - bar_ctrl(ctrl); - weigh_state = WEIGH_IDLE; - } - } - } - else if (!DdsMsgData::BarUpdate_queue_.empty()) - { - WeighingSystem::BarUpdate info = std::move(DdsMsgData::BarUpdate_queue_.front()); - DdsMsgData::BarUpdate_queue_.pop(); - dds_lock.unlock(); - - DEBUG("前拦车器状态: " << info.FrontBarState()); - DEBUG("后拦车器状态: " << info.BackBarState()); - } - else if (!DdsMsgData::LightsUpdate_queue_.empty()) - { - WeighingSystem::LightsUpdate info = std::move(DdsMsgData::LightsUpdate_queue_.front()); - DdsMsgData::LightsUpdate_queue_.pop(); - dds_lock.unlock(); - - DEBUG("前红绿灯状态: " << info.FrontLEDState()); - DEBUG("后红绿灯状态: " << info.BackLEDState()); - } - else if (!DdsMsgData::InfraredUpdate_queue_.empty()) - { - WeighingSystem::InfraredUpdate info = std::move(DdsMsgData::InfraredUpdate_queue_.front()); - DdsMsgData::InfraredUpdate_queue_.pop(); - dds_lock.unlock(); + // 抬前拦车器 + std::map ctrl; + ctrl["FrontBar"] = "up"; + bar_ctrl(ctrl); - DEBUG("前红外对射状态: " << info.FrontResistanceSignal()); - DEBUG("后红外对射状态: " << info.BackResistanceSignal()); - } - else if (!DdsMsgData::WeightInfoOk_queue_.empty()) - { - WeighingSystem::WeightInfoOk info = std::move(DdsMsgData::WeightInfoOk_queue_.front()); - DdsMsgData::WeightInfoOk_queue_.pop(); - dds_lock.unlock(); + // 抬后拦车器 + // std::map ctrl; + // ctrl["BackBar"] = "up"; + // bar_ctrl(ctrl); - auto formatFloat = [](float value) -> std::string - { - std::ostringstream oss; - oss << std::fixed << std::setprecision(0) << value; - return oss.str(); - }; - if (info.IsPrintTicker() == true) + // 收到 QueueSuccess 后下发"排队票"打印任务(仅打一次) + // 字段映射:QueueSuccess → Print1_3 期望的 map key { std::map print_msg; - - print_msg["Title"] = "五彩湾"; - print_msg["GrossDeviceID"] = std::to_string(info.GrossDeviceID()); - print_msg["GrossDeviceName"] = info.GrossDeviceName(); - print_msg["TareDeviceID"] = std::to_string(info.TareDeviceID()); - print_msg["TareDeviceName"] = info.TareDeviceName(); - print_msg["TitleCorp"] = info.EnterpriseName(); - print_msg["CoalNumber"] = info.BillNumber(); - print_msg["CarNumber"] = info.CarNumber(); - print_msg["Supplier"] = info.Supplier(); - print_msg["GoodsType"] = info.GoodsType(); - print_msg["GrossWeight"] = formatFloat(info.GrossWeight()); - print_msg["GrossTime"] = info.GrossTime(); - print_msg["GrossOperater"] = info.GrossOperater(); - print_msg["TareWeight"] = formatFloat(info.Tare()); - print_msg["TareTime"] = info.TareTime(); - print_msg["TareOperater"] = info.TareOperater(); - print_msg["SuttleWeight"] = formatFloat(info.Suttle()); - print_msg["duduction1"] = formatFloat(info.duduction1()); - print_msg["duduction2"] = formatFloat(info.duduction2()); - print_msg["duduction3"] = formatFloat(info.duduction3()); - print_msg["INCoalYard"] = info.INCoalYard(); - print_msg["OUTCoalYard"] = info.OutCoalYard(); - print_msg["BatchNumber"] = info.BatchNumber(); - print_msg["Warning"] = info.Warning(); - print_msg["Tips"] = info.Tips(); - print_msg["TicketType"] = info.TicketType(); - + print_msg["Title"] = "排队票"; // 触发 print/MsgHandler2.cxx::Print1_3 + print_msg["CarNumber"] = info.vehicle_number(); // 车牌号 + print_msg["DateTime"] = info.queue_time(); // 时间 + print_msg["QueueID"] = std::to_string(info.queue_number()); // 排队号 (long→string) + print_msg["Supplier"] = std::to_string(info.sample_code()); // 采样编码 + print_msg["GoodsType"] = info.goods_name(); // 品种 + print_msg["sample_machine"] = info.sample_machine(); // 采样机名称 + print_msg["CoalYard"] = ""; // 煤场:缺省为空(冒号后无内容) print_receipt(print_msg); - std::this_thread::sleep_for(std::chrono::seconds(1)); } - weigh_state = WEIGH_LEAVE; - std::map ctrl; - ctrl["FrontBar"] = "up"; - bar_ctrl(ctrl); - } - else if (!DdsMsgData::WeightInfoError_queue_.empty()) - { - WeighingSystem::WeightInfoError info = std::move(DdsMsgData::WeightInfoError_queue_.front()); - DdsMsgData::WeightInfoError_queue_.pop(); - dds_lock.unlock(); - weigh_state = WEIGH_ERROR; + // 记录抬杆时刻,开始 60s 倒计时 + queue_success_time_ = std::chrono::steady_clock::now(); + queue_success_pending_ = true; + weigh_state = WEIGH_QUEUE_RAISED; } else { @@ -497,69 +396,41 @@ void PublisherApp::run() } } - // logic + // 2) 状态机 switch (weigh_state) { - case WEIGH_IDLE: - break; - case WEIGH_LIC: - if ((stable_weight != 0) && (license_no.empty() != true)) - { - DEBUG("stable_weight1 " << stable_weight); - DEBUG("license_no " << license_no); - stable_weight1 = stable_weight; - weigh_state = WEIGH_STABLE1; - } - break; - case WEIGH_STABLE1: - if (stable_weight == 0) - { - DEBUG("weigh1 clear"); - weigh_state = WEIGH_STABLE2; - } - break; - case WEIGH_STABLE2: - if ((stable_weight != 0) && (license_no.empty() != true)) - { - DEBUG("license_no " << license_no); - DEBUG("stable_weight2 " << stable_weight); - stable_weight2 = stable_weight; - if ((stable_weight1 - stable_weight2) > 45) - { - weigh_state = WEIGH_SEND; - } - else - { - DEBUG("stable_weight2 error"); - stable_weight1 = stable_weight; - weigh_state = WEIGH_STABLE1; - } - } - break; - case WEIGH_SEND: - DEBUG("send summary"); + case WEIGH_IDLE: + break; + + case WEIGH_QUEUE_RAISED: + if (queue_success_pending_) + { + auto elapsed = std::chrono::duration_cast( + std::chrono::steady_clock::now() - queue_success_time_).count(); + if (elapsed >= 60) { - WeighingSystem::SummaryUpdate info; - info.License() = license_no; - info.StableValue() = stable_weight2; - summary_writer_->write(&info); + DEBUG("60s elapsed after QueueSuccess, lowering front bar..."); + std::map ctrl; + ctrl["FrontBar"] = "down"; + bar_ctrl(ctrl); + + // std::map ctrl; + // ctrl["BackBar"] = "down"; + // bar_ctrl(ctrl); + + + queue_success_pending_ = false; + weigh_state = WEIGH_IDLE; } - weigh_state = WEIGH_PRINT; - break; - case WEIGH_PRINT: - break; - case WEIGH_ERROR: - std::this_thread::sleep_for(std::chrono::seconds(3)); - weigh_state = WEIGH_STABLE2; - break; - case WEIGH_LEAVE: - break; - default: - weigh_state = WEIGH_IDLE; - break; + } + break; + + default: + weigh_state = WEIGH_IDLE; + break; } - - // Wait for period or stop event + + // 3) 周期等待 std::unique_lock period_lock(mutex_); cv_.wait_for(period_lock, std::chrono::milliseconds(period_ms_), [this]() { @@ -568,7 +439,6 @@ void PublisherApp::run() } } - bool PublisherApp::publish() { bool ret = false; @@ -598,4 +468,4 @@ void PublisherApp::stop() { stop_.store(true); cv_.notify_one(); -} \ No newline at end of file +} diff --git a/core/Publisher.hpp b/core/Publisher.hpp index 3e8fb28..cc8bfc3 100644 --- a/core/Publisher.hpp +++ b/core/Publisher.hpp @@ -23,6 +23,7 @@ #define FAST_DDS_GENERATED__PUBLISHERAPP_HPP #include +#include #include #include @@ -82,6 +83,10 @@ private: const uint32_t period_ms_ = 100; // in ms uint16_t samples_sent_; std::atomic stop_; + + // ── QueueSuccess 抬杆/落杆计时 ── + std::chrono::steady_clock::time_point queue_success_time_; + bool queue_success_pending_ = false; }; #endif // FAST_DDS_GENERATED__PUBLISHERAPP_HPP \ No newline at end of file diff --git a/core/Subscriber.cxx b/core/Subscriber.cxx index 9cf04eb..f6c6313 100644 --- a/core/Subscriber.cxx +++ b/core/Subscriber.cxx @@ -28,17 +28,32 @@ #include #include #include + +#include +#include +#include "msg.hpp" + +// Static member definitions for DdsMsgData +// (other queue/mutex members are already defined in core/main.cxx; +// only QueueSuccess_queue_ is missing there) +std::queue DdsMsgData::QueueSuccess_queue_; #include #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" #include "DEBUG.hpp" using namespace eprosima::fastdds::dds; +// 【新增】静态成员变量定义 +// std::mutex DdsMsgData::infrared_mtx_; +// WeighingSystem::InfraredUpdate DdsMsgData::latest_infrared_; +// std::atomic DdsMsgData::stop_flag_{false}; + + SubscriberApp::SubscriberApp( const int& domain_id) : factory_(nullptr) @@ -68,6 +83,9 @@ SubscriberApp::SubscriberApp( , weightinfoerror_topic_(nullptr) , weightinfoerror_reader_(nullptr) , weightinfoerror_type_(new WeighingSystem::WeightInfoErrorPubSubType()) + , queuesuccess_topic_(nullptr) + , queuesuccess_reader_(nullptr) + , queuesuccess_type_(new Queue::QueueSuccessPubSubType()) , samples_received_(0) , stop_(false) { @@ -92,6 +110,7 @@ SubscriberApp::SubscriberApp( scaleinfo_type_.register_type(participant_); weightinfook_type_.register_type(participant_); weightinfoerror_type_.register_type(participant_); + queuesuccess_type_.register_type(participant_); // Create the subscriber SubscriberQos sub_qos = SUBSCRIBER_QOS_DEFAULT; @@ -317,6 +336,33 @@ SubscriberApp::SubscriberApp( { throw std::runtime_error("WeighingSystem::WeightInfoError DataReader initialization failed"); } + + // Create the topic + topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(topic_qos); + queuesuccess_topic_ = participant_->create_topic("QueueSuccess", queuesuccess_type_.get_type_name(), topic_qos); + if (queuesuccess_topic_ == nullptr) + { + throw std::runtime_error("Queue::QueueSuccess Topic initialization failed"); + } + + // Create the reader + reader_qos = DATAREADER_QOS_DEFAULT; + subscriber_->get_default_datareader_qos(reader_qos); + reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + reader_qos.reliability().max_blocking_time = Duration_t(1, 0); + reader_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + reader_qos.history().depth = 1; + reader_qos.resource_limits().max_samples = 200; + reader_qos.resource_limits().max_instances = 1; + reader_qos.resource_limits().max_samples_per_instance = 100; + reader_qos.data_sharing().off(); + queuesuccess_reader_ = subscriber_->create_datareader(queuesuccess_topic_, reader_qos, this, StatusMask::all()); + if (queuesuccess_reader_ == nullptr) + { + throw std::runtime_error("Queue::QueueSuccess DataReader initialization failed"); + } } SubscriberApp::~SubscriberApp() @@ -383,6 +429,7 @@ void SubscriberApp::on_data_available( DdsMsgData::LightsUpdate_queue_.push(std::move(sample_)); lock.unlock(); } + } } } @@ -398,6 +445,11 @@ void SubscriberApp::on_data_available( DdsMsgData::InfraredUpdate_queue_.push(std::move(sample_)); lock.unlock(); } + // // 【新增】保存最新红外对射状态 + // { + // std::lock_guard lock(DdsMsgData::infrared_mtx_); + // DdsMsgData::latest_infrared_ = sample_; + // } } } } @@ -476,6 +528,21 @@ void SubscriberApp::on_data_available( } } } + else if (topic_name == "QueueSuccess") + { + Queue::QueueSuccess sample_; + while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) + { + if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) + { + { + std::unique_lock lock(DdsMsgData::queue_cv_mtx_); + DdsMsgData::QueueSuccess_queue_.push(std::move(sample_)); + lock.unlock(); + } + } + } + } } void SubscriberApp::run() @@ -498,4 +565,4 @@ void SubscriberApp::stop() { stop_.store(true); terminate_cv_.notify_all(); -} \ No newline at end of file +} diff --git a/core/Subscriber.hpp b/core/Subscriber.hpp index 669b2cf..d860d12 100644 --- a/core/Subscriber.hpp +++ b/core/Subscriber.hpp @@ -29,7 +29,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener { @@ -87,6 +87,10 @@ private: eprosima::fastdds::dds::Topic* weightinfoerror_topic_; eprosima::fastdds::dds::DataReader* weightinfoerror_reader_; eprosima::fastdds::dds::TypeSupport weightinfoerror_type_; + // 【新增】QueueSuccess 订阅相关 + eprosima::fastdds::dds::Topic* queuesuccess_topic_; + eprosima::fastdds::dds::DataReader* queuesuccess_reader_; + eprosima::fastdds::dds::TypeSupport queuesuccess_type_; uint16_t samples_received_; std::atomic stop_; uint32_t period_ms_ = 100; // in ms @@ -94,4 +98,4 @@ private: std::condition_variable terminate_cv_; }; -#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP \ No newline at end of file +#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP diff --git a/core/msg.hpp b/core/msg.hpp index f93a94f..5c9bbf1 100644 --- a/core/msg.hpp +++ b/core/msg.hpp @@ -3,10 +3,17 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" +#include class DdsMsgData { public: + + // 【修改】红外对射最新状态存储(放在最前面,保持正确缩进) + // static std::mutex infrared_mtx_; + // static WeighingSystem::InfraredUpdate latest_infrared_; + // static std::atomic stop_flag_; + static std::queue BarUpdate_queue_; static std::queue LightsUpdate_queue_; static std::queue InfraredUpdate_queue_; @@ -15,7 +22,10 @@ public: static std::queue ScaleInfo_queue_; static std::queue WeightInfoOk_queue_; static std::queue WeightInfoError_queue_; + static std::queue QueueSuccess_queue_; static std::mutex queue_cv_mtx_; + + }; -#endif \ No newline at end of file +#endif diff --git a/demo/Publisher.cxx b/demo/Publisher.cxx index 7045623..72f9b46 100644 --- a/demo/Publisher.cxx +++ b/demo/Publisher.cxx @@ -33,7 +33,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" using namespace eprosima::fastdds::dds; @@ -44,7 +44,7 @@ PublisherApp::PublisherApp( , publisher_(nullptr) , topic_(nullptr) , writer_(nullptr) - , type_(new WeighRspPubSubType()) + , type_(new WeighingSystem::ScaleInfoPubSubType()) , matched_(0) , samples_sent_(0) , stop_(false) @@ -169,7 +169,7 @@ bool PublisherApp::publish() if (!is_stopped()) { /* Initialize your structure here */ - WeighRsp sample_; + WeighingSystem::ScaleInfo sample_; ret = (RETCODE_OK == writer_->write(&sample_)); } return ret; @@ -184,4 +184,4 @@ void PublisherApp::stop() { stop_.store(true); cv_.notify_one(); -} \ No newline at end of file +} diff --git a/demo/Subscriber.cxx b/demo/Subscriber.cxx index bc10fe1..7d7bf4e 100644 --- a/demo/Subscriber.cxx +++ b/demo/Subscriber.cxx @@ -32,7 +32,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" using namespace eprosima::fastdds::dds; @@ -43,7 +43,7 @@ SubscriberApp::SubscriberApp( , subscriber_(nullptr) , topic_(nullptr) , reader_(nullptr) - , type_(new WeighReqPubSubType()) + , type_(new WeighingSystem::ScaleInfoPubSubType()) , samples_received_(0) , stop_(false) { @@ -127,7 +127,7 @@ void SubscriberApp::on_subscription_matched( void SubscriberApp::on_data_available( DataReader* reader) { - WeighRsp sample_; + WeighingSystem::ScaleInfo sample_; SampleInfo info; while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) { @@ -156,4 +156,4 @@ void SubscriberApp::stop() { stop_.store(true); terminate_cv_.notify_all(); -} \ No newline at end of file +} diff --git a/demo/Subscriber.hpp b/demo/Subscriber.hpp index 81132dc..f6d8448 100644 --- a/demo/Subscriber.hpp +++ b/demo/Subscriber.hpp @@ -29,7 +29,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener { @@ -72,4 +72,4 @@ private: std::condition_variable terminate_cv_; }; -#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP \ No newline at end of file +#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP diff --git a/fastddsgen.jar b/fastddsgen.jar new file mode 100644 index 0000000..16ef944 Binary files /dev/null and b/fastddsgen.jar differ diff --git a/gatectrl/Subscriber.cxx b/gatectrl/Subscriber.cxx index 6eb439b..8f9904e 100644 --- a/gatectrl/Subscriber.cxx +++ b/gatectrl/Subscriber.cxx @@ -212,9 +212,22 @@ void SubscriberApp::run(std::shared_ptr handler) { if(!MsgData::BarCommandUpdate_queue_.empty()) { + WeighingSystem::BarCommandUpdate cmd = std::move(MsgData::BarCommandUpdate_queue_.front()); MsgData::BarCommandUpdate_queue_.pop(); lock.unlock(); + + // std::cout << "[DEBUG] DDS Received: " + // << "FrontBarSignalUp=" << cmd.FrontBarSignalUp() << ", " + // << "FrontBarSignalDown=" << cmd.FrontBarSignalDown() << ", " + // << "FrontBarEnable=" << cmd.FrontBarEnable() << ", " + // << "BackBarSignalUp=" << cmd.BackBarSignalUp() << ", " + // << "BackBarSignalDown=" << cmd.BackBarSignalDown() << ", " + // << "BackBarEnable=" << cmd.BackBarEnable() + // << std::endl; + + + std::vector port; if (!std::filesystem::exists(getExeDir() / "frontbar.lock")) { diff --git a/gatectrl/main.cxx b/gatectrl/main.cxx index d1f1e93..26407f4 100644 --- a/gatectrl/main.cxx +++ b/gatectrl/main.cxx @@ -34,6 +34,43 @@ #include "msg.hpp" #include "DEBUG.hpp" + +// ── 拦车器测试函数 ── +void bar_test(std::shared_ptr handler, const std::string& bar_name) +{ + DEBUG(bar_name + " test started..."); + + std::this_thread::sleep_for(std::chrono::seconds(3)); + DEBUG("3 seconds elapsed, raising " + bar_name + "..."); + + std::vector ports; + ports.push_back(bar_name + "BarUp"); + handler->CtrlBar(ports); + + // 等待 CtrlBar 内部所有消息发送完成 + std::this_thread::sleep_for(std::chrono::seconds(5)); + + DEBUG("5 seconds elapsed, lowering " + bar_name + "..."); + + ports.clear(); + ports.push_back(bar_name + "BarDown"); + handler->CtrlBar(ports); + + DEBUG(bar_name + " test completed."); +} + +void front_bar_test(std::shared_ptr handler) +{ + bar_test(handler, "Front"); +} + +void back_bar_test(std::shared_ptr handler) +{ + bar_test(handler, "Back"); +} + + + using eprosima::fastdds::dds::Log; std::function stop_handler; @@ -87,6 +124,14 @@ int main(int argc, char** argv) { domain_id = atoi(argv[++i]); } + else if (strcmp(argv[i], "--test_front_bar") == 0) + { + // 启用前拦车器测试功能 + } + else if (strcmp(argv[i], "--test_back_bar") == 0) + { + // 启用后拦车器测试功能 + } else if (strcmp(argv[i], "--interface") == 0 && i + 1 < argc) { interface = argv[++i]; @@ -122,7 +167,8 @@ int main(int argc, char** argv) << " --port Set port name (e.g., can0)\n" << " --device Set device name (e.g., 5serial)\n" << " --version Show software Version\n" - << " --help Show this help message\n"; + << " --help Show this help message\n" + << " --test_front_bar Test front bar (raise after 3s, lower after 3s)\n"; return EXIT_SUCCESS; } else @@ -136,7 +182,8 @@ int main(int argc, char** argv) << " --port Set port name (e.g., can0)\n" << " --device Set device name (e.g., 5serial)\n" << " --version Show software Version\n" - << " --help Show this help message\n"; + << " --help Show this help message\n" + << " --test_front_bar Test front bar (raise after 3s, lower after 3s)\n"; return EXIT_FAILURE; } } @@ -149,6 +196,33 @@ int main(int argc, char** argv) dev->device = device; dev->device_id = device_id; + + // ── 拦车器测试模式 ── + bool test_front_bar = false; + bool test_back_bar = false; + for (int i = 1; i < argc; i++) + { + if (strcmp(argv[i], "--test_front_bar") == 0) + { + test_front_bar = true; + } + else if (strcmp(argv[i], "--test_back_bar") == 0) + { + test_back_bar = true; + } + } + + std::thread test_thread; + if (test_front_bar) + { + test_thread = std::thread(front_bar_test, dev); + } + else if (test_back_bar) + { + test_thread = std::thread(back_bar_test, dev); + } + + std::thread sub_thread(&SubscriberApp::run, sub, dev); std::thread pub_thread(&PublisherApp::run, pub, dev); @@ -169,6 +243,11 @@ int main(int argc, char** argv) signal(SIGHUP, signal_handler); #endif // _WIN32 + if (test_front_bar || test_back_bar) + { + test_thread.join(); + } + sub_thread.join(); pub_thread.join(); diff --git a/httpserver/Publisher.cxx b/httpserver/Publisher.cxx index 0b47d14..7ad7061 100644 --- a/httpserver/Publisher.cxx +++ b/httpserver/Publisher.cxx @@ -26,6 +26,7 @@ #include #include + #include #include #include @@ -154,6 +155,10 @@ void PublisherApp::run(std::shared_ptr handler) if (handler->PostMsg.empty() != true) { + + std::cout << "[HTTPServer] 原始数据: " << handler->PostMsg << std::endl; + + json j = json::parse(handler->PostMsg); DEBUG("车牌: " << j["AlarmInfoPlate"]["result"]["PlateResult"]["license"]); diff --git a/ioctrl/MsgHandler.cxx b/ioctrl/MsgHandler.cxx index 5f255cc..85343ce 100644 --- a/ioctrl/MsgHandler.cxx +++ b/ioctrl/MsgHandler.cxx @@ -4,179 +4,64 @@ #include #include #include +#include // for O_WRONLY +#include #include "MsgHandler.hpp" MsgHandler::MsgHandler() : fd(-1) {} -void MsgHandler::HandleDdsMsg(const std::map& msg) -{ - auto cmd = msg.find("cmd"); - - if (cmd != msg.end()) - { - if (cmd->second == "config") - { - auto port = msg.find("port"); - auto baudrate = msg.find("baudrate"); - auto device = msg.find("device"); - if ((port != msg.end()) && (baudrate != msg.end()) && (device != msg.end())) - { - OpenPort(port->second, baudrate->second); - this->device = device->second; - } - } - else if (cmd->second == "open") - { - if (this->device == "5serial") - { - std::vector data; - data.insert(data.end(), {this->device_id, 0x50, 1, 1}); - SendDeviceMsg(data); - } - } - else if (cmd->second == "write") - { - if (this->device == "5serial") - { - std::vector data; - data.resize(8, 1); - data.insert(data.begin(), {this->device_id, 0x51, 1}); - for (const auto &port : this->iomap.omap) - { - data[port.second.first+2] = port.second.second; - } - - for (auto &m : msg) - { - auto port = this->iomap.omap.find(m.first); - if (port != this->iomap.omap.end()) - { - if (m.second == "1") - { - port->second.second = 1; - } - else if (m.second == "0") - { - port->second.second = 0; - } - data[port->second.first+2] = port->second.second; - } - } - SendDeviceMsg(data); - } - } - else if (cmd->second == "pluse") - { - if (this->device == "5serial") - { - std::vector data; - data.resize(8, 1); - data.insert(data.begin(), {this->device_id, 0x51, 1}); - for (const auto &port : this->iomap.omap) - { - data[port.second.first+2] = port.second.second; - } - - for (auto &m : msg) - { - auto port = this->iomap.omap.find(m.first); - if (port != this->iomap.omap.end()) - { - if (m.second == "1") - { - port->second.second = 1; - } - else if (m.second == "0") - { - port->second.second = 0; - } - data[port->second.first+2] = port->second.second; - } - } - SendDeviceMsg(data); - - std::this_thread::sleep_for(std::chrono::seconds(1)); - for (auto &m : msg) - { - auto port = this->iomap.omap.find(m.first); - if (port != this->iomap.omap.end()) - { - if (m.second == "1") - { - port->second.second = 0; - } - else if (m.second == "0") - { - port->second.second = 1; - } - data[port->second.first+2] = port->second.second; - } - } - SendDeviceMsg(data); - } - } - else if (cmd->second == "read") - { - if (this->device == "5serial") - { - std::vector data; - data.insert(data.end(), {this->device_id, 0x52, 1}); - data.insert(data.end(), 1); - SendDeviceMsg(data); - } - } - } +static int gpio_export(int n) +{ + int fd = open("/sys/class/gpio/export", O_WRONLY); + if (fd < 0) return -1; + char buf[16]; int len = snprintf(buf, sizeof(buf), "%d", n); + write(fd, buf, len); + close(fd); + usleep(100000); + return 0; } -int MsgHandler::ParseDeviceMsg(std::vector& data, InternalSystem::IoCtrlRsp& rsp) +static int gpio_set_dir(int n, const char* dir) { - if (data[0] == this->device_id) - { - switch(data[1]) - { - case 0x50: - rsp.msg()["open"] = std::to_string(data[3]); - break; - case 0x51: - rsp.msg()["write"] = std::to_string(data[3]); - break; - case 0x52: - rsp.msg()["read"] = "0"; - for (auto &p : this->iomap.imap) - { - // if (p.second.second != data[p.second.first+2]) - // { - p.second.second = data[p.second.first+2]; - rsp.msg()[p.first] = std::to_string(p.second.second); - // } - } - break; - } - return 1; - } + char path[64]; snprintf(path, sizeof(path), "/sys/class/gpio/gpio%d/direction", n); + int fd = open(path, O_WRONLY); + if (fd < 0) return -1; + write(fd, dir, strlen(dir)); + close(fd); return 0; } -int MsgHandler::HandleDeviceMsg(InternalSystem::IoCtrlRsp& rsp) +static int gpio_write(int n, int val) { - std::vector m_RecvData; - - if(RecvDeviceMsg(m_RecvData, 100) > 0) - { - for (int num : m_RecvData) - { - std::cout << std::hex << std::setw(2) << std::setfill('0') - << num << " "; - } - std::cout << std::endl; - return(ParseDeviceMsg(m_RecvData, rsp)); - } + char path[64]; snprintf(path, sizeof(path), "/sys/class/gpio/gpio%d/value", n); + int fd = open(path, O_WRONLY); + if (fd < 0) return -1; + char b = val ? '1' : '0'; + write(fd, &b, 1); + close(fd); return 0; } + bool MsgHandler::OpenPort(const std::string& port, const std::string& baudrate) { + std::cout << "[debug] OpenPort device=" << this->device + << " omap.size=" << this->iomap.omap.size() << std::endl; + + if (this->device == "gpio") + { + // ★ 前拦车器两个 GPIO:先显式 export + direction + 写 0(不依赖 map 顺序) + gpio_export(48); + gpio_set_dir(48, "out"); + gpio_write(48, 0); + + gpio_export(49); + gpio_set_dir(49, "out"); + gpio_write(49, 0); + + return true; + } return true; } @@ -270,3 +155,62 @@ int MsgHandler::RecvDeviceMsg(std::vector& data, int timeoutMs) return RecvMsg(data.data(), data.size(), timeoutMs); } +void MsgHandler::HandleBarCommand(const WeighingSystem::BarCommandUpdate& cmd) +{ + if (this->device != "gpio") return; + + // 前拦车器升杆 + if (cmd.FrontBarEnable() && cmd.FrontBarSignalUp()) + { + auto up = this->iomap.omap.find("frontbarrup"); + if (up != this->iomap.omap.end()) + { + // ① 抬杆前:先 init 48 + 49 全部拉低 + std::cout << "[GPIO] >>> init 48+49 before raise" << std::endl; + this->InitFrontBarGpioPair(); + + // ② 抬杆:48 置 1 + int n = up->second.first; + std::cout << "[GPIO] " << n << " <- 1 (raise start)" << std::endl; + int rc = gpio_write(n, 1); + std::cout << "[GPIO] " << n << " <- 1 rc=" << rc << std::endl; + up->second.second = 1; + + // ③ 保持 10 秒 + std::cout << "[GPIO] hold raise 10s..." << std::endl; + std::this_thread::sleep_for(std::chrono::seconds(10)); + + // ④ 抬杆后:再 init 一次,强制两脚回 0 + std::cout << "[GPIO] >>> init 48+49 after 10s (reset to 0)" << std::endl; + this->InitFrontBarGpioPair(); + up->second.second = 0; + std::cout << "[GPIO] reset done" << std::endl; + } + } +} + + +void MsgHandler::InitFrontBarGpioPair() +{ + // 强制重新 init frontbarrup (48) 和 frontbardown (49) + auto up = iomap.omap.find("frontbarrup"); + auto dn = iomap.omap.find("frontbardown"); + + if (up != iomap.omap.end()) + { + int n = up->second.first; // 48 + gpio_export(n); + gpio_set_dir(n, "out"); + gpio_write(n, 0); + std::cout << "[GPIO] " << n << " init <- 0" << std::endl; + } + + if (dn != iomap.omap.end()) + { + int n = dn->second.first; // 49 + gpio_export(n); + gpio_set_dir(n, "out"); + gpio_write(n, 0); + std::cout << "[GPIO] " << n << " init <- 0" << std::endl; + } +} \ No newline at end of file diff --git a/ioctrl/MsgHandler.hpp b/ioctrl/MsgHandler.hpp index 10add06..a3fecc0 100644 --- a/ioctrl/MsgHandler.hpp +++ b/ioctrl/MsgHandler.hpp @@ -6,7 +6,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" struct iomap_t { //name, (port, value) @@ -25,9 +25,6 @@ public: MsgHandler(); ~MsgHandler() = default; - void HandleDdsMsg(const std::map& msg); - int HandleDeviceMsg(InternalSystem::IoCtrlRsp& rsp); - virtual bool OpenPort(const std::string& port, const std::string& baudrate); virtual int SendDeviceMsg(std::vector& data); virtual int RecvDeviceMsg(std::vector& data, int timeoutMs); @@ -37,9 +34,15 @@ public: return fd != -1; } void ClosePort(); + + void HandleBarCommand(const WeighingSystem::BarCommandUpdate& cmd); + // 前拦车器两个 GPIO 显式 init(export + direction + 写 0) + // 失败也不抛异常,保证调用点可以无脑连续调 + void InitFrontBarGpioPair(); + private: - int ParseDeviceMsg(std::vector& data, InternalSystem::IoCtrlRsp& rsp); + }; #endif \ No newline at end of file diff --git a/ioctrl/Publisher.cxx b/ioctrl/Publisher.cxx deleted file mode 100644 index f62b332..0000000 --- a/ioctrl/Publisher.cxx +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/*! - * @file Publisher.cxx - * This file contains the implementation of the publisher functions. - * - * This file was generated by the tool fastddsgen. - */ - -#include "Publisher.hpp" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "SystemPubSubTypes.hpp" - -#include "msg.hpp" -#include "MsgHandler.hpp" - -using namespace eprosima::fastdds::dds; - -PublisherApp::PublisherApp( - const int& domain_id) - : factory_(nullptr) - , participant_(nullptr) - , publisher_(nullptr) - , topic_(nullptr) - , writer_(nullptr) - , type_(new InternalSystem::IoCtrlRspPubSubType()) - , matched_(0) - , samples_sent_(0) - , stop_(false) -{ - // - - // Create the participant - DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT; - pqos.name("IoCtrl_pub_participant"); - pqos.wire_protocol().builtin.discovery_config.leaseDuration = Duration_t(60, 0); - pqos.wire_protocol().builtin.discovery_config.leaseDuration_announcementperiod = Duration_t(30, 0); - factory_ = DomainParticipantFactory::get_shared_instance(); - participant_ = factory_->create_participant(domain_id, pqos, nullptr, StatusMask::none()); - if (participant_ == nullptr) - { - throw std::runtime_error("InternalSystem::IoCtrlRsp Participant initialization failed"); - } - - // Register the type - type_.register_type(participant_); - - // Create the publisher - PublisherQos pub_qos = PUBLISHER_QOS_DEFAULT; - participant_->get_default_publisher_qos(pub_qos); - publisher_ = participant_->create_publisher(pub_qos, nullptr, StatusMask::none()); - if (publisher_ == nullptr) - { - throw std::runtime_error("InternalSystem::IoCtrlRsp Publisher initialization failed"); - } - - // Create the topic - TopicQos topic_qos = TOPIC_QOS_DEFAULT; - participant_->get_default_topic_qos(topic_qos); - topic_ = participant_->create_topic("InternalSystem::IoCtrlRspTopic", type_.get_type_name(), topic_qos); - if (topic_ == nullptr) - { - throw std::runtime_error("InternalSystem::IoCtrlRsp Topic initialization failed"); - } - - // Create the data writer - DataWriterQos writer_qos = DATAWRITER_QOS_DEFAULT; - publisher_->get_default_datawriter_qos(writer_qos); - writer_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; - writer_qos.durability().kind = DurabilityQosPolicyKind::TRANSIENT_LOCAL_DURABILITY_QOS; - writer_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; - writer_ = publisher_->create_datawriter(topic_, writer_qos, this, StatusMask::all()); - if (writer_ == nullptr) - { - throw std::runtime_error("InternalSystem::IoCtrlRsp DataWriter initialization failed"); - } -} - -PublisherApp::~PublisherApp() -{ - if (nullptr != participant_) - { - // Delete DDS entities contained within the DomainParticipant - participant_->delete_contained_entities(); - - // Delete DomainParticipant - factory_->delete_participant(participant_); - } -} - -void PublisherApp::on_publication_matched( - DataWriter* writer, - const PublicationMatchedStatus& info) -{ - if (info.current_count_change == 1) - { - { - std::lock_guard lock(mutex_); - matched_ = info.current_count; - } - std::cout << writer->get_topic()->get_name() << " Publisher matched." << std::endl; - cv_.notify_one(); - } - else if (info.current_count_change == -1) - { - { - std::lock_guard lock(mutex_); - matched_ = info.current_count; - } - std::cout << writer->get_topic()->get_name() << " Publisher unmatched." << std::endl; - } - else - { - std::cout << info.current_count_change - << " is not a valid value for PublicationMatchedStatus current count change" << std::endl; - } -} - -void PublisherApp::run(std::shared_ptr handler) -{ - InternalSystem::IoCtrlRsp rsp; - - while (!is_stopped()) - { - if(handler->isOpen() == true) - { - if(handler->HandleDeviceMsg(rsp)) - { - writer_->write(&rsp); - rsp.msg().clear(); - } - } - - // Wait for period or stop event - std::unique_lock period_lock(mutex_); - cv_.wait_for(period_lock, std::chrono::milliseconds(period_ms_), [this]() - { - return is_stopped(); - }); - } -} - - -bool PublisherApp::publish() -{ - bool ret = false; - // Wait for the data endpoints discovery - std::unique_lock matched_lock(mutex_); - cv_.wait(matched_lock, [&]() - { - // at least one has been discovered - return ((matched_ > 0) || is_stopped()); - }); - - if (!is_stopped()) - { - /* Initialize your structure here */ - InternalSystem::IoCtrlRsp sample_; - ret = (RETCODE_OK == writer_->write(&sample_)); - } - return ret; -} - -bool PublisherApp::is_stopped() -{ - return stop_.load(); -} - -void PublisherApp::stop() -{ - stop_.store(true); - cv_.notify_one(); -} \ No newline at end of file diff --git a/ioctrl/Publisher.hpp b/ioctrl/Publisher.hpp deleted file mode 100644 index 3b86061..0000000 --- a/ioctrl/Publisher.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/*! - * @file PublisherApp.hpp - * This header file contains the declaration of the publisher functions. - * - * This file was generated by the tool fastddsgen. - */ - -#ifndef FAST_DDS_GENERATED__PUBLISHERAPP_HPP -#define FAST_DDS_GENERATED__PUBLISHERAPP_HPP - -#include - -#include -#include -#include -#include - -#include "MsgHandler.hpp" - -class PublisherApp : public eprosima::fastdds::dds::DataWriterListener -{ -public: - - PublisherApp( - const int& domain_id); - - ~PublisherApp(); - - //! Publisher matched method - void on_publication_matched( - eprosima::fastdds::dds::DataWriter* writer, - const eprosima::fastdds::dds::PublicationMatchedStatus& info) override; - - //! Run publisher - void run(std::shared_ptr handler); - - //! Trigger the end of execution - void stop(); - -private: - - //! Return the current state of execution - bool is_stopped(); - - //! Publish a sample - bool publish(); - - std::shared_ptr factory_; - eprosima::fastdds::dds::DomainParticipant* participant_; - eprosima::fastdds::dds::Publisher* publisher_; - eprosima::fastdds::dds::Topic* topic_; - eprosima::fastdds::dds::DataWriter* writer_; - eprosima::fastdds::dds::TypeSupport type_; - std::condition_variable cv_; - int32_t matched_; - std::mutex mutex_; - const uint32_t period_ms_ = 100; // in ms - uint16_t samples_sent_; - std::atomic stop_; -}; - -#endif // FAST_DDS_GENERATED__PUBLISHERAPP_HPP \ No newline at end of file diff --git a/ioctrl/Subscriber.cxx b/ioctrl/Subscriber.cxx index aa8dc53..b6e15f2 100644 --- a/ioctrl/Subscriber.cxx +++ b/ioctrl/Subscriber.cxx @@ -32,7 +32,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" @@ -43,9 +43,9 @@ SubscriberApp::SubscriberApp( : factory_(nullptr) , participant_(nullptr) , subscriber_(nullptr) - , topic_(nullptr) - , reader_(nullptr) - , type_(new InternalSystem::IoCtrlReqPubSubType()) + , bar_topic_(nullptr) + , bar_reader_(nullptr) + , bar_type_(new WeighingSystem::BarCommandUpdatePubSubType()) , samples_received_(0) , stop_(false) { @@ -61,37 +61,38 @@ SubscriberApp::SubscriberApp( throw std::runtime_error("InternalSystem::IoCtrlReq Participant initialization failed"); } - // Register the type - type_.register_type(participant_); - - // Create the subscriber - SubscriberQos sub_qos = SUBSCRIBER_QOS_DEFAULT; - participant_->get_default_subscriber_qos(sub_qos); - subscriber_ = participant_->create_subscriber(sub_qos, nullptr, StatusMask::none()); - if (subscriber_ == nullptr) - { - throw std::runtime_error("InternalSystem::IoCtrlReq Subscriber initialization failed"); - } - - // Create the topic - TopicQos topic_qos = TOPIC_QOS_DEFAULT; - participant_->get_default_topic_qos(topic_qos); - topic_ = participant_->create_topic("InternalSystem::IoCtrlReqTopic", type_.get_type_name(), topic_qos); - if (topic_ == nullptr) + // Create the subscriber + SubscriberQos sub_qos = SUBSCRIBER_QOS_DEFAULT; + participant_->get_default_subscriber_qos(sub_qos); + subscriber_ = participant_->create_subscriber(sub_qos, nullptr, StatusMask::none()); ← 新增 + if (subscriber_ == nullptr) + { + throw std::runtime_error("IoCtrl Subscriber initialization failed"); + } + + // Register the type + bar_type_.register_type(participant_); + + // 创建 BarCommandUpdate Topic + TopicQos bar_topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(bar_topic_qos); + bar_topic_ = participant_->create_topic("BarCommandUpdate", bar_type_.get_type_name(), bar_topic_qos); + if (bar_topic_ == nullptr) { - throw std::runtime_error("InternalSystem::IoCtrlReq Topic initialization failed"); + throw std::runtime_error("BarCommandUpdate Topic initialization failed"); } - // Create the reader - DataReaderQos reader_qos = DATAREADER_QOS_DEFAULT; - subscriber_->get_default_datareader_qos(reader_qos); - reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; - reader_qos.durability().kind = DurabilityQosPolicyKind::TRANSIENT_LOCAL_DURABILITY_QOS; - reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; - reader_ = subscriber_->create_datareader(topic_, reader_qos, this, StatusMask::all()); - if (reader_ == nullptr) + // 创建 BarCommandUpdate Reader + DataReaderQos bar_reader_qos = DATAREADER_QOS_DEFAULT; + subscriber_->get_default_datareader_qos(bar_reader_qos); // ← 现在 subscriber_ 已创建 + bar_reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + bar_reader_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + bar_reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + bar_reader_qos.history().depth = 1; + bar_reader_ = subscriber_->create_datareader(bar_topic_, bar_reader_qos, this, StatusMask::all()); + if (bar_reader_ == nullptr) { - throw std::runtime_error("InternalSystem::IoCtrlReq DataReader initialization failed"); + throw std::runtime_error("BarCommandUpdate DataReader initialization failed"); } } @@ -133,18 +134,16 @@ void SubscriberApp::on_data_available( std::string topic_name = reader->get_topicdescription()->get_name(); std::cout << topic_name << std::endl; - if (topic_name == "InternalSystem::IoCtrlReqTopic") + if (topic_name == "BarCommandUpdate") { - InternalSystem::IoCtrlReq sample_; + WeighingSystem::BarCommandUpdate sample_; while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) { if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) { - { - std::unique_lock lock(MsgData::queue_cv_mtx_); - MsgData::IoCtrlReq_queue_.push(std::move(sample_)); - lock.unlock(); - } + std::unique_lock lock(MsgData::queue_cv_mtx_); + MsgData::BarCommandUpdate_queue_.push(std::move(sample_)); + lock.unlock(); } } } @@ -157,13 +156,14 @@ void SubscriberApp::run(std::shared_ptr handler) std::unique_lock lock(MsgData::queue_cv_mtx_, std::try_to_lock); if (lock.owns_lock()) { - if(!MsgData::IoCtrlReq_queue_.empty()) - { - InternalSystem::IoCtrlReq req = std::move(MsgData::IoCtrlReq_queue_.front()); - MsgData::IoCtrlReq_queue_.pop(); - lock.unlock(); - handler->HandleDdsMsg(req.msg()); - } + //BarCommandUpdate 分支 + if(!MsgData::BarCommandUpdate_queue_.empty()) + { + WeighingSystem::BarCommandUpdate cmd = std::move(MsgData::BarCommandUpdate_queue_.front()); + MsgData::BarCommandUpdate_queue_.pop(); + lock.unlock(); + handler->HandleBarCommand(cmd); + } else { lock.unlock(); diff --git a/ioctrl/Subscriber.hpp b/ioctrl/Subscriber.hpp index 17ad220..e0108dc 100644 --- a/ioctrl/Subscriber.hpp +++ b/ioctrl/Subscriber.hpp @@ -29,8 +29,9 @@ #include #include -#include "System.hpp" + #include "MsgHandler.hpp" +#include "WeighingDDSType.hpp" class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener { @@ -64,9 +65,11 @@ private: std::shared_ptr factory_; eprosima::fastdds::dds::DomainParticipant* participant_; eprosima::fastdds::dds::Subscriber* subscriber_; - eprosima::fastdds::dds::Topic* topic_; - eprosima::fastdds::dds::DataReader* reader_; - eprosima::fastdds::dds::TypeSupport type_; + + eprosima::fastdds::dds::Topic* bar_topic_; + eprosima::fastdds::dds::DataReader* bar_reader_; + eprosima::fastdds::dds::TypeSupport bar_type_; + uint16_t samples_received_; std::atomic stop_; uint32_t period_ms_ = 100; // in ms diff --git a/ioctrl/main.cxx b/ioctrl/main.cxx index 50d6db5..fc43f38 100644 --- a/ioctrl/main.cxx +++ b/ioctrl/main.cxx @@ -28,15 +28,19 @@ #include #include #include +#include // ← 加这行:open / close / write / read / usleep +#include // ← 加这行:O_WRONLY #include #include "Subscriber.hpp" -#include "Publisher.hpp" #include "CanMsgHandler.hpp" #include "msg.hpp" #include "json.hpp" +#include +#include "WeighingDDSType.hpp" + using eprosima::fastdds::dds::Log; using json = nlohmann::json; @@ -67,7 +71,7 @@ std::string parse_signal( } } -std::queue MsgData::IoCtrlReq_queue_; +std::queue MsgData::BarCommandUpdate_queue_; std::mutex MsgData::queue_cv_mtx_; std::filesystem::path getExeDir() @@ -82,7 +86,6 @@ int main(int argc, char** argv) auto ret = EXIT_SUCCESS; json config; std::shared_ptr sub; - std::shared_ptr pub; std::shared_ptr dev; int domain_id = 0; @@ -92,6 +95,9 @@ int main(int argc, char** argv) const char* device = "5serial"; int device_id = 0; + bool test_front_bar = false; + std::thread test_thread; + auto exeDir = getExeDir(); auto configPath = exeDir / "config.json"; std::ifstream file(configPath); @@ -105,6 +111,10 @@ int main(int argc, char** argv) { domain_id = atoi(argv[++i]); } + else if (strcmp(argv[i], "--test_front_bar") == 0) + { + test_front_bar = true; + } else if (strcmp(argv[i], "--interface") == 0 && i + 1 < argc) { interface = argv[++i]; @@ -140,7 +150,8 @@ int main(int argc, char** argv) << " --port Set port name (e.g., can0)\n" << " --device Set device name (e.g., 5serial)\n" << " --version Show software Version\n" - << " --help Show this help message\n"; + << " --help Show this help message\n" + << " --test_front_bar Test: raise front bar after 3s, lower after 5s\n"; return EXIT_SUCCESS; } else @@ -154,22 +165,76 @@ int main(int argc, char** argv) << " --port Set port name (e.g., can0)\n" << " --device Set device name (e.g., 5serial)\n" << " --version Show software Version\n" - << " --help Show this help message\n"; + << " --help Show this help message\n" + << " --test_front_bar Test: raise front bar after 3s, lower after 5s\n"; return EXIT_FAILURE; } } sub = std::make_shared(domain_id); - pub = std::make_shared(domain_id); dev = std::make_shared(); - dev->OpenPort(port, baudrate); + // ★ 先设 device / device_id / iomap dev->device = device; dev->device_id = device_id; - dev->iomap.imap = config["ioctrl"]["iomap"]["in"].get>>(); - dev->iomap.omap = config["ioctrl"]["iomap"]["out"].get>>(); + dev->iomap.imap = config["ioctrl"]["iomap"]["in"] + .get>>(); + dev->iomap.omap = config["ioctrl"]["iomap"]["out"] + .get>>(); + // ★ 最后才 OpenPort(这时 this->device == "gpio" 才生效) + dev->OpenPort(port, baudrate); + + // ★ 当 device == "gpio" 时,强制 init 48/49(因为 CanMsgHandler::OpenPort 不会做) + if (dev->device == "gpio") + { + + auto write_gpio = [](int n, int v) { + char path[64]; + snprintf(path, sizeof(path), "/sys/class/gpio/gpio%d/value", n); + int fd = open(path, O_WRONLY); + if (fd >= 0) { write(fd, v ? "1" : "0", 1); close(fd); } + }; + auto export_gpio = [](int n) { + int fd = open("/sys/class/gpio/export", O_WRONLY); + if (fd >= 0) { char b[8]; int l = snprintf(b, sizeof(b), "%d", n); + write(fd, b, l); close(fd); usleep(100000); } + }; + auto dir_gpio = [](int n, const char* d) { + char path[64]; + snprintf(path, sizeof(path), "/sys/class/gpio/gpio%d/direction", n); + int fd = open(path, O_WRONLY); + if (fd >= 0) { write(fd, d, strlen(d)); close(fd); } + }; + export_gpio(48); dir_gpio(48, "out"); write_gpio(48, 0); + export_gpio(49); dir_gpio(49, "out"); write_gpio(49, 0); + } + + + + if (test_front_bar) +{ + test_thread = std::thread([dev]() + { + std::cout << "[test] sleep 3s, then raise front bar..." << std::endl; + std::this_thread::sleep_for(std::chrono::seconds(3)); + + WeighingSystem::BarCommandUpdate cmd_up; + cmd_up.FrontBarEnable() = 1; + cmd_up.FrontBarSignalUp() = 1; + cmd_up.FrontBarSignalDown()= 0; + cmd_up.BackBarEnable() = 0; + dev->HandleBarCommand(cmd_up); + + std::cout << "[test] raise front bar done." << std::endl; + // 5 秒后降杆的代码整段删掉 + }); +} + + + + + std::thread sub_thread(&SubscriberApp::run, sub, dev); - std::thread pub_thread(&PublisherApp::run, pub, dev); std::cout << "Program is running. Please press Ctrl+C to stop at any time." << std::endl; @@ -177,7 +242,8 @@ int main(int argc, char** argv) { std::cout << "\n" << parse_signal(signum) << " received, stopping " << argv[1] << " execution." << std::endl; - pub->stop(); + + sub->stop(); // ← 新增 }; signal(SIGINT, signal_handler); @@ -187,7 +253,12 @@ int main(int argc, char** argv) signal(SIGHUP, signal_handler); #endif // _WIN32 - pub_thread.join(); + sub_thread.join(); + + if (test_front_bar && test_thread.joinable()) + { + test_thread.detach(); // 测试线程自己跑完,主线程不等 + } Log::Reset(); return ret; diff --git a/ioctrl/msg.hpp b/ioctrl/msg.hpp index 49f6bc0..724757a 100644 --- a/ioctrl/msg.hpp +++ b/ioctrl/msg.hpp @@ -3,11 +3,11 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class MsgData { public: - static std::queue IoCtrlReq_queue_; + static std::queue BarCommandUpdate_queue_; // 新增 static std::mutex queue_cv_mtx_; }; diff --git a/led/BX6K1YYProtocol.cxx b/led/BX6K1YYProtocol.cxx new file mode 100644 index 0000000..1df59c6 --- /dev/null +++ b/led/BX6K1YYProtocol.cxx @@ -0,0 +1,209 @@ +// led/BX6K1YYProtocol.cxx +#include "BX6K1YYProtocol.hpp" + +#include + +namespace led { + +namespace { + +inline void appendLe16(std::vector& v, uint16_t value) { + v.push_back(static_cast(value & 0xff)); + v.push_back(static_cast((value >> 8) & 0xff)); +} + +inline void appendLe32(std::vector& v, uint32_t value) { + v.push_back(static_cast(value & 0xff)); + v.push_back(static_cast((value >> 8) & 0xff)); + v.push_back(static_cast((value >> 16) & 0xff)); + v.push_back(static_cast((value >> 24) & 0xff)); +} + +std::vector escape(const std::vector& in) { + std::vector out; + out.reserve(in.size()); + for (uint8_t b : in) { + switch (b) { + case 0xA5: out.push_back(0xA6); out.push_back(0x02); break; + case 0xA6: out.push_back(0xA6); out.push_back(0x01); break; + case 0x5A: out.push_back(0x5B); out.push_back(0x02); break; + case 0x5B: out.push_back(0x5B); out.push_back(0x01); break; + default: out.push_back(b); break; + } + } + return out; +} + +} // anonymous namespace + +uint16_t crc16(const std::vector& data) { + uint16_t crc = 0; + for (uint8_t b : data) { + crc ^= b; + for (int i = 0; i < 8; ++i) { + crc = (crc & 1u) ? static_cast((crc >> 1) ^ 0xA001u) + : static_cast(crc >> 1); + } + } + return crc; +} + +std::vector makeFrame(const std::vector& payload) { + std::vector phy1; + appendLe16(phy1, 0xFFFE); // 目标:广播/任意控制器 + appendLe16(phy1, 0x8000); // 源:PC + phy1.push_back(0x00); // barcode 选项:关 + phy1.push_back(0x00); + phy1.push_back(0x00); + phy1.push_back(0x00); // CRC16 模式 + phy1.push_back(0x00); // 显示模式(动态区域文本) + phy1.push_back(kDeviceType); + phy1.push_back(kProtocolVersion); + appendLe16(phy1, static_cast(payload.size())); + phy1.insert(phy1.end(), payload.begin(), payload.end()); + + uint16_t cs = crc16(phy1); + phy1.push_back(static_cast(cs & 0xff)); + phy1.push_back(static_cast((cs >> 8) & 0xff)); + + std::vector frame; + frame.reserve(9 + phy1.size() * 2); + frame.insert(frame.end(), 8, 0xA5); // 8 字节头 + auto esc = escape(phy1); + frame.insert(frame.end(), esc.begin(), esc.end()); + frame.push_back(0x5A); // 1 字节尾 + return frame; +} + +std::vector buildScreenParameterQueryFrame() { + return makeFrame(std::vector{0xA2, 0x0A, 0x01, 0x00, 0x00}); +} + +// 27 字节 AreaHeader + 文本内容(与 Windows 版 buildArea 等价) +static std::vector buildArea(const std::string& text, + int screenWidth, + int areaY, int areaHeight, + int areaId, + bool expireWhenNotUpdated, + int timeoutSeconds) { + std::vector area; + area.reserve(27 + text.size()); + area.push_back(0x00); // AreaType: 字符 + appendLe16(area, 0x8000); // AreaX: 0(像素单位) + appendLe16(area, static_cast(areaY)); + appendLe16(area, static_cast(0x8000 | screenWidth)); + appendLe16(area, static_cast(areaHeight)); + area.push_back(static_cast(areaId)); + area.push_back(0x00); // 行间距 + area.push_back(expireWhenNotUpdated ? 0x02 : 0x00); // RunMode + int t = (timeoutSeconds < 0) ? 0 : (timeoutSeconds > 0xffff ? 0xffff : timeoutSeconds); + appendLe16(area, static_cast(t)); + area.push_back(0x00); // SoundMode + area.push_back(0x00); area.push_back(0x00); // 保留 + area.push_back(0x02); // 多行 + area.push_back(0x01); // 手动换行 + area.push_back(0x01); // 静态显示 + area.push_back(0x00); // 退出方式 + area.push_back(0x02); // 速度 + area.push_back(0x0A); // 停留(0.5s 单位) + appendLe32(area, static_cast(text.size())); + area.insert(area.end(), text.begin(), text.end()); + return area; +} + +std::vector buildDynamicTextFrame(const std::string& encodedText, + int screenWidth, int lineHeight, + int areaId, + bool expireWhenNotUpdated, + int timeoutSeconds) { + if (screenWidth <= 0 || screenWidth > 0x7fff) return {}; + if (lineHeight <= 0) return {}; + + const std::vector area = buildArea(encodedText, screenWidth, + /*areaY=*/0, lineHeight, areaId, + expireWhenNotUpdated, timeoutSeconds); + if (area.empty() || area.size() > 0xffff) return {}; + + std::vector payload; + payload.push_back(0xA3); + payload.push_back(0x06); // 动态区域下发 + payload.push_back(0x01); // 需要 ACK + payload.push_back(0x00); // ProcessMode: 替换 + payload.push_back(0x00); // 保留 + payload.push_back(0x00); // DeleteAreaNum: 0 + payload.push_back(0x01); // AreaNum: 1 + appendLe16(payload, static_cast(area.size())); + payload.insert(payload.end(), area.begin(), area.end()); + return makeFrame(payload); +} + +std::vector buildDeleteDynamicAreaFrame(int areaId) { + if (areaId < 0 || areaId > 0xff) return {}; + std::vector payload = { + 0xA3, 0x07, 0x01, 0x00, 0x00, 0x01, + static_cast(areaId) + }; + return makeFrame(payload); +} + +bool decodeFrame(const std::vector& frame, + std::vector& outPhy1, + std::string& error) { + outPhy1.clear(); + if (frame.size() < 8 + 14 + 2 + 1 || frame.back() != 0x5A) { + error = "frame too short or missing tail"; + return false; + } + for (size_t i = 0; i < 8; ++i) { + if (frame[i] != 0xA5) { error = "header invalid"; return false; } + } + std::vector body(frame.begin() + 8, frame.end() - 1); + for (size_t i = 0; i < body.size(); ++i) { + uint8_t b = body[i]; + if (b == 0xA6 || b == 0x5B) { + if (++i >= body.size()) { error = "truncated escape"; return false; } + uint8_t n = body[i]; + if (b == 0xA6) { + if (n == 0x02) outPhy1.push_back(0xA5); + else if (n == 0x01) outPhy1.push_back(0xA6); + else { error = "bad A6 escape"; return false; } + } else { + if (n == 0x02) outPhy1.push_back(0x5A); + else if (n == 0x01) outPhy1.push_back(0x5B); + else { error = "bad 5B escape"; return false; } + } + } else { + outPhy1.push_back(b); + } + } + if (outPhy1.size() < 16) { error = "phy1 too short"; return false; } + + std::vector withoutCrc(outPhy1.begin(), outPhy1.end() - 2); + uint16_t expected = crc16(withoutCrc); + uint16_t actual = static_cast(outPhy1[outPhy1.size() - 2]) | + static_cast(outPhy1[outPhy1.size() - 1] << 8); + if (expected != actual) { error = "crc16 mismatch"; return false; } + + outPhy1.pop_back(); outPhy1.pop_back(); + return true; +} + +bool parseScreenDimensions(const std::vector& phy1, + int& outWidth, int& outHeight, + std::string& error) { + if (phy1.size() < 14 + 13 || phy1[10] != kDeviceType || phy1[11] != kProtocolVersion) { + error = "response header invalid"; + return false; + } + std::vector payload(phy1.begin() + 14, phy1.end()); + if (payload.size() < 13 || payload[0] != 0xA2 || payload[1] != 0x0A || payload[2] != 0x00) { + error = "response payload invalid"; + return false; + } + outWidth = static_cast(payload[9]) | (static_cast(payload[10]) << 8); + outHeight = static_cast(payload[11]) | (static_cast(payload[12]) << 8); + if (outWidth == 0 || outHeight == 0) { error = "invalid dimensions"; return false; } + return true; +} + +} // namespace led diff --git a/led/BX6K1YYProtocol.hpp b/led/BX6K1YYProtocol.hpp new file mode 100644 index 0000000..26235ba --- /dev/null +++ b/led/BX6K1YYProtocol.hpp @@ -0,0 +1,48 @@ +// led/BX6K1YYProtocol.hpp +// BX-6K1-YY 协议帧构造/解析(移植自 PuAnLED/Onbon/BX6K1YY/BX6K1YYProtocol.cpp,去 Qt 依赖) +#ifndef LED_BX6K1YY_PROTOCOL_HPP +#define LED_BX6K1YY_PROTOCOL_HPP + +#include +#include +#include + +namespace led { + +// 协议常量(来自 BX-6K1-YY 协议文档与 Windows 版实现) +constexpr uint8_t kDeviceType = 0x64; // BX-6K1-YY +constexpr uint8_t kProtocolVersion = 0x02; +constexpr uint16_t kPortDefault = 5005; // BX-6K1-YY 默认 TCP 端口 + +// 屏幕参数查询(payload = A2 0A 01 00 00) +std::vector buildScreenParameterQueryFrame(); + +// 构造下发文本的动态区域帧(payload: A3 06 01 00 00 01 ) +std::vector buildDynamicTextFrame(const std::string& encodedText, + int screenWidth, int lineHeight, + int areaId, + bool expireWhenNotUpdated, + int timeoutSeconds); + +// 删除指定动态区域(payload: A3 07 01 00 00 01 ) +std::vector buildDeleteDynamicAreaFrame(int areaId); + +// Modbus CRC-16(多项式 0xA001,低字节在前) +uint16_t crc16(const std::vector& data); + +// 把 payload 包成完整帧:8×0xA5 + escape(phy1) + 0x5A +std::vector makeFrame(const std::vector& payload); + +// 解一帧:校验头/尾、转义还原、CRC16,解出的 PHY1 写到 outPhy1(不含尾部 CRC) +bool decodeFrame(const std::vector& frame, + std::vector& outPhy1, + std::string& error); + +// 从 PHY1 取出屏幕宽高(payload[9..10]=width, payload[11..12]=height) +bool parseScreenDimensions(const std::vector& phy1, + int& outWidth, int& outHeight, + std::string& error); + +} // namespace led + +#endif diff --git a/led/Bx6k1YyLedClient.cxx b/led/Bx6k1YyLedClient.cxx new file mode 100644 index 0000000..2dc16d6 --- /dev/null +++ b/led/Bx6k1YyLedClient.cxx @@ -0,0 +1,214 @@ +// led/Bx6k1YyLedClient.cxx +#include "Bx6k1YyLedClient.hpp" + +#include "BX6K1YYProtocol.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace led { + +namespace { + +bool encodeUtf8(const std::string& in, const std::string& encoding, std::string& bytes) { + if (encoding.empty() || encoding == "UTF-8" || encoding == "utf-8") { + bytes = in; + return true; + } + iconv_t cd = iconv_open(encoding.c_str(), "UTF-8//IGNORE"); + if (cd == reinterpret_cast(-1)) return false; + + size_t inLeft = in.size(); + size_t outLeft = in.size() * 4 + 16; + std::vector out(outLeft); + char* inBuf = const_cast(in.data()); + char* outBuf = out.data(); + + size_t res = iconv(cd, &inBuf, &inLeft, &outBuf, &outLeft); + iconv_close(cd); + if (res == static_cast(-1)) return false; + bytes.assign(out.data(), out.size() - outLeft); + return true; +} + +bool setNonBlocking(int fd, bool nb) { + int flags = fcntl(fd, F_GETFL, 0); + if (flags < 0) return false; + return fcntl(fd, F_SETFL, nb ? (flags | O_NONBLOCK) : (flags & ~O_NONBLOCK)) == 0; +} + +bool connectWithTimeout(int fd, const sockaddr_in& addr, int timeoutMs) { + int rc = ::connect(fd, reinterpret_cast(&addr), sizeof(addr)); + if (rc == 0) return true; + if (errno != EINPROGRESS) return false; + pollfd pfd{fd, POLLOUT, 0}; + if (::poll(&pfd, 1, timeoutMs) <= 0) return false; + int err = 0; socklen_t len = sizeof(err); + if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &len) < 0) return false; + return err == 0; +} + +bool sendAll(int fd, const uint8_t* data, size_t len, int timeoutMs) { + size_t sent = 0; + while (sent < len) { + pollfd pfd{fd, POLLOUT, 0}; + if (::poll(&pfd, 1, timeoutMs) <= 0) return false; + ssize_t n = ::send(fd, data + sent, len - sent, MSG_NOSIGNAL); + if (n <= 0) return false; + sent += static_cast(n); + } + return true; +} + +// 收到至少一个 0x5A 字节或超时 +bool recvUntilTail(int fd, std::vector& buf, int timeoutMs) { + uint8_t chunk[1024]; + auto deadline = std::chrono::steady_clock::now() + std::chrono::milliseconds(timeoutMs); + while (true) { + auto now = std::chrono::steady_clock::now(); + if (now >= deadline) return !buf.empty(); + int wait = static_cast( + std::chrono::duration_cast(deadline - now).count()); + pollfd pfd{fd, POLLIN, 0}; + if (::poll(&pfd, 1, wait) <= 0) return !buf.empty(); + ssize_t n = ::recv(fd, chunk, sizeof(chunk), 0); + if (n <= 0) return !buf.empty(); + buf.insert(buf.end(), chunk, chunk + n); + if (std::find(buf.begin(), buf.end(), 0x5A) != buf.end()) return true; + } +} + +} // anonymous namespace + +Bx6k1YyLedClient::Bx6k1YyLedClient(Config cfg) : m_cfg(std::move(cfg)) {} + +Bx6k1YyLedClient::~Bx6k1YyLedClient() { closeSocket(); } + +void Bx6k1YyLedClient::closeSocket() { + if (m_fd >= 0) { ::close(m_fd); m_fd = -1; } +} + +bool Bx6k1YyLedClient::ensureConnected(std::string& error) { + if (m_fd >= 0) return true; + + int fd = ::socket(AF_INET, SOCK_STREAM, 0); + if (fd < 0) { error = std::string("socket: ") + std::strerror(errno); return false; } + setNonBlocking(fd, true); + + sockaddr_in addr{}; + addr.sin_family = AF_INET; + addr.sin_port = htons(m_cfg.port); + if (inet_pton(AF_INET, m_cfg.ip.c_str(), &addr.sin_addr) != 1) { + ::close(fd); + error = "bad ip " + m_cfg.ip; + return false; + } + if (!connectWithTimeout(fd, addr, m_cfg.connectTimeoutMs)) { + ::close(fd); + error = "connect " + m_cfg.ip + ":" + std::to_string(m_cfg.port) + " failed"; + return false; + } + setNonBlocking(fd, false); + int one = 1; + setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one)); + m_fd = fd; + return true; +} + +bool Bx6k1YyLedClient::queryScreenSize(int& outW, int& outH, std::string& error) { + if (m_fd < 0) { error = "not connected"; return false; } + auto frame = buildScreenParameterQueryFrame(); + if (!sendAll(m_fd, frame.data(), frame.size(), m_cfg.responseTimeoutMs)) { + error = "send screen query failed"; return false; + } + std::vector buf; + if (!recvUntilTail(m_fd, buf, m_cfg.responseTimeoutMs)) { + error = "recv screen query timeout"; return false; + } + auto head = std::find(buf.begin(), buf.end(), 0xA5); + if (head == buf.end()) { error = "no head"; return false; } + auto tailIt = std::find(buf.rbegin(), buf.rend(), 0x5A); + if (tailIt == buf.rend()) { error = "no tail"; return false; } + std::vector phy1; + std::vector oneFrame(head, tailIt.base()); + if (!decodeFrame(oneFrame, phy1, error)) return false; + return parseScreenDimensions(phy1, outW, outH, error); +} + +bool Bx6k1YyLedClient::displayText(const std::string& utf8Text, int areaId, std::string& error) { + if (!ensureConnected(error)) return false; + + if (m_screenW <= 0 || m_screenH <= 0) { + int w = 0, h = 0; + if (queryScreenSize(w, h, error)) { + m_screenW = w; m_screenH = h; + } else { + // 查询失败:使用回退分辨率,不阻塞刷新 + m_screenW = m_cfg.fallbackScreenWidth; + m_screenH = m_cfg.fallbackScreenHeight; + error.clear(); + } + } + + std::string encoded; + if (!encodeUtf8(utf8Text, m_cfg.textEncoding, encoded)) { + error = "encode failed"; return false; + } + + const int lineH = m_screenH; // 单行:使用整屏高度 + const bool isTemporary = (areaId == kAreaTemporary); + const int timeoutSec = isTemporary ? kTemporaryTimeoutSec : 0; + const int effectiveArea = (areaId == kAreaDefault) ? kAreaDefault : kAreaTemporary; + + std::vector frame = buildDynamicTextFrame(encoded, + m_screenW, lineH, + effectiveArea, + isTemporary, timeoutSec); + if (frame.empty()) { error = "build frame failed"; return false; } + if (!sendAll(m_fd, frame.data(), frame.size(), m_cfg.responseTimeoutMs)) { + error = "send frame failed"; return false; + } + std::vector ack; + recvUntilTail(m_fd, ack, m_cfg.responseTimeoutMs); // 吃掉 ACK + + // [诊断] 解 ACK 帧并把 PHY1 全打出来,看控制卡是成功还是返回错误码 + if (!ack.empty()) { + std::vector phy1; + std::string decErr; + if (decodeFrame(ack, phy1, decErr)) { + std::fprintf(stderr, "[Led] ACK phy1 (%zu B):", phy1.size()); + for (uint8_t b : phy1) std::fprintf(stderr, " %02X", b); + std::fprintf(stderr, "\n"); + // BX-6K1-YY ACK payload 通常从 phy1[14] 起;payload[5]=ErrorCode,0=成功 + if (phy1.size() >= 20) { + std::fprintf(stderr, "[Led] ACK payload[5] (ErrorCode) = 0x%02X\n", + phy1[14 + 5]); + } + } else { + std::fprintf(stderr, "[Led] ACK decode failed: %s, raw (%zu B):", + decErr.c_str(), ack.size()); + for (uint8_t b : ack) std::fprintf(stderr, " %02X", b); + std::fprintf(stderr, "\n"); + } + } else { + std::fprintf(stderr, "[Led] ACK empty (no response from controller)\n"); + } + + return true; +} + +} // namespace led diff --git a/led/Bx6k1YyLedClient.hpp b/led/Bx6k1YyLedClient.hpp new file mode 100644 index 0000000..7596850 --- /dev/null +++ b/led/Bx6k1YyLedClient.hpp @@ -0,0 +1,55 @@ +// led/Bx6k1YyLedClient.hpp +#ifndef LED_BX6K1YY_CLIENT_HPP +#define LED_BX6K1YY_CLIENT_HPP + +#include +#include + +namespace led { + +// 同步 TCP 客户端。displayText() 内部完成: +// 1) 连 TCP;2) 用 A2 0A 查屏幕宽高;3) 把整段文本按单行下发到指定动态区域。 +// areaId = kAreaDefault (0) → 长驻(不超时),用于显示 led.txt 默认内容 +// areaId = kAreaTemporary (1) → 60 秒后由控制卡自动删除,用于临时覆盖的 DDS 排队消息 +class Bx6k1YyLedClient { +public: + static constexpr int kAreaDefault = 0; + static constexpr int kAreaTemporary = 1; + static constexpr int kTemporaryTimeoutSec = 60; + + struct Config { + std::string ip; + uint16_t port = 5005; + int connectTimeoutMs = 1000; + int responseTimeoutMs = 1000; + // 查不到分辨率时的回退值(按工作区 config / 现场屏) + int fallbackScreenWidth = 64; + int fallbackScreenHeight = 32; + // BX-6K1-YY 文本字段按 GBK 发送;如卡固件是 UTF-8 改 "UTF-8" + std::string textEncoding = "GBK"; + }; + + explicit Bx6k1YyLedClient(Config cfg); + ~Bx6k1YyLedClient(); + + Bx6k1YyLedClient(const Bx6k1YyLedClient&) = delete; + Bx6k1YyLedClient& operator=(const Bx6k1YyLedClient&) = delete; + + // 失败时不抛异常,把原因写到 error;返回 false 时下次调用会重建连接。 + // areaId=0 走长驻;areaId=1 走 60 秒自删。 + bool displayText(const std::string& utf8Text, int areaId, std::string& error); + +private: + bool ensureConnected(std::string& error); + bool queryScreenSize(int& outW, int& outH, std::string& error); + void closeSocket(); + + Config m_cfg; + int m_fd = -1; + int m_screenW = 0; + int m_screenH = 0; +}; + +} // namespace led + +#endif diff --git a/led/Subscriber.cxx b/led/Subscriber.cxx index 39a341a..117c0ae 100644 --- a/led/Subscriber.cxx +++ b/led/Subscriber.cxx @@ -32,7 +32,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" #include "DEBUG.hpp" @@ -56,6 +56,9 @@ SubscriberApp::SubscriberApp( , license_topic_(nullptr) , license_reader_(nullptr) , license_type_(new WeighingSystem::LicenseSnapUpdatePubSubType()) + , queuesuccess_topic_(nullptr) + , queuesuccess_reader_(nullptr) + , queuesuccess_type_(new Queue::QueueSuccessPubSubType()) , samples_received_(0) , stop_(false) { @@ -76,6 +79,7 @@ SubscriberApp::SubscriberApp( weightinfook_type_.register_type(participant_); weightinfoerror_type_.register_type(participant_); license_type_.register_type(participant_); + queuesuccess_type_.register_type(participant_); // Create the subscriber SubscriberQos sub_qos = SUBSCRIBER_QOS_DEFAULT; @@ -193,6 +197,32 @@ SubscriberApp::SubscriberApp( { throw std::runtime_error("WeighingSystem::LicenseSnapUpdate DataReader initialization failed"); } + + // 上位机发的 QueueSuccess → LED 取 display_text 显示 + topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(topic_qos); + queuesuccess_topic_ = participant_->create_topic("QueueSuccess", queuesuccess_type_.get_type_name(), topic_qos); + if (queuesuccess_topic_ == nullptr) + { + throw std::runtime_error("Queue::QueueSuccess Topic initialization failed"); + } + + reader_qos = DATAREADER_QOS_DEFAULT; + subscriber_->get_default_datareader_qos(reader_qos); + reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + reader_qos.reliability().max_blocking_time = Duration_t(1, 0); + reader_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + reader_qos.history().depth = 1; + reader_qos.resource_limits().max_samples = 200; + reader_qos.resource_limits().max_instances = 1; + reader_qos.resource_limits().max_samples_per_instance = 100; + reader_qos.data_sharing().off(); + queuesuccess_reader_ = subscriber_->create_datareader(queuesuccess_topic_, reader_qos, this, StatusMask::all()); + if (queuesuccess_reader_ == nullptr) + { + throw std::runtime_error("Queue::QueueSuccess DataReader initialization failed"); + } } SubscriberApp::~SubscriberApp() @@ -292,6 +322,21 @@ void SubscriberApp::on_data_available( } } } + else if (topic_name == "QueueSuccess") + { + Queue::QueueSuccess sample_; + while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) + { + if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) + { + { + std::unique_lock lock(DdsMsgData::queue_cv_mtx_); + DdsMsgData::QueueSuccess_queue_.push(std::move(sample_)); + lock.unlock(); + } + } + } + } } void SubscriberApp::run() @@ -312,4 +357,4 @@ void SubscriberApp::stop() { stop_.store(true); terminate_cv_.notify_all(); -} \ No newline at end of file +} diff --git a/led/Subscriber.hpp b/led/Subscriber.hpp index 248e4a0..092a5c9 100644 --- a/led/Subscriber.hpp +++ b/led/Subscriber.hpp @@ -29,7 +29,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener { @@ -75,10 +75,13 @@ private: eprosima::fastdds::dds::Topic* license_topic_; eprosima::fastdds::dds::DataReader* license_reader_; eprosima::fastdds::dds::TypeSupport license_type_; + eprosima::fastdds::dds::Topic* queuesuccess_topic_; // 上位机发的 QueueSuccess(让 LED 拿到 display_text) + eprosima::fastdds::dds::DataReader* queuesuccess_reader_; + eprosima::fastdds::dds::TypeSupport queuesuccess_type_; uint16_t samples_received_; std::atomic stop_; mutable std::mutex terminate_cv_mtx_; std::condition_variable terminate_cv_; }; -#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP \ No newline at end of file +#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP diff --git a/led/YQNetCom.h b/led/YQNetCom.h index 763c37e..829e4a6 100755 --- a/led/YQNetCom.h +++ b/led/YQNetCom.h @@ -41,7 +41,6 @@ extern "C" { #endif #ifdef _WIN32 LEDNETSDK_API int _CALL_STD init_sdk(); - LEDNETSDK_API int _CALL_STD release_sdk(); #endif diff --git a/led/main.cxx b/led/main.cxx index afe94a6..1e0f431 100644 --- a/led/main.cxx +++ b/led/main.cxx @@ -33,10 +33,12 @@ #include "msg.hpp" #include "DEBUG.hpp" #include "utils.hpp" -#include "YQNetCom.h" +#include "BX6K1YYProtocol.hpp" +#include "Bx6k1YyLedClient.hpp" using eprosima::fastdds::dds::Log; + std::function stop_handler; void signal_handler( int signum) @@ -64,164 +66,17 @@ std::string parse_signal( } } -static const std::string base64_chars = - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789+/"; - -static inline bool is_base64(unsigned char c) { - return (isalnum(c) || (c == '+') || (c == '/')); -} - -std::string base64_encode(const std::string &input) -{ - std::string ret; - int i = 0; - int j = 0; - unsigned char char_array_3[3]; - unsigned char char_array_4[4]; - - size_t in_len = input.size(); - const char *bytes_to_encode = input.c_str(); - - while (in_len--) - { - char_array_3[i++] = *(bytes_to_encode++); - if (i == 3) - { - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - char_array_4[3] = char_array_3[2] & 0x3f; - - for (i = 0; i < 4; i++) - { - ret += base64_chars[char_array_4[i]]; - } - i = 0; - } - } - - if (i) - { - for (j = i; j < 3; j++) - { - char_array_3[j] = '\0'; - } - - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - - for (j = 0; j < i + 1; j++) - { - ret += base64_chars[char_array_4[j]]; - } - - while (i++ < 3) - { - ret += '='; - } - } - - return ret; -} - -void send_text(std::string ip_addr, int port, std::string text) -{ - char *user_name = "guest", *user_pwd = "guest"; - int dynamic_type = 1; - int display_effects = 0; - int display_speed = 16; - int stay_time = 10; - int gif_flag = 0; - char *bg_color = "0xff000000"; - char *color = "0xffffffff"; - char *font_attributes = "normal"; - char *font = "SimSun"; - char *align_h = "0"; - char *align_v = "0"; - char *ali = ""; - int err; - - std::vector ip(ip_addr.begin(), ip_addr.end()); - ip.push_back('\0'); - - std::string wcstring = base64_encode(text); - - int b = check_time(ip.data(), port, user_name, user_pwd); - DEBUG("check_time==" << b); - unsigned long play_list = create_playlist(128, 128, 8280); - printf("create_playlist: %p\n", play_list); - char *program_name = "program_0"; - unsigned long program = create_program(program_name, bg_color); - printf("create_program: %p\n", program); - - unsigned long dynamic_area = create_dynamic(); - printf("create_dynamic: %p\n", dynamic_area); - err = add_dynamic_unit(dynamic_area, dynamic_type, display_effects, display_speed, stay_time, wcstring.data(), gif_flag, bg_color, 14, font, color, font_attributes, align_h, align_v, 0, 0, 0, "", "", 0); - DEBUG("add_dynamic_unit:" << err); - err = add_dynamic(program, dynamic_area, 0, 0, 0, 128, 128, ali, 0, ali, 100); - DEBUG("add_dynamic:" << err); - delete_dynamic(dynamic_area); - - err = add_program_in_playlist(play_list, program, 0, 10, ali, ali, ali, ali, 127); - DEBUG("add_program_in_playlist:" << err); - err = update_dynamic_small(ip.data(), port, user_name, user_pwd, play_list, "", 1, 0); - if (err != 0) - { - DEBUG(ip.data() << "update_dynamic_small:" << err); - } - - delete_playlist(play_list); -} +// ========== LED 运行参数(参照 PuAnLED/Onbon/BX6K1YY 协议:BX-6K1-YY,0x64 / 0x02)========== +// 屏幕宽高是「查询失败时」的回退值;正常情况下启动后通过 A2 0A 查控制卡真实分辨率。 +constexpr int LED_SCREEN_WIDTH = 64; +constexpr int LED_SCREEN_HEIGHT = 32; +// 控制卡 IP / 端口(与 config.json.led 对应) +constexpr const char* LED_IP = "192.168.6.147"; +constexpr int LED_PORT = 5005; -void send_file(std::string ip_addr, int port, std::string wcstring) -{ - char *user_name = "guest", *user_pwd = "guest"; - int dynamic_type = 1; - int display_effects = 0; - int display_speed = 16; - int stay_time = 10; - int gif_flag = 0; - char *bg_color = "0xff000000"; - char *color = "0xffffffff"; - char *font_attributes = "normal"; - char *font = "SimSun"; - char *align_h = "0"; - char *align_v = "0"; - char *ali = ""; - int err; - - std::vector ip(ip_addr.begin(), ip_addr.end()); - ip.push_back('\0'); - - int b = check_time(ip.data(), port, user_name, user_pwd); - DEBUG("check_time==" << b); - unsigned long play_list = create_playlist(128, 128, 8280); - printf("create_playlist: %p\n", play_list); - char *program_name = "program_0"; - unsigned long program = create_program(program_name, bg_color); - printf("create_program: %p\n", program); - - unsigned long dynamic_area = create_dynamic(); - printf("create_dynamic: %p\n", dynamic_area); - err = add_dynamic_unit(dynamic_area, dynamic_type, display_effects, display_speed, stay_time, wcstring.data(), gif_flag, bg_color, 14, font, color, font_attributes, align_h, align_v, 0, 0, 0, "", "", 0); - DEBUG("add_dynamic_unit:" << err); - err = add_dynamic(program, dynamic_area, 0, 0, 0, 128, 128, ali, 0, ali, 100); - DEBUG("add_dynamic:" << err); - delete_dynamic(dynamic_area); - - err = add_program_in_playlist(play_list, program, 0, 10, ali, ali, ali, ali, 127); - DEBUG("add_program_in_playlist:" << err); - err = update_dynamic(ip.data(), port, user_name, user_pwd, play_list, "", 1, 0); - if (err != 0) - { - DEBUG(ip.data() << "update_dynamic:" << err); - } +// 全局 LED 客户端(BX-6K1-YY 协议),main 中构造,send_text 内部调用 +static led::Bx6k1YyLedClient* g_led_client = nullptr; - delete_playlist(play_list); -} std::string readfile(std::string name) { @@ -251,10 +106,33 @@ std::string readfile(std::string name) return config; } +// 默认内容(led.txt):长驻到 area 0,控制卡不会自动删除。 +static void send_default_text(const std::string& text) +{ + if (!g_led_client) return; + std::string err; + if (!g_led_client->displayText(text, led::Bx6k1YyLedClient::kAreaDefault, err)) + { + std::cerr << "LED default display failed: " << err << std::endl; + } +} + +// DDS QueueSuccess 消息:下发到 area 1,60 秒后由控制卡自动删除,露出 area 0 的默认内容。 +static void send_queue_text(const std::string& text) +{ + if (!g_led_client) return; + std::string err; + if (!g_led_client->displayText(text, led::Bx6k1YyLedClient::kAreaTemporary, err)) + { + std::cerr << "LED queue display failed: " << err << std::endl; + } +} + std::queue DdsMsgData::ScaleInfo_queue_; std::queue DdsMsgData::WeightInfoOk_queue_; std::queue DdsMsgData::WeightInfoError_queue_; std::queue DdsMsgData::LicenseSnapUpdate_queue_; +std::queue DdsMsgData::QueueSuccess_queue_; std::mutex DdsMsgData::queue_cv_mtx_; std::atomic running(true); @@ -265,13 +143,12 @@ int main(int argc, char** argv) std::shared_ptr sub; int domain_id = 0; - int port = 80; - int type = 0; - std::string addr = "192.168.1.100"; - uint8_t clear_led = 1; - uint8_t weight_stable = 0; - std::string license = ""; + // —— IP / 端口:命令行可覆盖顶部常量 —— + std::string addr = LED_IP; + int port = LED_PORT; + + // ====== 命令行解析 ====== for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--domain") == 0 && i + 1 < argc) @@ -281,152 +158,117 @@ int main(int argc, char** argv) else if (strcmp(argv[i], "--addr") == 0 && i + 1 < argc) { addr = argv[++i]; + DEBUG("use addr from cmd: " << addr); } else if (strcmp(argv[i], "--port") == 0 && i + 1 < argc) { port = atoi(argv[++i]); - } - else if (strcmp(argv[i], "--type") == 0 && i + 1 < argc) - { - type = atoi(argv[++i]); + DEBUG("use port from cmd: " << port); } else if (strcmp(argv[i], "--version") == 0) { - std::cout << "Vesrion: " << PROGRAM_VERSION << "\n"; + std::cout << "Version: " << PROGRAM_VERSION << "\n"; return EXIT_SUCCESS; } else if (strcmp(argv[i], "--help") == 0) { - std::cout << "Usage: [options]\n" + std::cout << "Usage: led [options]\n" << "Options:\n" - << " --domain Set domain ID\n" - << " --addr Set led addr (e.g., 192.168.1.1)\n" - << " --port Set port name (e.g., 80)\n" - << " --type Set port name (0: in car, 1: not in car)\n" + << " --domain Set DDS domain ID\n" + << " --addr LED TCP ip\n" + << " --port LED TCP port (default " << LED_PORT << ")\n" << " --version Show software Version\n" - << " --help Show this help message\n"; + << " --help Show this help message\n" + << "\nLED config (edit source):\n" + << " ip = " << LED_IP << "\n" + << " port = " << port << "\n" + << " screen = " << LED_SCREEN_WIDTH << "x" << LED_SCREEN_HEIGHT + << " (fallback; real size queried at runtime via A2 0A)\n" + << " protocol = BX-6K1-YY (0x64 / 0x02), A3 06 dynamic area\n"; return EXIT_SUCCESS; } else { - std::cerr << "Unknown option: " << argv[i] << "\n"; - std::cout << "Usage: [options]\n" - << "Options:\n" - << " --domain Set domain ID\n" - << " --addr Set led addr (e.g., 192.168.1.1)\n" - << " --port Set port name (e.g., 80)\n" - << " --type Set port name (0: in car, 1: not in car)\n" + std::cout << "Usage: led [options]\n" + << " --domain Set DDS domain ID\n" << " --version Show software Version\n" << " --help Show this help message\n"; return EXIT_FAILURE; } } - sub = std::make_shared(domain_id); + // ====== 0. 构造 BX-6K1-YY LED 客户端(裸 TCP 协议,不依赖 vendor SDK)====== + { + led::Bx6k1YyLedClient::Config cfg; + cfg.ip = addr; + cfg.port = static_cast(port); + cfg.connectTimeoutMs = 1000; + cfg.responseTimeoutMs = 1000; + cfg.fallbackScreenWidth = LED_SCREEN_WIDTH; + cfg.fallbackScreenHeight = LED_SCREEN_HEIGHT; + // cfg.textEncoding = "GBK"; // BX-6K1-YY 默认按 GBK + cfg.textEncoding = "UTF-8"; // 临时:跳过 iconv,先验证连通和协议 + g_led_client = new led::Bx6k1YyLedClient(cfg); + } + // ====== 1. DDS 订阅 ====== + sub = std::make_shared(domain_id); DEBUG("Program is running. Please press Ctrl+C to stop at any time."); - auto formatFloat = [](float value) -> std::string - { - std::ostringstream oss; - oss << std::fixed << std::setprecision(2) << value; - return oss.str(); - }; - - std::string default_text = readfile("led.txt"); - send_text(addr, port, default_text); - - while(running.load()) + // ====== 2. 启动直接显示默认内容(长驻 area 0)====== + const std::string default_text = "#3排队"; // UTF-8 → iconv 转 GBK = 23 33 C5 C5 B6 D3 + send_default_text(default_text); + + // ====== 3. 主循环:仅 QueueSuccess 触发刷新,下发到 area 1(60 秒自删)====== + std::string last_text; + bool last_inited = false; + + while (running.load()) { std::unique_lock lock(DdsMsgData::queue_cv_mtx_, std::try_to_lock); if (lock.owns_lock()) { - if(!DdsMsgData::WeightInfoOk_queue_.empty()) - { - WeighingSystem::WeightInfoOk info = std::move(DdsMsgData::WeightInfoOk_queue_.front()); - DdsMsgData::WeightInfoOk_queue_.pop(); - lock.unlock(); - - send_text(addr, port, info.Warning()); - clear_led = 0; - } - else if (!DdsMsgData::WeightInfoError_queue_.empty()) - { - WeighingSystem::WeightInfoError info = std::move(DdsMsgData::WeightInfoError_queue_.front()); - DdsMsgData::WeightInfoError_queue_.pop(); - lock.unlock(); - - send_text(addr, port, info.Warning()); - clear_led = 0; - } - else if (!DdsMsgData::ScaleInfo_queue_.empty()) + if (!DdsMsgData::QueueSuccess_queue_.empty()) { - WeighingSystem::ScaleInfo info = std::move(DdsMsgData::ScaleInfo_queue_.front()); - DdsMsgData::ScaleInfo_queue_.pop(); + Queue::QueueSuccess info = std::move(DdsMsgData::QueueSuccess_queue_.front()); + DdsMsgData::QueueSuccess_queue_.pop(); lock.unlock(); - if (info.HasVehicle() == false) - { - if (clear_led == 0) - { - send_text(addr, port, default_text); - clear_led = 1; - license.clear(); - } - } - - if (info.WeightOK() == true) + std::string cur = info.display_text(); + if (!last_inited || cur != last_text) { - weight_stable = 1; + last_text = cur; + last_inited = true; + DEBUG("QueueSuccess.display_text=" << cur); + send_queue_text(cur); } - else - { - weight_stable = 0; - } - } - else if (!DdsMsgData::LicenseSnapUpdate_queue_.empty()) - { - WeighingSystem::LicenseSnapUpdate info = std::move(DdsMsgData::LicenseSnapUpdate_queue_.front()); - DdsMsgData::LicenseSnapUpdate_queue_.pop(); - lock.unlock(); - - license = info.License(); - weight_stable = 0; } else { lock.unlock(); } } - - if (type == 1) - { - if ((weight_stable == 1) && (!license.empty())) - { - std::string text = license + std::string(",司机请下车等候,切勿停留在车上!"); - send_text(addr, port, text); - clear_led = 0; - weight_stable = 0; - license.clear(); - } - } - std::this_thread::sleep_for(std::chrono::milliseconds(100)); } - stop_handler = [&](int signum) - { - std::cout << "\n" << parse_signal(signum) << " received, stopping " << argv[1] - << " execution." << std::endl; - running.store(false); - }; + // ====== 4. 退出:释放 LED 客户端 ====== + if (g_led_client) + { + delete g_led_client; + g_led_client = nullptr; + } - signal(SIGINT, signal_handler); + stop_handler = [&](int signum) { + std::cout << "\n" << parse_signal(signum) << " received, stopping " + << (argc > 0 ? argv[0] : "") << " execution." << std::endl; + running.store(false); + }; + signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); #ifndef _WIN32 signal(SIGQUIT, signal_handler); - signal(SIGHUP, signal_handler); -#endif // _WIN32 + signal(SIGHUP, signal_handler); +#endif Log::Reset(); return ret; diff --git a/led/msg.hpp b/led/msg.hpp index 7a2fd30..22f6393 100644 --- a/led/msg.hpp +++ b/led/msg.hpp @@ -3,7 +3,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class DdsMsgData { public: @@ -11,7 +11,8 @@ public: static std::queue WeightInfoOk_queue_; static std::queue WeightInfoError_queue_; static std::queue LicenseSnapUpdate_queue_; + static std::queue QueueSuccess_queue_; // 上位机下发:LED 取 display_text 显示 static std::mutex queue_cv_mtx_; }; -#endif \ No newline at end of file +#endif diff --git a/lib/System.hpp b/lib/System.hpp deleted file mode 100644 index 5a62873..0000000 --- a/lib/System.hpp +++ /dev/null @@ -1,4435 +0,0 @@ -// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/*! - * @file System.hpp - * This header file contains the declaration of the described types in the IDL file. - * - * This file was generated by the tool fastddsgen. - */ - -#ifndef FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_HPP -#define FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_HPP - -#include -#include -#include -#include -#include - -#if defined(_WIN32) -#if defined(EPROSIMA_USER_DLL_EXPORT) -#define eProsima_user_DllExport __declspec( dllexport ) -#else -#define eProsima_user_DllExport -#endif // EPROSIMA_USER_DLL_EXPORT -#else -#define eProsima_user_DllExport -#endif // _WIN32 - -#if defined(_WIN32) -#if defined(EPROSIMA_USER_DLL_EXPORT) -#if defined(SYSTEM_SOURCE) -#define SYSTEM_DllAPI __declspec( dllexport ) -#else -#define SYSTEM_DllAPI __declspec( dllimport ) -#endif // SYSTEM_SOURCE -#else -#define SYSTEM_DllAPI -#endif // EPROSIMA_USER_DLL_EXPORT -#else -#define SYSTEM_DllAPI -#endif // _WIN32 - -namespace WeighingSystem { - -/*! - * @brief This class represents the structure ScaleInfo defined by the user in the IDL file. - * @ingroup System - */ -class ScaleInfo -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport ScaleInfo() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~ScaleInfo() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object ScaleInfo that will be copied. - */ - eProsima_user_DllExport ScaleInfo( - const ScaleInfo& x) - { - m_HasVehicle = x.m_HasVehicle; - - m_WeightOK = x.m_WeightOK; - - m_State = x.m_State; - - m_Value = x.m_Value; - - m_StableValue = x.m_StableValue; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object ScaleInfo that will be copied. - */ - eProsima_user_DllExport ScaleInfo( - ScaleInfo&& x) noexcept - { - m_HasVehicle = x.m_HasVehicle; - m_WeightOK = x.m_WeightOK; - m_State = x.m_State; - m_Value = x.m_Value; - m_StableValue = x.m_StableValue; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object ScaleInfo that will be copied. - */ - eProsima_user_DllExport ScaleInfo& operator =( - const ScaleInfo& x) - { - - m_HasVehicle = x.m_HasVehicle; - - m_WeightOK = x.m_WeightOK; - - m_State = x.m_State; - - m_Value = x.m_Value; - - m_StableValue = x.m_StableValue; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object ScaleInfo that will be copied. - */ - eProsima_user_DllExport ScaleInfo& operator =( - ScaleInfo&& x) noexcept - { - - m_HasVehicle = x.m_HasVehicle; - m_WeightOK = x.m_WeightOK; - m_State = x.m_State; - m_Value = x.m_Value; - m_StableValue = x.m_StableValue; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x ScaleInfo object to compare. - */ - eProsima_user_DllExport bool operator ==( - const ScaleInfo& x) const - { - return (m_HasVehicle == x.m_HasVehicle && - m_WeightOK == x.m_WeightOK && - m_State == x.m_State && - m_Value == x.m_Value && - m_StableValue == x.m_StableValue); - } - - /*! - * @brief Comparison operator. - * @param x ScaleInfo object to compare. - */ - eProsima_user_DllExport bool operator !=( - const ScaleInfo& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member HasVehicle - * @param _HasVehicle New value for member HasVehicle - */ - eProsima_user_DllExport void HasVehicle( - bool _HasVehicle) - { - m_HasVehicle = _HasVehicle; - } - - /*! - * @brief This function returns the value of member HasVehicle - * @return Value of member HasVehicle - */ - eProsima_user_DllExport bool HasVehicle() const - { - return m_HasVehicle; - } - - /*! - * @brief This function returns a reference to member HasVehicle - * @return Reference to member HasVehicle - */ - eProsima_user_DllExport bool& HasVehicle() - { - return m_HasVehicle; - } - - - /*! - * @brief This function sets a value in member WeightOK - * @param _WeightOK New value for member WeightOK - */ - eProsima_user_DllExport void WeightOK( - bool _WeightOK) - { - m_WeightOK = _WeightOK; - } - - /*! - * @brief This function returns the value of member WeightOK - * @return Value of member WeightOK - */ - eProsima_user_DllExport bool WeightOK() const - { - return m_WeightOK; - } - - /*! - * @brief This function returns a reference to member WeightOK - * @return Reference to member WeightOK - */ - eProsima_user_DllExport bool& WeightOK() - { - return m_WeightOK; - } - - - /*! - * @brief This function sets a value in member State - * @param _State New value for member State - */ - eProsima_user_DllExport void State( - bool _State) - { - m_State = _State; - } - - /*! - * @brief This function returns the value of member State - * @return Value of member State - */ - eProsima_user_DllExport bool State() const - { - return m_State; - } - - /*! - * @brief This function returns a reference to member State - * @return Reference to member State - */ - eProsima_user_DllExport bool& State() - { - return m_State; - } - - - /*! - * @brief This function sets a value in member Value - * @param _Value New value for member Value - */ - eProsima_user_DllExport void Value( - float _Value) - { - m_Value = _Value; - } - - /*! - * @brief This function returns the value of member Value - * @return Value of member Value - */ - eProsima_user_DllExport float Value() const - { - return m_Value; - } - - /*! - * @brief This function returns a reference to member Value - * @return Reference to member Value - */ - eProsima_user_DllExport float& Value() - { - return m_Value; - } - - - /*! - * @brief This function sets a value in member StableValue - * @param _StableValue New value for member StableValue - */ - eProsima_user_DllExport void StableValue( - float _StableValue) - { - m_StableValue = _StableValue; - } - - /*! - * @brief This function returns the value of member StableValue - * @return Value of member StableValue - */ - eProsima_user_DllExport float StableValue() const - { - return m_StableValue; - } - - /*! - * @brief This function returns a reference to member StableValue - * @return Reference to member StableValue - */ - eProsima_user_DllExport float& StableValue() - { - return m_StableValue; - } - - - -private: - - bool m_HasVehicle{false}; - bool m_WeightOK{false}; - bool m_State{false}; - float m_Value{0.0}; - float m_StableValue{0.0}; - -}; -/*! - * @brief This class represents the structure ScaleCommand defined by the user in the IDL file. - * @ingroup System - */ -class ScaleCommand -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport ScaleCommand() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~ScaleCommand() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object ScaleCommand that will be copied. - */ - eProsima_user_DllExport ScaleCommand( - const ScaleCommand& x) - { - m_Enable = x.m_Enable; - - m_ResetZero = x.m_ResetZero; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object ScaleCommand that will be copied. - */ - eProsima_user_DllExport ScaleCommand( - ScaleCommand&& x) noexcept - { - m_Enable = x.m_Enable; - m_ResetZero = x.m_ResetZero; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object ScaleCommand that will be copied. - */ - eProsima_user_DllExport ScaleCommand& operator =( - const ScaleCommand& x) - { - - m_Enable = x.m_Enable; - - m_ResetZero = x.m_ResetZero; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object ScaleCommand that will be copied. - */ - eProsima_user_DllExport ScaleCommand& operator =( - ScaleCommand&& x) noexcept - { - - m_Enable = x.m_Enable; - m_ResetZero = x.m_ResetZero; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x ScaleCommand object to compare. - */ - eProsima_user_DllExport bool operator ==( - const ScaleCommand& x) const - { - return (m_Enable == x.m_Enable && - m_ResetZero == x.m_ResetZero); - } - - /*! - * @brief Comparison operator. - * @param x ScaleCommand object to compare. - */ - eProsima_user_DllExport bool operator !=( - const ScaleCommand& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member Enable - * @param _Enable New value for member Enable - */ - eProsima_user_DllExport void Enable( - bool _Enable) - { - m_Enable = _Enable; - } - - /*! - * @brief This function returns the value of member Enable - * @return Value of member Enable - */ - eProsima_user_DllExport bool Enable() const - { - return m_Enable; - } - - /*! - * @brief This function returns a reference to member Enable - * @return Reference to member Enable - */ - eProsima_user_DllExport bool& Enable() - { - return m_Enable; - } - - - /*! - * @brief This function sets a value in member ResetZero - * @param _ResetZero New value for member ResetZero - */ - eProsima_user_DllExport void ResetZero( - int32_t _ResetZero) - { - m_ResetZero = _ResetZero; - } - - /*! - * @brief This function returns the value of member ResetZero - * @return Value of member ResetZero - */ - eProsima_user_DllExport int32_t ResetZero() const - { - return m_ResetZero; - } - - /*! - * @brief This function returns a reference to member ResetZero - * @return Reference to member ResetZero - */ - eProsima_user_DllExport int32_t& ResetZero() - { - return m_ResetZero; - } - - - -private: - - bool m_Enable{false}; - int32_t m_ResetZero{0}; - -}; -/*! - * @brief This class represents the structure WeightInfoOk defined by the user in the IDL file. - * @ingroup System - */ -class WeightInfoOk -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport WeightInfoOk() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~WeightInfoOk() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object WeightInfoOk that will be copied. - */ - eProsima_user_DllExport WeightInfoOk( - const WeightInfoOk& x) - { - m_GrossDeviceID = x.m_GrossDeviceID; - - m_GrossDeviceName = x.m_GrossDeviceName; - - m_GrossDeviceType = x.m_GrossDeviceType; - - m_TareDeviceID = x.m_TareDeviceID; - - m_TareDeviceName = x.m_TareDeviceName; - - m_TareDeviceType = x.m_TareDeviceType; - - m_EnterpriseName = x.m_EnterpriseName; - - m_BillNumber = x.m_BillNumber; - - m_CarNumber = x.m_CarNumber; - - m_Supplier = x.m_Supplier; - - m_GoodsType = x.m_GoodsType; - - m_GrossWeight = x.m_GrossWeight; - - m_GrossTime = x.m_GrossTime; - - m_GrossOperater = x.m_GrossOperater; - - m_Tare = x.m_Tare; - - m_TareTime = x.m_TareTime; - - m_TareOperater = x.m_TareOperater; - - m_Suttle = x.m_Suttle; - - m_duduction1 = x.m_duduction1; - - m_duduction2 = x.m_duduction2; - - m_duduction3 = x.m_duduction3; - - m_INCoalYard = x.m_INCoalYard; - - m_OutCoalYard = x.m_OutCoalYard; - - m_BatchNumber = x.m_BatchNumber; - - m_Warning = x.m_Warning; - - m_Tips = x.m_Tips; - - m_TicketType = x.m_TicketType; - - m_IsPrintTicker = x.m_IsPrintTicker; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object WeightInfoOk that will be copied. - */ - eProsima_user_DllExport WeightInfoOk( - WeightInfoOk&& x) noexcept - { - m_GrossDeviceID = x.m_GrossDeviceID; - m_GrossDeviceName = std::move(x.m_GrossDeviceName); - m_GrossDeviceType = std::move(x.m_GrossDeviceType); - m_TareDeviceID = x.m_TareDeviceID; - m_TareDeviceName = std::move(x.m_TareDeviceName); - m_TareDeviceType = std::move(x.m_TareDeviceType); - m_EnterpriseName = std::move(x.m_EnterpriseName); - m_BillNumber = std::move(x.m_BillNumber); - m_CarNumber = std::move(x.m_CarNumber); - m_Supplier = std::move(x.m_Supplier); - m_GoodsType = std::move(x.m_GoodsType); - m_GrossWeight = x.m_GrossWeight; - m_GrossTime = std::move(x.m_GrossTime); - m_GrossOperater = std::move(x.m_GrossOperater); - m_Tare = x.m_Tare; - m_TareTime = std::move(x.m_TareTime); - m_TareOperater = std::move(x.m_TareOperater); - m_Suttle = x.m_Suttle; - m_duduction1 = x.m_duduction1; - m_duduction2 = x.m_duduction2; - m_duduction3 = x.m_duduction3; - m_INCoalYard = std::move(x.m_INCoalYard); - m_OutCoalYard = std::move(x.m_OutCoalYard); - m_BatchNumber = std::move(x.m_BatchNumber); - m_Warning = std::move(x.m_Warning); - m_Tips = std::move(x.m_Tips); - m_TicketType = std::move(x.m_TicketType); - m_IsPrintTicker = x.m_IsPrintTicker; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object WeightInfoOk that will be copied. - */ - eProsima_user_DllExport WeightInfoOk& operator =( - const WeightInfoOk& x) - { - - m_GrossDeviceID = x.m_GrossDeviceID; - - m_GrossDeviceName = x.m_GrossDeviceName; - - m_GrossDeviceType = x.m_GrossDeviceType; - - m_TareDeviceID = x.m_TareDeviceID; - - m_TareDeviceName = x.m_TareDeviceName; - - m_TareDeviceType = x.m_TareDeviceType; - - m_EnterpriseName = x.m_EnterpriseName; - - m_BillNumber = x.m_BillNumber; - - m_CarNumber = x.m_CarNumber; - - m_Supplier = x.m_Supplier; - - m_GoodsType = x.m_GoodsType; - - m_GrossWeight = x.m_GrossWeight; - - m_GrossTime = x.m_GrossTime; - - m_GrossOperater = x.m_GrossOperater; - - m_Tare = x.m_Tare; - - m_TareTime = x.m_TareTime; - - m_TareOperater = x.m_TareOperater; - - m_Suttle = x.m_Suttle; - - m_duduction1 = x.m_duduction1; - - m_duduction2 = x.m_duduction2; - - m_duduction3 = x.m_duduction3; - - m_INCoalYard = x.m_INCoalYard; - - m_OutCoalYard = x.m_OutCoalYard; - - m_BatchNumber = x.m_BatchNumber; - - m_Warning = x.m_Warning; - - m_Tips = x.m_Tips; - - m_TicketType = x.m_TicketType; - - m_IsPrintTicker = x.m_IsPrintTicker; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object WeightInfoOk that will be copied. - */ - eProsima_user_DllExport WeightInfoOk& operator =( - WeightInfoOk&& x) noexcept - { - - m_GrossDeviceID = x.m_GrossDeviceID; - m_GrossDeviceName = std::move(x.m_GrossDeviceName); - m_GrossDeviceType = std::move(x.m_GrossDeviceType); - m_TareDeviceID = x.m_TareDeviceID; - m_TareDeviceName = std::move(x.m_TareDeviceName); - m_TareDeviceType = std::move(x.m_TareDeviceType); - m_EnterpriseName = std::move(x.m_EnterpriseName); - m_BillNumber = std::move(x.m_BillNumber); - m_CarNumber = std::move(x.m_CarNumber); - m_Supplier = std::move(x.m_Supplier); - m_GoodsType = std::move(x.m_GoodsType); - m_GrossWeight = x.m_GrossWeight; - m_GrossTime = std::move(x.m_GrossTime); - m_GrossOperater = std::move(x.m_GrossOperater); - m_Tare = x.m_Tare; - m_TareTime = std::move(x.m_TareTime); - m_TareOperater = std::move(x.m_TareOperater); - m_Suttle = x.m_Suttle; - m_duduction1 = x.m_duduction1; - m_duduction2 = x.m_duduction2; - m_duduction3 = x.m_duduction3; - m_INCoalYard = std::move(x.m_INCoalYard); - m_OutCoalYard = std::move(x.m_OutCoalYard); - m_BatchNumber = std::move(x.m_BatchNumber); - m_Warning = std::move(x.m_Warning); - m_Tips = std::move(x.m_Tips); - m_TicketType = std::move(x.m_TicketType); - m_IsPrintTicker = x.m_IsPrintTicker; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x WeightInfoOk object to compare. - */ - eProsima_user_DllExport bool operator ==( - const WeightInfoOk& x) const - { - return (m_GrossDeviceID == x.m_GrossDeviceID && - m_GrossDeviceName == x.m_GrossDeviceName && - m_GrossDeviceType == x.m_GrossDeviceType && - m_TareDeviceID == x.m_TareDeviceID && - m_TareDeviceName == x.m_TareDeviceName && - m_TareDeviceType == x.m_TareDeviceType && - m_EnterpriseName == x.m_EnterpriseName && - m_BillNumber == x.m_BillNumber && - m_CarNumber == x.m_CarNumber && - m_Supplier == x.m_Supplier && - m_GoodsType == x.m_GoodsType && - m_GrossWeight == x.m_GrossWeight && - m_GrossTime == x.m_GrossTime && - m_GrossOperater == x.m_GrossOperater && - m_Tare == x.m_Tare && - m_TareTime == x.m_TareTime && - m_TareOperater == x.m_TareOperater && - m_Suttle == x.m_Suttle && - m_duduction1 == x.m_duduction1 && - m_duduction2 == x.m_duduction2 && - m_duduction3 == x.m_duduction3 && - m_INCoalYard == x.m_INCoalYard && - m_OutCoalYard == x.m_OutCoalYard && - m_BatchNumber == x.m_BatchNumber && - m_Warning == x.m_Warning && - m_Tips == x.m_Tips && - m_TicketType == x.m_TicketType && - m_IsPrintTicker == x.m_IsPrintTicker); - } - - /*! - * @brief Comparison operator. - * @param x WeightInfoOk object to compare. - */ - eProsima_user_DllExport bool operator !=( - const WeightInfoOk& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member GrossDeviceID - * @param _GrossDeviceID New value for member GrossDeviceID - */ - eProsima_user_DllExport void GrossDeviceID( - int32_t _GrossDeviceID) - { - m_GrossDeviceID = _GrossDeviceID; - } - - /*! - * @brief This function returns the value of member GrossDeviceID - * @return Value of member GrossDeviceID - */ - eProsima_user_DllExport int32_t GrossDeviceID() const - { - return m_GrossDeviceID; - } - - /*! - * @brief This function returns a reference to member GrossDeviceID - * @return Reference to member GrossDeviceID - */ - eProsima_user_DllExport int32_t& GrossDeviceID() - { - return m_GrossDeviceID; - } - - - /*! - * @brief This function copies the value in member GrossDeviceName - * @param _GrossDeviceName New value to be copied in member GrossDeviceName - */ - eProsima_user_DllExport void GrossDeviceName( - const std::string& _GrossDeviceName) - { - m_GrossDeviceName = _GrossDeviceName; - } - - /*! - * @brief This function moves the value in member GrossDeviceName - * @param _GrossDeviceName New value to be moved in member GrossDeviceName - */ - eProsima_user_DllExport void GrossDeviceName( - std::string&& _GrossDeviceName) - { - m_GrossDeviceName = std::move(_GrossDeviceName); - } - - /*! - * @brief This function returns a constant reference to member GrossDeviceName - * @return Constant reference to member GrossDeviceName - */ - eProsima_user_DllExport const std::string& GrossDeviceName() const - { - return m_GrossDeviceName; - } - - /*! - * @brief This function returns a reference to member GrossDeviceName - * @return Reference to member GrossDeviceName - */ - eProsima_user_DllExport std::string& GrossDeviceName() - { - return m_GrossDeviceName; - } - - - /*! - * @brief This function copies the value in member GrossDeviceType - * @param _GrossDeviceType New value to be copied in member GrossDeviceType - */ - eProsima_user_DllExport void GrossDeviceType( - const std::string& _GrossDeviceType) - { - m_GrossDeviceType = _GrossDeviceType; - } - - /*! - * @brief This function moves the value in member GrossDeviceType - * @param _GrossDeviceType New value to be moved in member GrossDeviceType - */ - eProsima_user_DllExport void GrossDeviceType( - std::string&& _GrossDeviceType) - { - m_GrossDeviceType = std::move(_GrossDeviceType); - } - - /*! - * @brief This function returns a constant reference to member GrossDeviceType - * @return Constant reference to member GrossDeviceType - */ - eProsima_user_DllExport const std::string& GrossDeviceType() const - { - return m_GrossDeviceType; - } - - /*! - * @brief This function returns a reference to member GrossDeviceType - * @return Reference to member GrossDeviceType - */ - eProsima_user_DllExport std::string& GrossDeviceType() - { - return m_GrossDeviceType; - } - - - /*! - * @brief This function sets a value in member TareDeviceID - * @param _TareDeviceID New value for member TareDeviceID - */ - eProsima_user_DllExport void TareDeviceID( - int32_t _TareDeviceID) - { - m_TareDeviceID = _TareDeviceID; - } - - /*! - * @brief This function returns the value of member TareDeviceID - * @return Value of member TareDeviceID - */ - eProsima_user_DllExport int32_t TareDeviceID() const - { - return m_TareDeviceID; - } - - /*! - * @brief This function returns a reference to member TareDeviceID - * @return Reference to member TareDeviceID - */ - eProsima_user_DllExport int32_t& TareDeviceID() - { - return m_TareDeviceID; - } - - - /*! - * @brief This function copies the value in member TareDeviceName - * @param _TareDeviceName New value to be copied in member TareDeviceName - */ - eProsima_user_DllExport void TareDeviceName( - const std::string& _TareDeviceName) - { - m_TareDeviceName = _TareDeviceName; - } - - /*! - * @brief This function moves the value in member TareDeviceName - * @param _TareDeviceName New value to be moved in member TareDeviceName - */ - eProsima_user_DllExport void TareDeviceName( - std::string&& _TareDeviceName) - { - m_TareDeviceName = std::move(_TareDeviceName); - } - - /*! - * @brief This function returns a constant reference to member TareDeviceName - * @return Constant reference to member TareDeviceName - */ - eProsima_user_DllExport const std::string& TareDeviceName() const - { - return m_TareDeviceName; - } - - /*! - * @brief This function returns a reference to member TareDeviceName - * @return Reference to member TareDeviceName - */ - eProsima_user_DllExport std::string& TareDeviceName() - { - return m_TareDeviceName; - } - - - /*! - * @brief This function copies the value in member TareDeviceType - * @param _TareDeviceType New value to be copied in member TareDeviceType - */ - eProsima_user_DllExport void TareDeviceType( - const std::string& _TareDeviceType) - { - m_TareDeviceType = _TareDeviceType; - } - - /*! - * @brief This function moves the value in member TareDeviceType - * @param _TareDeviceType New value to be moved in member TareDeviceType - */ - eProsima_user_DllExport void TareDeviceType( - std::string&& _TareDeviceType) - { - m_TareDeviceType = std::move(_TareDeviceType); - } - - /*! - * @brief This function returns a constant reference to member TareDeviceType - * @return Constant reference to member TareDeviceType - */ - eProsima_user_DllExport const std::string& TareDeviceType() const - { - return m_TareDeviceType; - } - - /*! - * @brief This function returns a reference to member TareDeviceType - * @return Reference to member TareDeviceType - */ - eProsima_user_DllExport std::string& TareDeviceType() - { - return m_TareDeviceType; - } - - - /*! - * @brief This function copies the value in member EnterpriseName - * @param _EnterpriseName New value to be copied in member EnterpriseName - */ - eProsima_user_DllExport void EnterpriseName( - const std::string& _EnterpriseName) - { - m_EnterpriseName = _EnterpriseName; - } - - /*! - * @brief This function moves the value in member EnterpriseName - * @param _EnterpriseName New value to be moved in member EnterpriseName - */ - eProsima_user_DllExport void EnterpriseName( - std::string&& _EnterpriseName) - { - m_EnterpriseName = std::move(_EnterpriseName); - } - - /*! - * @brief This function returns a constant reference to member EnterpriseName - * @return Constant reference to member EnterpriseName - */ - eProsima_user_DllExport const std::string& EnterpriseName() const - { - return m_EnterpriseName; - } - - /*! - * @brief This function returns a reference to member EnterpriseName - * @return Reference to member EnterpriseName - */ - eProsima_user_DllExport std::string& EnterpriseName() - { - return m_EnterpriseName; - } - - - /*! - * @brief This function copies the value in member BillNumber - * @param _BillNumber New value to be copied in member BillNumber - */ - eProsima_user_DllExport void BillNumber( - const std::string& _BillNumber) - { - m_BillNumber = _BillNumber; - } - - /*! - * @brief This function moves the value in member BillNumber - * @param _BillNumber New value to be moved in member BillNumber - */ - eProsima_user_DllExport void BillNumber( - std::string&& _BillNumber) - { - m_BillNumber = std::move(_BillNumber); - } - - /*! - * @brief This function returns a constant reference to member BillNumber - * @return Constant reference to member BillNumber - */ - eProsima_user_DllExport const std::string& BillNumber() const - { - return m_BillNumber; - } - - /*! - * @brief This function returns a reference to member BillNumber - * @return Reference to member BillNumber - */ - eProsima_user_DllExport std::string& BillNumber() - { - return m_BillNumber; - } - - - /*! - * @brief This function copies the value in member CarNumber - * @param _CarNumber New value to be copied in member CarNumber - */ - eProsima_user_DllExport void CarNumber( - const std::string& _CarNumber) - { - m_CarNumber = _CarNumber; - } - - /*! - * @brief This function moves the value in member CarNumber - * @param _CarNumber New value to be moved in member CarNumber - */ - eProsima_user_DllExport void CarNumber( - std::string&& _CarNumber) - { - m_CarNumber = std::move(_CarNumber); - } - - /*! - * @brief This function returns a constant reference to member CarNumber - * @return Constant reference to member CarNumber - */ - eProsima_user_DllExport const std::string& CarNumber() const - { - return m_CarNumber; - } - - /*! - * @brief This function returns a reference to member CarNumber - * @return Reference to member CarNumber - */ - eProsima_user_DllExport std::string& CarNumber() - { - return m_CarNumber; - } - - - /*! - * @brief This function copies the value in member Supplier - * @param _Supplier New value to be copied in member Supplier - */ - eProsima_user_DllExport void Supplier( - const std::string& _Supplier) - { - m_Supplier = _Supplier; - } - - /*! - * @brief This function moves the value in member Supplier - * @param _Supplier New value to be moved in member Supplier - */ - eProsima_user_DllExport void Supplier( - std::string&& _Supplier) - { - m_Supplier = std::move(_Supplier); - } - - /*! - * @brief This function returns a constant reference to member Supplier - * @return Constant reference to member Supplier - */ - eProsima_user_DllExport const std::string& Supplier() const - { - return m_Supplier; - } - - /*! - * @brief This function returns a reference to member Supplier - * @return Reference to member Supplier - */ - eProsima_user_DllExport std::string& Supplier() - { - return m_Supplier; - } - - - /*! - * @brief This function copies the value in member GoodsType - * @param _GoodsType New value to be copied in member GoodsType - */ - eProsima_user_DllExport void GoodsType( - const std::string& _GoodsType) - { - m_GoodsType = _GoodsType; - } - - /*! - * @brief This function moves the value in member GoodsType - * @param _GoodsType New value to be moved in member GoodsType - */ - eProsima_user_DllExport void GoodsType( - std::string&& _GoodsType) - { - m_GoodsType = std::move(_GoodsType); - } - - /*! - * @brief This function returns a constant reference to member GoodsType - * @return Constant reference to member GoodsType - */ - eProsima_user_DllExport const std::string& GoodsType() const - { - return m_GoodsType; - } - - /*! - * @brief This function returns a reference to member GoodsType - * @return Reference to member GoodsType - */ - eProsima_user_DllExport std::string& GoodsType() - { - return m_GoodsType; - } - - - /*! - * @brief This function sets a value in member GrossWeight - * @param _GrossWeight New value for member GrossWeight - */ - eProsima_user_DllExport void GrossWeight( - float _GrossWeight) - { - m_GrossWeight = _GrossWeight; - } - - /*! - * @brief This function returns the value of member GrossWeight - * @return Value of member GrossWeight - */ - eProsima_user_DllExport float GrossWeight() const - { - return m_GrossWeight; - } - - /*! - * @brief This function returns a reference to member GrossWeight - * @return Reference to member GrossWeight - */ - eProsima_user_DllExport float& GrossWeight() - { - return m_GrossWeight; - } - - - /*! - * @brief This function copies the value in member GrossTime - * @param _GrossTime New value to be copied in member GrossTime - */ - eProsima_user_DllExport void GrossTime( - const std::string& _GrossTime) - { - m_GrossTime = _GrossTime; - } - - /*! - * @brief This function moves the value in member GrossTime - * @param _GrossTime New value to be moved in member GrossTime - */ - eProsima_user_DllExport void GrossTime( - std::string&& _GrossTime) - { - m_GrossTime = std::move(_GrossTime); - } - - /*! - * @brief This function returns a constant reference to member GrossTime - * @return Constant reference to member GrossTime - */ - eProsima_user_DllExport const std::string& GrossTime() const - { - return m_GrossTime; - } - - /*! - * @brief This function returns a reference to member GrossTime - * @return Reference to member GrossTime - */ - eProsima_user_DllExport std::string& GrossTime() - { - return m_GrossTime; - } - - - /*! - * @brief This function copies the value in member GrossOperater - * @param _GrossOperater New value to be copied in member GrossOperater - */ - eProsima_user_DllExport void GrossOperater( - const std::string& _GrossOperater) - { - m_GrossOperater = _GrossOperater; - } - - /*! - * @brief This function moves the value in member GrossOperater - * @param _GrossOperater New value to be moved in member GrossOperater - */ - eProsima_user_DllExport void GrossOperater( - std::string&& _GrossOperater) - { - m_GrossOperater = std::move(_GrossOperater); - } - - /*! - * @brief This function returns a constant reference to member GrossOperater - * @return Constant reference to member GrossOperater - */ - eProsima_user_DllExport const std::string& GrossOperater() const - { - return m_GrossOperater; - } - - /*! - * @brief This function returns a reference to member GrossOperater - * @return Reference to member GrossOperater - */ - eProsima_user_DllExport std::string& GrossOperater() - { - return m_GrossOperater; - } - - - /*! - * @brief This function sets a value in member Tare - * @param _Tare New value for member Tare - */ - eProsima_user_DllExport void Tare( - float _Tare) - { - m_Tare = _Tare; - } - - /*! - * @brief This function returns the value of member Tare - * @return Value of member Tare - */ - eProsima_user_DllExport float Tare() const - { - return m_Tare; - } - - /*! - * @brief This function returns a reference to member Tare - * @return Reference to member Tare - */ - eProsima_user_DllExport float& Tare() - { - return m_Tare; - } - - - /*! - * @brief This function copies the value in member TareTime - * @param _TareTime New value to be copied in member TareTime - */ - eProsima_user_DllExport void TareTime( - const std::string& _TareTime) - { - m_TareTime = _TareTime; - } - - /*! - * @brief This function moves the value in member TareTime - * @param _TareTime New value to be moved in member TareTime - */ - eProsima_user_DllExport void TareTime( - std::string&& _TareTime) - { - m_TareTime = std::move(_TareTime); - } - - /*! - * @brief This function returns a constant reference to member TareTime - * @return Constant reference to member TareTime - */ - eProsima_user_DllExport const std::string& TareTime() const - { - return m_TareTime; - } - - /*! - * @brief This function returns a reference to member TareTime - * @return Reference to member TareTime - */ - eProsima_user_DllExport std::string& TareTime() - { - return m_TareTime; - } - - - /*! - * @brief This function copies the value in member TareOperater - * @param _TareOperater New value to be copied in member TareOperater - */ - eProsima_user_DllExport void TareOperater( - const std::string& _TareOperater) - { - m_TareOperater = _TareOperater; - } - - /*! - * @brief This function moves the value in member TareOperater - * @param _TareOperater New value to be moved in member TareOperater - */ - eProsima_user_DllExport void TareOperater( - std::string&& _TareOperater) - { - m_TareOperater = std::move(_TareOperater); - } - - /*! - * @brief This function returns a constant reference to member TareOperater - * @return Constant reference to member TareOperater - */ - eProsima_user_DllExport const std::string& TareOperater() const - { - return m_TareOperater; - } - - /*! - * @brief This function returns a reference to member TareOperater - * @return Reference to member TareOperater - */ - eProsima_user_DllExport std::string& TareOperater() - { - return m_TareOperater; - } - - - /*! - * @brief This function sets a value in member Suttle - * @param _Suttle New value for member Suttle - */ - eProsima_user_DllExport void Suttle( - float _Suttle) - { - m_Suttle = _Suttle; - } - - /*! - * @brief This function returns the value of member Suttle - * @return Value of member Suttle - */ - eProsima_user_DllExport float Suttle() const - { - return m_Suttle; - } - - /*! - * @brief This function returns a reference to member Suttle - * @return Reference to member Suttle - */ - eProsima_user_DllExport float& Suttle() - { - return m_Suttle; - } - - - /*! - * @brief This function sets a value in member duduction1 - * @param _duduction1 New value for member duduction1 - */ - eProsima_user_DllExport void duduction1( - float _duduction1) - { - m_duduction1 = _duduction1; - } - - /*! - * @brief This function returns the value of member duduction1 - * @return Value of member duduction1 - */ - eProsima_user_DllExport float duduction1() const - { - return m_duduction1; - } - - /*! - * @brief This function returns a reference to member duduction1 - * @return Reference to member duduction1 - */ - eProsima_user_DllExport float& duduction1() - { - return m_duduction1; - } - - - /*! - * @brief This function sets a value in member duduction2 - * @param _duduction2 New value for member duduction2 - */ - eProsima_user_DllExport void duduction2( - float _duduction2) - { - m_duduction2 = _duduction2; - } - - /*! - * @brief This function returns the value of member duduction2 - * @return Value of member duduction2 - */ - eProsima_user_DllExport float duduction2() const - { - return m_duduction2; - } - - /*! - * @brief This function returns a reference to member duduction2 - * @return Reference to member duduction2 - */ - eProsima_user_DllExport float& duduction2() - { - return m_duduction2; - } - - - /*! - * @brief This function sets a value in member duduction3 - * @param _duduction3 New value for member duduction3 - */ - eProsima_user_DllExport void duduction3( - float _duduction3) - { - m_duduction3 = _duduction3; - } - - /*! - * @brief This function returns the value of member duduction3 - * @return Value of member duduction3 - */ - eProsima_user_DllExport float duduction3() const - { - return m_duduction3; - } - - /*! - * @brief This function returns a reference to member duduction3 - * @return Reference to member duduction3 - */ - eProsima_user_DllExport float& duduction3() - { - return m_duduction3; - } - - - /*! - * @brief This function copies the value in member INCoalYard - * @param _INCoalYard New value to be copied in member INCoalYard - */ - eProsima_user_DllExport void INCoalYard( - const std::string& _INCoalYard) - { - m_INCoalYard = _INCoalYard; - } - - /*! - * @brief This function moves the value in member INCoalYard - * @param _INCoalYard New value to be moved in member INCoalYard - */ - eProsima_user_DllExport void INCoalYard( - std::string&& _INCoalYard) - { - m_INCoalYard = std::move(_INCoalYard); - } - - /*! - * @brief This function returns a constant reference to member INCoalYard - * @return Constant reference to member INCoalYard - */ - eProsima_user_DllExport const std::string& INCoalYard() const - { - return m_INCoalYard; - } - - /*! - * @brief This function returns a reference to member INCoalYard - * @return Reference to member INCoalYard - */ - eProsima_user_DllExport std::string& INCoalYard() - { - return m_INCoalYard; - } - - - /*! - * @brief This function copies the value in member OutCoalYard - * @param _OutCoalYard New value to be copied in member OutCoalYard - */ - eProsima_user_DllExport void OutCoalYard( - const std::string& _OutCoalYard) - { - m_OutCoalYard = _OutCoalYard; - } - - /*! - * @brief This function moves the value in member OutCoalYard - * @param _OutCoalYard New value to be moved in member OutCoalYard - */ - eProsima_user_DllExport void OutCoalYard( - std::string&& _OutCoalYard) - { - m_OutCoalYard = std::move(_OutCoalYard); - } - - /*! - * @brief This function returns a constant reference to member OutCoalYard - * @return Constant reference to member OutCoalYard - */ - eProsima_user_DllExport const std::string& OutCoalYard() const - { - return m_OutCoalYard; - } - - /*! - * @brief This function returns a reference to member OutCoalYard - * @return Reference to member OutCoalYard - */ - eProsima_user_DllExport std::string& OutCoalYard() - { - return m_OutCoalYard; - } - - - /*! - * @brief This function copies the value in member BatchNumber - * @param _BatchNumber New value to be copied in member BatchNumber - */ - eProsima_user_DllExport void BatchNumber( - const std::string& _BatchNumber) - { - m_BatchNumber = _BatchNumber; - } - - /*! - * @brief This function moves the value in member BatchNumber - * @param _BatchNumber New value to be moved in member BatchNumber - */ - eProsima_user_DllExport void BatchNumber( - std::string&& _BatchNumber) - { - m_BatchNumber = std::move(_BatchNumber); - } - - /*! - * @brief This function returns a constant reference to member BatchNumber - * @return Constant reference to member BatchNumber - */ - eProsima_user_DllExport const std::string& BatchNumber() const - { - return m_BatchNumber; - } - - /*! - * @brief This function returns a reference to member BatchNumber - * @return Reference to member BatchNumber - */ - eProsima_user_DllExport std::string& BatchNumber() - { - return m_BatchNumber; - } - - - /*! - * @brief This function copies the value in member Warning - * @param _Warning New value to be copied in member Warning - */ - eProsima_user_DllExport void Warning( - const std::string& _Warning) - { - m_Warning = _Warning; - } - - /*! - * @brief This function moves the value in member Warning - * @param _Warning New value to be moved in member Warning - */ - eProsima_user_DllExport void Warning( - std::string&& _Warning) - { - m_Warning = std::move(_Warning); - } - - /*! - * @brief This function returns a constant reference to member Warning - * @return Constant reference to member Warning - */ - eProsima_user_DllExport const std::string& Warning() const - { - return m_Warning; - } - - /*! - * @brief This function returns a reference to member Warning - * @return Reference to member Warning - */ - eProsima_user_DllExport std::string& Warning() - { - return m_Warning; - } - - - /*! - * @brief This function copies the value in member Tips - * @param _Tips New value to be copied in member Tips - */ - eProsima_user_DllExport void Tips( - const std::string& _Tips) - { - m_Tips = _Tips; - } - - /*! - * @brief This function moves the value in member Tips - * @param _Tips New value to be moved in member Tips - */ - eProsima_user_DllExport void Tips( - std::string&& _Tips) - { - m_Tips = std::move(_Tips); - } - - /*! - * @brief This function returns a constant reference to member Tips - * @return Constant reference to member Tips - */ - eProsima_user_DllExport const std::string& Tips() const - { - return m_Tips; - } - - /*! - * @brief This function returns a reference to member Tips - * @return Reference to member Tips - */ - eProsima_user_DllExport std::string& Tips() - { - return m_Tips; - } - - - /*! - * @brief This function copies the value in member TicketType - * @param _TicketType New value to be copied in member TicketType - */ - eProsima_user_DllExport void TicketType( - const std::string& _TicketType) - { - m_TicketType = _TicketType; - } - - /*! - * @brief This function moves the value in member TicketType - * @param _TicketType New value to be moved in member TicketType - */ - eProsima_user_DllExport void TicketType( - std::string&& _TicketType) - { - m_TicketType = std::move(_TicketType); - } - - /*! - * @brief This function returns a constant reference to member TicketType - * @return Constant reference to member TicketType - */ - eProsima_user_DllExport const std::string& TicketType() const - { - return m_TicketType; - } - - /*! - * @brief This function returns a reference to member TicketType - * @return Reference to member TicketType - */ - eProsima_user_DllExport std::string& TicketType() - { - return m_TicketType; - } - - - /*! - * @brief This function sets a value in member IsPrintTicker - * @param _IsPrintTicker New value for member IsPrintTicker - */ - eProsima_user_DllExport void IsPrintTicker( - bool _IsPrintTicker) - { - m_IsPrintTicker = _IsPrintTicker; - } - - /*! - * @brief This function returns the value of member IsPrintTicker - * @return Value of member IsPrintTicker - */ - eProsima_user_DllExport bool IsPrintTicker() const - { - return m_IsPrintTicker; - } - - /*! - * @brief This function returns a reference to member IsPrintTicker - * @return Reference to member IsPrintTicker - */ - eProsima_user_DllExport bool& IsPrintTicker() - { - return m_IsPrintTicker; - } - - - -private: - - int32_t m_GrossDeviceID{0}; - std::string m_GrossDeviceName; - std::string m_GrossDeviceType; - int32_t m_TareDeviceID{0}; - std::string m_TareDeviceName; - std::string m_TareDeviceType; - std::string m_EnterpriseName; - std::string m_BillNumber; - std::string m_CarNumber; - std::string m_Supplier; - std::string m_GoodsType; - float m_GrossWeight{0.0}; - std::string m_GrossTime; - std::string m_GrossOperater; - float m_Tare{0.0}; - std::string m_TareTime; - std::string m_TareOperater; - float m_Suttle{0.0}; - float m_duduction1{0.0}; - float m_duduction2{0.0}; - float m_duduction3{0.0}; - std::string m_INCoalYard; - std::string m_OutCoalYard; - std::string m_BatchNumber; - std::string m_Warning; - std::string m_Tips; - std::string m_TicketType; - bool m_IsPrintTicker{false}; - -}; -/*! - * @brief This class represents the structure WeightInfoError defined by the user in the IDL file. - * @ingroup System - */ -class WeightInfoError -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport WeightInfoError() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~WeightInfoError() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object WeightInfoError that will be copied. - */ - eProsima_user_DllExport WeightInfoError( - const WeightInfoError& x) - { - m_CarNumber = x.m_CarNumber; - - m_Warning = x.m_Warning; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object WeightInfoError that will be copied. - */ - eProsima_user_DllExport WeightInfoError( - WeightInfoError&& x) noexcept - { - m_CarNumber = std::move(x.m_CarNumber); - m_Warning = std::move(x.m_Warning); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object WeightInfoError that will be copied. - */ - eProsima_user_DllExport WeightInfoError& operator =( - const WeightInfoError& x) - { - - m_CarNumber = x.m_CarNumber; - - m_Warning = x.m_Warning; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object WeightInfoError that will be copied. - */ - eProsima_user_DllExport WeightInfoError& operator =( - WeightInfoError&& x) noexcept - { - - m_CarNumber = std::move(x.m_CarNumber); - m_Warning = std::move(x.m_Warning); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x WeightInfoError object to compare. - */ - eProsima_user_DllExport bool operator ==( - const WeightInfoError& x) const - { - return (m_CarNumber == x.m_CarNumber && - m_Warning == x.m_Warning); - } - - /*! - * @brief Comparison operator. - * @param x WeightInfoError object to compare. - */ - eProsima_user_DllExport bool operator !=( - const WeightInfoError& x) const - { - return !(*this == x); - } - - /*! - * @brief This function copies the value in member CarNumber - * @param _CarNumber New value to be copied in member CarNumber - */ - eProsima_user_DllExport void CarNumber( - const std::string& _CarNumber) - { - m_CarNumber = _CarNumber; - } - - /*! - * @brief This function moves the value in member CarNumber - * @param _CarNumber New value to be moved in member CarNumber - */ - eProsima_user_DllExport void CarNumber( - std::string&& _CarNumber) - { - m_CarNumber = std::move(_CarNumber); - } - - /*! - * @brief This function returns a constant reference to member CarNumber - * @return Constant reference to member CarNumber - */ - eProsima_user_DllExport const std::string& CarNumber() const - { - return m_CarNumber; - } - - /*! - * @brief This function returns a reference to member CarNumber - * @return Reference to member CarNumber - */ - eProsima_user_DllExport std::string& CarNumber() - { - return m_CarNumber; - } - - - /*! - * @brief This function copies the value in member Warning - * @param _Warning New value to be copied in member Warning - */ - eProsima_user_DllExport void Warning( - const std::string& _Warning) - { - m_Warning = _Warning; - } - - /*! - * @brief This function moves the value in member Warning - * @param _Warning New value to be moved in member Warning - */ - eProsima_user_DllExport void Warning( - std::string&& _Warning) - { - m_Warning = std::move(_Warning); - } - - /*! - * @brief This function returns a constant reference to member Warning - * @return Constant reference to member Warning - */ - eProsima_user_DllExport const std::string& Warning() const - { - return m_Warning; - } - - /*! - * @brief This function returns a reference to member Warning - * @return Reference to member Warning - */ - eProsima_user_DllExport std::string& Warning() - { - return m_Warning; - } - - - -private: - - std::string m_CarNumber; - std::string m_Warning; - -}; -/*! - * @brief This class represents the structure BarCommandUpdate defined by the user in the IDL file. - * @ingroup System - */ -class BarCommandUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport BarCommandUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~BarCommandUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object BarCommandUpdate that will be copied. - */ - eProsima_user_DllExport BarCommandUpdate( - const BarCommandUpdate& x) - { - m_FrontBarSignalUp = x.m_FrontBarSignalUp; - - m_FrontBarSignalDown = x.m_FrontBarSignalDown; - - m_FrontBarEnable = x.m_FrontBarEnable; - - m_BackBarSignalUp = x.m_BackBarSignalUp; - - m_BackBarSignalDown = x.m_BackBarSignalDown; - - m_BackBarEnable = x.m_BackBarEnable; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object BarCommandUpdate that will be copied. - */ - eProsima_user_DllExport BarCommandUpdate( - BarCommandUpdate&& x) noexcept - { - m_FrontBarSignalUp = x.m_FrontBarSignalUp; - m_FrontBarSignalDown = x.m_FrontBarSignalDown; - m_FrontBarEnable = x.m_FrontBarEnable; - m_BackBarSignalUp = x.m_BackBarSignalUp; - m_BackBarSignalDown = x.m_BackBarSignalDown; - m_BackBarEnable = x.m_BackBarEnable; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object BarCommandUpdate that will be copied. - */ - eProsima_user_DllExport BarCommandUpdate& operator =( - const BarCommandUpdate& x) - { - - m_FrontBarSignalUp = x.m_FrontBarSignalUp; - - m_FrontBarSignalDown = x.m_FrontBarSignalDown; - - m_FrontBarEnable = x.m_FrontBarEnable; - - m_BackBarSignalUp = x.m_BackBarSignalUp; - - m_BackBarSignalDown = x.m_BackBarSignalDown; - - m_BackBarEnable = x.m_BackBarEnable; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object BarCommandUpdate that will be copied. - */ - eProsima_user_DllExport BarCommandUpdate& operator =( - BarCommandUpdate&& x) noexcept - { - - m_FrontBarSignalUp = x.m_FrontBarSignalUp; - m_FrontBarSignalDown = x.m_FrontBarSignalDown; - m_FrontBarEnable = x.m_FrontBarEnable; - m_BackBarSignalUp = x.m_BackBarSignalUp; - m_BackBarSignalDown = x.m_BackBarSignalDown; - m_BackBarEnable = x.m_BackBarEnable; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x BarCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const BarCommandUpdate& x) const - { - return (m_FrontBarSignalUp == x.m_FrontBarSignalUp && - m_FrontBarSignalDown == x.m_FrontBarSignalDown && - m_FrontBarEnable == x.m_FrontBarEnable && - m_BackBarSignalUp == x.m_BackBarSignalUp && - m_BackBarSignalDown == x.m_BackBarSignalDown && - m_BackBarEnable == x.m_BackBarEnable); - } - - /*! - * @brief Comparison operator. - * @param x BarCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const BarCommandUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontBarSignalUp - * @param _FrontBarSignalUp New value for member FrontBarSignalUp - */ - eProsima_user_DllExport void FrontBarSignalUp( - int32_t _FrontBarSignalUp) - { - m_FrontBarSignalUp = _FrontBarSignalUp; - } - - /*! - * @brief This function returns the value of member FrontBarSignalUp - * @return Value of member FrontBarSignalUp - */ - eProsima_user_DllExport int32_t FrontBarSignalUp() const - { - return m_FrontBarSignalUp; - } - - /*! - * @brief This function returns a reference to member FrontBarSignalUp - * @return Reference to member FrontBarSignalUp - */ - eProsima_user_DllExport int32_t& FrontBarSignalUp() - { - return m_FrontBarSignalUp; - } - - - /*! - * @brief This function sets a value in member FrontBarSignalDown - * @param _FrontBarSignalDown New value for member FrontBarSignalDown - */ - eProsima_user_DllExport void FrontBarSignalDown( - int32_t _FrontBarSignalDown) - { - m_FrontBarSignalDown = _FrontBarSignalDown; - } - - /*! - * @brief This function returns the value of member FrontBarSignalDown - * @return Value of member FrontBarSignalDown - */ - eProsima_user_DllExport int32_t FrontBarSignalDown() const - { - return m_FrontBarSignalDown; - } - - /*! - * @brief This function returns a reference to member FrontBarSignalDown - * @return Reference to member FrontBarSignalDown - */ - eProsima_user_DllExport int32_t& FrontBarSignalDown() - { - return m_FrontBarSignalDown; - } - - - /*! - * @brief This function sets a value in member FrontBarEnable - * @param _FrontBarEnable New value for member FrontBarEnable - */ - eProsima_user_DllExport void FrontBarEnable( - bool _FrontBarEnable) - { - m_FrontBarEnable = _FrontBarEnable; - } - - /*! - * @brief This function returns the value of member FrontBarEnable - * @return Value of member FrontBarEnable - */ - eProsima_user_DllExport bool FrontBarEnable() const - { - return m_FrontBarEnable; - } - - /*! - * @brief This function returns a reference to member FrontBarEnable - * @return Reference to member FrontBarEnable - */ - eProsima_user_DllExport bool& FrontBarEnable() - { - return m_FrontBarEnable; - } - - - /*! - * @brief This function sets a value in member BackBarSignalUp - * @param _BackBarSignalUp New value for member BackBarSignalUp - */ - eProsima_user_DllExport void BackBarSignalUp( - int32_t _BackBarSignalUp) - { - m_BackBarSignalUp = _BackBarSignalUp; - } - - /*! - * @brief This function returns the value of member BackBarSignalUp - * @return Value of member BackBarSignalUp - */ - eProsima_user_DllExport int32_t BackBarSignalUp() const - { - return m_BackBarSignalUp; - } - - /*! - * @brief This function returns a reference to member BackBarSignalUp - * @return Reference to member BackBarSignalUp - */ - eProsima_user_DllExport int32_t& BackBarSignalUp() - { - return m_BackBarSignalUp; - } - - - /*! - * @brief This function sets a value in member BackBarSignalDown - * @param _BackBarSignalDown New value for member BackBarSignalDown - */ - eProsima_user_DllExport void BackBarSignalDown( - int32_t _BackBarSignalDown) - { - m_BackBarSignalDown = _BackBarSignalDown; - } - - /*! - * @brief This function returns the value of member BackBarSignalDown - * @return Value of member BackBarSignalDown - */ - eProsima_user_DllExport int32_t BackBarSignalDown() const - { - return m_BackBarSignalDown; - } - - /*! - * @brief This function returns a reference to member BackBarSignalDown - * @return Reference to member BackBarSignalDown - */ - eProsima_user_DllExport int32_t& BackBarSignalDown() - { - return m_BackBarSignalDown; - } - - - /*! - * @brief This function sets a value in member BackBarEnable - * @param _BackBarEnable New value for member BackBarEnable - */ - eProsima_user_DllExport void BackBarEnable( - bool _BackBarEnable) - { - m_BackBarEnable = _BackBarEnable; - } - - /*! - * @brief This function returns the value of member BackBarEnable - * @return Value of member BackBarEnable - */ - eProsima_user_DllExport bool BackBarEnable() const - { - return m_BackBarEnable; - } - - /*! - * @brief This function returns a reference to member BackBarEnable - * @return Reference to member BackBarEnable - */ - eProsima_user_DllExport bool& BackBarEnable() - { - return m_BackBarEnable; - } - - - -private: - - int32_t m_FrontBarSignalUp{0}; - int32_t m_FrontBarSignalDown{0}; - bool m_FrontBarEnable{false}; - int32_t m_BackBarSignalUp{0}; - int32_t m_BackBarSignalDown{0}; - bool m_BackBarEnable{false}; - -}; -/*! - * @brief This class represents the structure LightsCommandUpdate defined by the user in the IDL file. - * @ingroup System - */ -class LightsCommandUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport LightsCommandUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~LightsCommandUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object LightsCommandUpdate that will be copied. - */ - eProsima_user_DllExport LightsCommandUpdate( - const LightsCommandUpdate& x) - { - m_FrontLEDSignal = x.m_FrontLEDSignal; - - m_FrontLEDEnable = x.m_FrontLEDEnable; - - m_BackLEDSignal = x.m_BackLEDSignal; - - m_BackLEDEnable = x.m_BackLEDEnable; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object LightsCommandUpdate that will be copied. - */ - eProsima_user_DllExport LightsCommandUpdate( - LightsCommandUpdate&& x) noexcept - { - m_FrontLEDSignal = x.m_FrontLEDSignal; - m_FrontLEDEnable = x.m_FrontLEDEnable; - m_BackLEDSignal = x.m_BackLEDSignal; - m_BackLEDEnable = x.m_BackLEDEnable; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object LightsCommandUpdate that will be copied. - */ - eProsima_user_DllExport LightsCommandUpdate& operator =( - const LightsCommandUpdate& x) - { - - m_FrontLEDSignal = x.m_FrontLEDSignal; - - m_FrontLEDEnable = x.m_FrontLEDEnable; - - m_BackLEDSignal = x.m_BackLEDSignal; - - m_BackLEDEnable = x.m_BackLEDEnable; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object LightsCommandUpdate that will be copied. - */ - eProsima_user_DllExport LightsCommandUpdate& operator =( - LightsCommandUpdate&& x) noexcept - { - - m_FrontLEDSignal = x.m_FrontLEDSignal; - m_FrontLEDEnable = x.m_FrontLEDEnable; - m_BackLEDSignal = x.m_BackLEDSignal; - m_BackLEDEnable = x.m_BackLEDEnable; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x LightsCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const LightsCommandUpdate& x) const - { - return (m_FrontLEDSignal == x.m_FrontLEDSignal && - m_FrontLEDEnable == x.m_FrontLEDEnable && - m_BackLEDSignal == x.m_BackLEDSignal && - m_BackLEDEnable == x.m_BackLEDEnable); - } - - /*! - * @brief Comparison operator. - * @param x LightsCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const LightsCommandUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontLEDSignal - * @param _FrontLEDSignal New value for member FrontLEDSignal - */ - eProsima_user_DllExport void FrontLEDSignal( - int32_t _FrontLEDSignal) - { - m_FrontLEDSignal = _FrontLEDSignal; - } - - /*! - * @brief This function returns the value of member FrontLEDSignal - * @return Value of member FrontLEDSignal - */ - eProsima_user_DllExport int32_t FrontLEDSignal() const - { - return m_FrontLEDSignal; - } - - /*! - * @brief This function returns a reference to member FrontLEDSignal - * @return Reference to member FrontLEDSignal - */ - eProsima_user_DllExport int32_t& FrontLEDSignal() - { - return m_FrontLEDSignal; - } - - - /*! - * @brief This function sets a value in member FrontLEDEnable - * @param _FrontLEDEnable New value for member FrontLEDEnable - */ - eProsima_user_DllExport void FrontLEDEnable( - bool _FrontLEDEnable) - { - m_FrontLEDEnable = _FrontLEDEnable; - } - - /*! - * @brief This function returns the value of member FrontLEDEnable - * @return Value of member FrontLEDEnable - */ - eProsima_user_DllExport bool FrontLEDEnable() const - { - return m_FrontLEDEnable; - } - - /*! - * @brief This function returns a reference to member FrontLEDEnable - * @return Reference to member FrontLEDEnable - */ - eProsima_user_DllExport bool& FrontLEDEnable() - { - return m_FrontLEDEnable; - } - - - /*! - * @brief This function sets a value in member BackLEDSignal - * @param _BackLEDSignal New value for member BackLEDSignal - */ - eProsima_user_DllExport void BackLEDSignal( - int32_t _BackLEDSignal) - { - m_BackLEDSignal = _BackLEDSignal; - } - - /*! - * @brief This function returns the value of member BackLEDSignal - * @return Value of member BackLEDSignal - */ - eProsima_user_DllExport int32_t BackLEDSignal() const - { - return m_BackLEDSignal; - } - - /*! - * @brief This function returns a reference to member BackLEDSignal - * @return Reference to member BackLEDSignal - */ - eProsima_user_DllExport int32_t& BackLEDSignal() - { - return m_BackLEDSignal; - } - - - /*! - * @brief This function sets a value in member BackLEDEnable - * @param _BackLEDEnable New value for member BackLEDEnable - */ - eProsima_user_DllExport void BackLEDEnable( - int32_t _BackLEDEnable) - { - m_BackLEDEnable = _BackLEDEnable; - } - - /*! - * @brief This function returns the value of member BackLEDEnable - * @return Value of member BackLEDEnable - */ - eProsima_user_DllExport int32_t BackLEDEnable() const - { - return m_BackLEDEnable; - } - - /*! - * @brief This function returns a reference to member BackLEDEnable - * @return Reference to member BackLEDEnable - */ - eProsima_user_DllExport int32_t& BackLEDEnable() - { - return m_BackLEDEnable; - } - - - -private: - - int32_t m_FrontLEDSignal{0}; - bool m_FrontLEDEnable{false}; - int32_t m_BackLEDSignal{0}; - int32_t m_BackLEDEnable{0}; - -}; -/*! - * @brief This class represents the structure InfraredCommandUpdate defined by the user in the IDL file. - * @ingroup System - */ -class InfraredCommandUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport InfraredCommandUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~InfraredCommandUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object InfraredCommandUpdate that will be copied. - */ - eProsima_user_DllExport InfraredCommandUpdate( - const InfraredCommandUpdate& x) - { - m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; - - m_FrontResistanceEnable = x.m_FrontResistanceEnable; - - m_BackResistanceUnLock = x.m_BackResistanceUnLock; - - m_BackResistanceEnable = x.m_BackResistanceEnable; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object InfraredCommandUpdate that will be copied. - */ - eProsima_user_DllExport InfraredCommandUpdate( - InfraredCommandUpdate&& x) noexcept - { - m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; - m_FrontResistanceEnable = x.m_FrontResistanceEnable; - m_BackResistanceUnLock = x.m_BackResistanceUnLock; - m_BackResistanceEnable = x.m_BackResistanceEnable; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object InfraredCommandUpdate that will be copied. - */ - eProsima_user_DllExport InfraredCommandUpdate& operator =( - const InfraredCommandUpdate& x) - { - - m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; - - m_FrontResistanceEnable = x.m_FrontResistanceEnable; - - m_BackResistanceUnLock = x.m_BackResistanceUnLock; - - m_BackResistanceEnable = x.m_BackResistanceEnable; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object InfraredCommandUpdate that will be copied. - */ - eProsima_user_DllExport InfraredCommandUpdate& operator =( - InfraredCommandUpdate&& x) noexcept - { - - m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; - m_FrontResistanceEnable = x.m_FrontResistanceEnable; - m_BackResistanceUnLock = x.m_BackResistanceUnLock; - m_BackResistanceEnable = x.m_BackResistanceEnable; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x InfraredCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const InfraredCommandUpdate& x) const - { - return (m_FrontResistanceUnLock == x.m_FrontResistanceUnLock && - m_FrontResistanceEnable == x.m_FrontResistanceEnable && - m_BackResistanceUnLock == x.m_BackResistanceUnLock && - m_BackResistanceEnable == x.m_BackResistanceEnable); - } - - /*! - * @brief Comparison operator. - * @param x InfraredCommandUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const InfraredCommandUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontResistanceUnLock - * @param _FrontResistanceUnLock New value for member FrontResistanceUnLock - */ - eProsima_user_DllExport void FrontResistanceUnLock( - int32_t _FrontResistanceUnLock) - { - m_FrontResistanceUnLock = _FrontResistanceUnLock; - } - - /*! - * @brief This function returns the value of member FrontResistanceUnLock - * @return Value of member FrontResistanceUnLock - */ - eProsima_user_DllExport int32_t FrontResistanceUnLock() const - { - return m_FrontResistanceUnLock; - } - - /*! - * @brief This function returns a reference to member FrontResistanceUnLock - * @return Reference to member FrontResistanceUnLock - */ - eProsima_user_DllExport int32_t& FrontResistanceUnLock() - { - return m_FrontResistanceUnLock; - } - - - /*! - * @brief This function sets a value in member FrontResistanceEnable - * @param _FrontResistanceEnable New value for member FrontResistanceEnable - */ - eProsima_user_DllExport void FrontResistanceEnable( - bool _FrontResistanceEnable) - { - m_FrontResistanceEnable = _FrontResistanceEnable; - } - - /*! - * @brief This function returns the value of member FrontResistanceEnable - * @return Value of member FrontResistanceEnable - */ - eProsima_user_DllExport bool FrontResistanceEnable() const - { - return m_FrontResistanceEnable; - } - - /*! - * @brief This function returns a reference to member FrontResistanceEnable - * @return Reference to member FrontResistanceEnable - */ - eProsima_user_DllExport bool& FrontResistanceEnable() - { - return m_FrontResistanceEnable; - } - - - /*! - * @brief This function sets a value in member BackResistanceUnLock - * @param _BackResistanceUnLock New value for member BackResistanceUnLock - */ - eProsima_user_DllExport void BackResistanceUnLock( - int32_t _BackResistanceUnLock) - { - m_BackResistanceUnLock = _BackResistanceUnLock; - } - - /*! - * @brief This function returns the value of member BackResistanceUnLock - * @return Value of member BackResistanceUnLock - */ - eProsima_user_DllExport int32_t BackResistanceUnLock() const - { - return m_BackResistanceUnLock; - } - - /*! - * @brief This function returns a reference to member BackResistanceUnLock - * @return Reference to member BackResistanceUnLock - */ - eProsima_user_DllExport int32_t& BackResistanceUnLock() - { - return m_BackResistanceUnLock; - } - - - /*! - * @brief This function sets a value in member BackResistanceEnable - * @param _BackResistanceEnable New value for member BackResistanceEnable - */ - eProsima_user_DllExport void BackResistanceEnable( - bool _BackResistanceEnable) - { - m_BackResistanceEnable = _BackResistanceEnable; - } - - /*! - * @brief This function returns the value of member BackResistanceEnable - * @return Value of member BackResistanceEnable - */ - eProsima_user_DllExport bool BackResistanceEnable() const - { - return m_BackResistanceEnable; - } - - /*! - * @brief This function returns a reference to member BackResistanceEnable - * @return Reference to member BackResistanceEnable - */ - eProsima_user_DllExport bool& BackResistanceEnable() - { - return m_BackResistanceEnable; - } - - - -private: - - int32_t m_FrontResistanceUnLock{0}; - bool m_FrontResistanceEnable{false}; - int32_t m_BackResistanceUnLock{0}; - bool m_BackResistanceEnable{false}; - -}; -/*! - * @brief This class represents the structure BarUpdate defined by the user in the IDL file. - * @ingroup System - */ -class BarUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport BarUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~BarUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object BarUpdate that will be copied. - */ - eProsima_user_DllExport BarUpdate( - const BarUpdate& x) - { - m_FrontBarState = x.m_FrontBarState; - - m_BackBarState = x.m_BackBarState; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object BarUpdate that will be copied. - */ - eProsima_user_DllExport BarUpdate( - BarUpdate&& x) noexcept - { - m_FrontBarState = x.m_FrontBarState; - m_BackBarState = x.m_BackBarState; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object BarUpdate that will be copied. - */ - eProsima_user_DllExport BarUpdate& operator =( - const BarUpdate& x) - { - - m_FrontBarState = x.m_FrontBarState; - - m_BackBarState = x.m_BackBarState; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object BarUpdate that will be copied. - */ - eProsima_user_DllExport BarUpdate& operator =( - BarUpdate&& x) noexcept - { - - m_FrontBarState = x.m_FrontBarState; - m_BackBarState = x.m_BackBarState; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x BarUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const BarUpdate& x) const - { - return (m_FrontBarState == x.m_FrontBarState && - m_BackBarState == x.m_BackBarState); - } - - /*! - * @brief Comparison operator. - * @param x BarUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const BarUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontBarState - * @param _FrontBarState New value for member FrontBarState - */ - eProsima_user_DllExport void FrontBarState( - int32_t _FrontBarState) - { - m_FrontBarState = _FrontBarState; - } - - /*! - * @brief This function returns the value of member FrontBarState - * @return Value of member FrontBarState - */ - eProsima_user_DllExport int32_t FrontBarState() const - { - return m_FrontBarState; - } - - /*! - * @brief This function returns a reference to member FrontBarState - * @return Reference to member FrontBarState - */ - eProsima_user_DllExport int32_t& FrontBarState() - { - return m_FrontBarState; - } - - - /*! - * @brief This function sets a value in member BackBarState - * @param _BackBarState New value for member BackBarState - */ - eProsima_user_DllExport void BackBarState( - int32_t _BackBarState) - { - m_BackBarState = _BackBarState; - } - - /*! - * @brief This function returns the value of member BackBarState - * @return Value of member BackBarState - */ - eProsima_user_DllExport int32_t BackBarState() const - { - return m_BackBarState; - } - - /*! - * @brief This function returns a reference to member BackBarState - * @return Reference to member BackBarState - */ - eProsima_user_DllExport int32_t& BackBarState() - { - return m_BackBarState; - } - - - -private: - - int32_t m_FrontBarState{0}; - int32_t m_BackBarState{0}; - -}; -/*! - * @brief This class represents the structure LightsUpdate defined by the user in the IDL file. - * @ingroup System - */ -class LightsUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport LightsUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~LightsUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object LightsUpdate that will be copied. - */ - eProsima_user_DllExport LightsUpdate( - const LightsUpdate& x) - { - m_FrontLEDState = x.m_FrontLEDState; - - m_BackLEDState = x.m_BackLEDState; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object LightsUpdate that will be copied. - */ - eProsima_user_DllExport LightsUpdate( - LightsUpdate&& x) noexcept - { - m_FrontLEDState = x.m_FrontLEDState; - m_BackLEDState = x.m_BackLEDState; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object LightsUpdate that will be copied. - */ - eProsima_user_DllExport LightsUpdate& operator =( - const LightsUpdate& x) - { - - m_FrontLEDState = x.m_FrontLEDState; - - m_BackLEDState = x.m_BackLEDState; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object LightsUpdate that will be copied. - */ - eProsima_user_DllExport LightsUpdate& operator =( - LightsUpdate&& x) noexcept - { - - m_FrontLEDState = x.m_FrontLEDState; - m_BackLEDState = x.m_BackLEDState; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x LightsUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const LightsUpdate& x) const - { - return (m_FrontLEDState == x.m_FrontLEDState && - m_BackLEDState == x.m_BackLEDState); - } - - /*! - * @brief Comparison operator. - * @param x LightsUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const LightsUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontLEDState - * @param _FrontLEDState New value for member FrontLEDState - */ - eProsima_user_DllExport void FrontLEDState( - int32_t _FrontLEDState) - { - m_FrontLEDState = _FrontLEDState; - } - - /*! - * @brief This function returns the value of member FrontLEDState - * @return Value of member FrontLEDState - */ - eProsima_user_DllExport int32_t FrontLEDState() const - { - return m_FrontLEDState; - } - - /*! - * @brief This function returns a reference to member FrontLEDState - * @return Reference to member FrontLEDState - */ - eProsima_user_DllExport int32_t& FrontLEDState() - { - return m_FrontLEDState; - } - - - /*! - * @brief This function sets a value in member BackLEDState - * @param _BackLEDState New value for member BackLEDState - */ - eProsima_user_DllExport void BackLEDState( - int32_t _BackLEDState) - { - m_BackLEDState = _BackLEDState; - } - - /*! - * @brief This function returns the value of member BackLEDState - * @return Value of member BackLEDState - */ - eProsima_user_DllExport int32_t BackLEDState() const - { - return m_BackLEDState; - } - - /*! - * @brief This function returns a reference to member BackLEDState - * @return Reference to member BackLEDState - */ - eProsima_user_DllExport int32_t& BackLEDState() - { - return m_BackLEDState; - } - - - -private: - - int32_t m_FrontLEDState{0}; - int32_t m_BackLEDState{0}; - -}; -/*! - * @brief This class represents the structure InfraredUpdate defined by the user in the IDL file. - * @ingroup System - */ -class InfraredUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport InfraredUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~InfraredUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object InfraredUpdate that will be copied. - */ - eProsima_user_DllExport InfraredUpdate( - const InfraredUpdate& x) - { - m_FrontResistanceSignal = x.m_FrontResistanceSignal; - - m_BackResistanceSignal = x.m_BackResistanceSignal; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object InfraredUpdate that will be copied. - */ - eProsima_user_DllExport InfraredUpdate( - InfraredUpdate&& x) noexcept - { - m_FrontResistanceSignal = x.m_FrontResistanceSignal; - m_BackResistanceSignal = x.m_BackResistanceSignal; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object InfraredUpdate that will be copied. - */ - eProsima_user_DllExport InfraredUpdate& operator =( - const InfraredUpdate& x) - { - - m_FrontResistanceSignal = x.m_FrontResistanceSignal; - - m_BackResistanceSignal = x.m_BackResistanceSignal; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object InfraredUpdate that will be copied. - */ - eProsima_user_DllExport InfraredUpdate& operator =( - InfraredUpdate&& x) noexcept - { - - m_FrontResistanceSignal = x.m_FrontResistanceSignal; - m_BackResistanceSignal = x.m_BackResistanceSignal; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x InfraredUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const InfraredUpdate& x) const - { - return (m_FrontResistanceSignal == x.m_FrontResistanceSignal && - m_BackResistanceSignal == x.m_BackResistanceSignal); - } - - /*! - * @brief Comparison operator. - * @param x InfraredUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const InfraredUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member FrontResistanceSignal - * @param _FrontResistanceSignal New value for member FrontResistanceSignal - */ - eProsima_user_DllExport void FrontResistanceSignal( - int32_t _FrontResistanceSignal) - { - m_FrontResistanceSignal = _FrontResistanceSignal; - } - - /*! - * @brief This function returns the value of member FrontResistanceSignal - * @return Value of member FrontResistanceSignal - */ - eProsima_user_DllExport int32_t FrontResistanceSignal() const - { - return m_FrontResistanceSignal; - } - - /*! - * @brief This function returns a reference to member FrontResistanceSignal - * @return Reference to member FrontResistanceSignal - */ - eProsima_user_DllExport int32_t& FrontResistanceSignal() - { - return m_FrontResistanceSignal; - } - - - /*! - * @brief This function sets a value in member BackResistanceSignal - * @param _BackResistanceSignal New value for member BackResistanceSignal - */ - eProsima_user_DllExport void BackResistanceSignal( - int32_t _BackResistanceSignal) - { - m_BackResistanceSignal = _BackResistanceSignal; - } - - /*! - * @brief This function returns the value of member BackResistanceSignal - * @return Value of member BackResistanceSignal - */ - eProsima_user_DllExport int32_t BackResistanceSignal() const - { - return m_BackResistanceSignal; - } - - /*! - * @brief This function returns a reference to member BackResistanceSignal - * @return Reference to member BackResistanceSignal - */ - eProsima_user_DllExport int32_t& BackResistanceSignal() - { - return m_BackResistanceSignal; - } - - - -private: - - int32_t m_FrontResistanceSignal{0}; - int32_t m_BackResistanceSignal{0}; - -}; -/*! - * @brief This class represents the structure LicenseSnapUpdate defined by the user in the IDL file. - * @ingroup System - */ -class LicenseSnapUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport LicenseSnapUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~LicenseSnapUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object LicenseSnapUpdate that will be copied. - */ - eProsima_user_DllExport LicenseSnapUpdate( - const LicenseSnapUpdate& x) - { - m_NewTag = x.m_NewTag; - - m_License = x.m_License; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object LicenseSnapUpdate that will be copied. - */ - eProsima_user_DllExport LicenseSnapUpdate( - LicenseSnapUpdate&& x) noexcept - { - m_NewTag = x.m_NewTag; - m_License = std::move(x.m_License); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object LicenseSnapUpdate that will be copied. - */ - eProsima_user_DllExport LicenseSnapUpdate& operator =( - const LicenseSnapUpdate& x) - { - - m_NewTag = x.m_NewTag; - - m_License = x.m_License; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object LicenseSnapUpdate that will be copied. - */ - eProsima_user_DllExport LicenseSnapUpdate& operator =( - LicenseSnapUpdate&& x) noexcept - { - - m_NewTag = x.m_NewTag; - m_License = std::move(x.m_License); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x LicenseSnapUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const LicenseSnapUpdate& x) const - { - return (m_NewTag == x.m_NewTag && - m_License == x.m_License); - } - - /*! - * @brief Comparison operator. - * @param x LicenseSnapUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const LicenseSnapUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member NewTag - * @param _NewTag New value for member NewTag - */ - eProsima_user_DllExport void NewTag( - int32_t _NewTag) - { - m_NewTag = _NewTag; - } - - /*! - * @brief This function returns the value of member NewTag - * @return Value of member NewTag - */ - eProsima_user_DllExport int32_t NewTag() const - { - return m_NewTag; - } - - /*! - * @brief This function returns a reference to member NewTag - * @return Reference to member NewTag - */ - eProsima_user_DllExport int32_t& NewTag() - { - return m_NewTag; - } - - - /*! - * @brief This function copies the value in member License - * @param _License New value to be copied in member License - */ - eProsima_user_DllExport void License( - const std::string& _License) - { - m_License = _License; - } - - /*! - * @brief This function moves the value in member License - * @param _License New value to be moved in member License - */ - eProsima_user_DllExport void License( - std::string&& _License) - { - m_License = std::move(_License); - } - - /*! - * @brief This function returns a constant reference to member License - * @return Constant reference to member License - */ - eProsima_user_DllExport const std::string& License() const - { - return m_License; - } - - /*! - * @brief This function returns a reference to member License - * @return Reference to member License - */ - eProsima_user_DllExport std::string& License() - { - return m_License; - } - - - -private: - - int32_t m_NewTag{0}; - std::string m_License; - -}; -/*! - * @brief This class represents the structure Voice defined by the user in the IDL file. - * @ingroup System - */ -class Voice -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport Voice() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~Voice() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object Voice that will be copied. - */ - eProsima_user_DllExport Voice( - const Voice& x) - { - m_VoiceID = x.m_VoiceID; - - m_VoiceContent = x.m_VoiceContent; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object Voice that will be copied. - */ - eProsima_user_DllExport Voice( - Voice&& x) noexcept - { - m_VoiceID = x.m_VoiceID; - m_VoiceContent = std::move(x.m_VoiceContent); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object Voice that will be copied. - */ - eProsima_user_DllExport Voice& operator =( - const Voice& x) - { - - m_VoiceID = x.m_VoiceID; - - m_VoiceContent = x.m_VoiceContent; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object Voice that will be copied. - */ - eProsima_user_DllExport Voice& operator =( - Voice&& x) noexcept - { - - m_VoiceID = x.m_VoiceID; - m_VoiceContent = std::move(x.m_VoiceContent); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x Voice object to compare. - */ - eProsima_user_DllExport bool operator ==( - const Voice& x) const - { - return (m_VoiceID == x.m_VoiceID && - m_VoiceContent == x.m_VoiceContent); - } - - /*! - * @brief Comparison operator. - * @param x Voice object to compare. - */ - eProsima_user_DllExport bool operator !=( - const Voice& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member VoiceID - * @param _VoiceID New value for member VoiceID - */ - eProsima_user_DllExport void VoiceID( - int32_t _VoiceID) - { - m_VoiceID = _VoiceID; - } - - /*! - * @brief This function returns the value of member VoiceID - * @return Value of member VoiceID - */ - eProsima_user_DllExport int32_t VoiceID() const - { - return m_VoiceID; - } - - /*! - * @brief This function returns a reference to member VoiceID - * @return Reference to member VoiceID - */ - eProsima_user_DllExport int32_t& VoiceID() - { - return m_VoiceID; - } - - - /*! - * @brief This function copies the value in member VoiceContent - * @param _VoiceContent New value to be copied in member VoiceContent - */ - eProsima_user_DllExport void VoiceContent( - const std::string& _VoiceContent) - { - m_VoiceContent = _VoiceContent; - } - - /*! - * @brief This function moves the value in member VoiceContent - * @param _VoiceContent New value to be moved in member VoiceContent - */ - eProsima_user_DllExport void VoiceContent( - std::string&& _VoiceContent) - { - m_VoiceContent = std::move(_VoiceContent); - } - - /*! - * @brief This function returns a constant reference to member VoiceContent - * @return Constant reference to member VoiceContent - */ - eProsima_user_DllExport const std::string& VoiceContent() const - { - return m_VoiceContent; - } - - /*! - * @brief This function returns a reference to member VoiceContent - * @return Reference to member VoiceContent - */ - eProsima_user_DllExport std::string& VoiceContent() - { - return m_VoiceContent; - } - - - -private: - - int32_t m_VoiceID{0}; - std::string m_VoiceContent; - -}; -/*! - * @brief This class represents the structure SummaryUpdate defined by the user in the IDL file. - * @ingroup System - */ -class SummaryUpdate -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport SummaryUpdate() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~SummaryUpdate() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object SummaryUpdate that will be copied. - */ - eProsima_user_DllExport SummaryUpdate( - const SummaryUpdate& x) - { - m_License = x.m_License; - - m_StableValue = x.m_StableValue; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object SummaryUpdate that will be copied. - */ - eProsima_user_DllExport SummaryUpdate( - SummaryUpdate&& x) noexcept - { - m_License = std::move(x.m_License); - m_StableValue = x.m_StableValue; - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object SummaryUpdate that will be copied. - */ - eProsima_user_DllExport SummaryUpdate& operator =( - const SummaryUpdate& x) - { - - m_License = x.m_License; - - m_StableValue = x.m_StableValue; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object SummaryUpdate that will be copied. - */ - eProsima_user_DllExport SummaryUpdate& operator =( - SummaryUpdate&& x) noexcept - { - - m_License = std::move(x.m_License); - m_StableValue = x.m_StableValue; - return *this; - } - - /*! - * @brief Comparison operator. - * @param x SummaryUpdate object to compare. - */ - eProsima_user_DllExport bool operator ==( - const SummaryUpdate& x) const - { - return (m_License == x.m_License && - m_StableValue == x.m_StableValue); - } - - /*! - * @brief Comparison operator. - * @param x SummaryUpdate object to compare. - */ - eProsima_user_DllExport bool operator !=( - const SummaryUpdate& x) const - { - return !(*this == x); - } - - /*! - * @brief This function copies the value in member License - * @param _License New value to be copied in member License - */ - eProsima_user_DllExport void License( - const std::string& _License) - { - m_License = _License; - } - - /*! - * @brief This function moves the value in member License - * @param _License New value to be moved in member License - */ - eProsima_user_DllExport void License( - std::string&& _License) - { - m_License = std::move(_License); - } - - /*! - * @brief This function returns a constant reference to member License - * @return Constant reference to member License - */ - eProsima_user_DllExport const std::string& License() const - { - return m_License; - } - - /*! - * @brief This function returns a reference to member License - * @return Reference to member License - */ - eProsima_user_DllExport std::string& License() - { - return m_License; - } - - - /*! - * @brief This function sets a value in member StableValue - * @param _StableValue New value for member StableValue - */ - eProsima_user_DllExport void StableValue( - float _StableValue) - { - m_StableValue = _StableValue; - } - - /*! - * @brief This function returns the value of member StableValue - * @return Value of member StableValue - */ - eProsima_user_DllExport float StableValue() const - { - return m_StableValue; - } - - /*! - * @brief This function returns a reference to member StableValue - * @return Reference to member StableValue - */ - eProsima_user_DllExport float& StableValue() - { - return m_StableValue; - } - - - -private: - - std::string m_License; - float m_StableValue{0.0}; - -}; - -} // namespace WeighingSystem -namespace InternalSystem { - -/*! - * @brief This class represents the structure PrintReq defined by the user in the IDL file. - * @ingroup System - */ -class PrintReq -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport PrintReq() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~PrintReq() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object PrintReq that will be copied. - */ - eProsima_user_DllExport PrintReq( - const PrintReq& x) - { - m_index = x.m_index; - - m_msg = x.m_msg; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object PrintReq that will be copied. - */ - eProsima_user_DllExport PrintReq( - PrintReq&& x) noexcept - { - m_index = x.m_index; - m_msg = std::move(x.m_msg); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object PrintReq that will be copied. - */ - eProsima_user_DllExport PrintReq& operator =( - const PrintReq& x) - { - - m_index = x.m_index; - - m_msg = x.m_msg; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object PrintReq that will be copied. - */ - eProsima_user_DllExport PrintReq& operator =( - PrintReq&& x) noexcept - { - - m_index = x.m_index; - m_msg = std::move(x.m_msg); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x PrintReq object to compare. - */ - eProsima_user_DllExport bool operator ==( - const PrintReq& x) const - { - return (m_index == x.m_index && - m_msg == x.m_msg); - } - - /*! - * @brief Comparison operator. - * @param x PrintReq object to compare. - */ - eProsima_user_DllExport bool operator !=( - const PrintReq& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member index - * @param _index New value for member index - */ - eProsima_user_DllExport void index( - uint32_t _index) - { - m_index = _index; - } - - /*! - * @brief This function returns the value of member index - * @return Value of member index - */ - eProsima_user_DllExport uint32_t index() const - { - return m_index; - } - - /*! - * @brief This function returns a reference to member index - * @return Reference to member index - */ - eProsima_user_DllExport uint32_t& index() - { - return m_index; - } - - - /*! - * @brief This function copies the value in member msg - * @param _msg New value to be copied in member msg - */ - eProsima_user_DllExport void msg( - const std::map& _msg) - { - m_msg = _msg; - } - - /*! - * @brief This function moves the value in member msg - * @param _msg New value to be moved in member msg - */ - eProsima_user_DllExport void msg( - std::map&& _msg) - { - m_msg = std::move(_msg); - } - - /*! - * @brief This function returns a constant reference to member msg - * @return Constant reference to member msg - */ - eProsima_user_DllExport const std::map& msg() const - { - return m_msg; - } - - /*! - * @brief This function returns a reference to member msg - * @return Reference to member msg - */ - eProsima_user_DllExport std::map& msg() - { - return m_msg; - } - - - -private: - - uint32_t m_index{0}; - std::map m_msg; - -}; -/*! - * @brief This class represents the structure PrintRsp defined by the user in the IDL file. - * @ingroup System - */ -class PrintRsp -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport PrintRsp() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~PrintRsp() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object PrintRsp that will be copied. - */ - eProsima_user_DllExport PrintRsp( - const PrintRsp& x) - { - m_index = x.m_index; - - m_msg = x.m_msg; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object PrintRsp that will be copied. - */ - eProsima_user_DllExport PrintRsp( - PrintRsp&& x) noexcept - { - m_index = x.m_index; - m_msg = std::move(x.m_msg); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object PrintRsp that will be copied. - */ - eProsima_user_DllExport PrintRsp& operator =( - const PrintRsp& x) - { - - m_index = x.m_index; - - m_msg = x.m_msg; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object PrintRsp that will be copied. - */ - eProsima_user_DllExport PrintRsp& operator =( - PrintRsp&& x) noexcept - { - - m_index = x.m_index; - m_msg = std::move(x.m_msg); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x PrintRsp object to compare. - */ - eProsima_user_DllExport bool operator ==( - const PrintRsp& x) const - { - return (m_index == x.m_index && - m_msg == x.m_msg); - } - - /*! - * @brief Comparison operator. - * @param x PrintRsp object to compare. - */ - eProsima_user_DllExport bool operator !=( - const PrintRsp& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member index - * @param _index New value for member index - */ - eProsima_user_DllExport void index( - uint32_t _index) - { - m_index = _index; - } - - /*! - * @brief This function returns the value of member index - * @return Value of member index - */ - eProsima_user_DllExport uint32_t index() const - { - return m_index; - } - - /*! - * @brief This function returns a reference to member index - * @return Reference to member index - */ - eProsima_user_DllExport uint32_t& index() - { - return m_index; - } - - - /*! - * @brief This function copies the value in member msg - * @param _msg New value to be copied in member msg - */ - eProsima_user_DllExport void msg( - const std::string& _msg) - { - m_msg = _msg; - } - - /*! - * @brief This function moves the value in member msg - * @param _msg New value to be moved in member msg - */ - eProsima_user_DllExport void msg( - std::string&& _msg) - { - m_msg = std::move(_msg); - } - - /*! - * @brief This function returns a constant reference to member msg - * @return Constant reference to member msg - */ - eProsima_user_DllExport const std::string& msg() const - { - return m_msg; - } - - /*! - * @brief This function returns a reference to member msg - * @return Reference to member msg - */ - eProsima_user_DllExport std::string& msg() - { - return m_msg; - } - - - -private: - - uint32_t m_index{0}; - std::string m_msg; - -}; -/*! - * @brief This class represents the structure IoCtrlReq defined by the user in the IDL file. - * @ingroup System - */ -class IoCtrlReq -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport IoCtrlReq() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~IoCtrlReq() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object IoCtrlReq that will be copied. - */ - eProsima_user_DllExport IoCtrlReq( - const IoCtrlReq& x) - { - m_index = x.m_index; - - m_msg = x.m_msg; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object IoCtrlReq that will be copied. - */ - eProsima_user_DllExport IoCtrlReq( - IoCtrlReq&& x) noexcept - { - m_index = x.m_index; - m_msg = std::move(x.m_msg); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object IoCtrlReq that will be copied. - */ - eProsima_user_DllExport IoCtrlReq& operator =( - const IoCtrlReq& x) - { - - m_index = x.m_index; - - m_msg = x.m_msg; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object IoCtrlReq that will be copied. - */ - eProsima_user_DllExport IoCtrlReq& operator =( - IoCtrlReq&& x) noexcept - { - - m_index = x.m_index; - m_msg = std::move(x.m_msg); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x IoCtrlReq object to compare. - */ - eProsima_user_DllExport bool operator ==( - const IoCtrlReq& x) const - { - return (m_index == x.m_index && - m_msg == x.m_msg); - } - - /*! - * @brief Comparison operator. - * @param x IoCtrlReq object to compare. - */ - eProsima_user_DllExport bool operator !=( - const IoCtrlReq& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member index - * @param _index New value for member index - */ - eProsima_user_DllExport void index( - uint32_t _index) - { - m_index = _index; - } - - /*! - * @brief This function returns the value of member index - * @return Value of member index - */ - eProsima_user_DllExport uint32_t index() const - { - return m_index; - } - - /*! - * @brief This function returns a reference to member index - * @return Reference to member index - */ - eProsima_user_DllExport uint32_t& index() - { - return m_index; - } - - - /*! - * @brief This function copies the value in member msg - * @param _msg New value to be copied in member msg - */ - eProsima_user_DllExport void msg( - const std::map& _msg) - { - m_msg = _msg; - } - - /*! - * @brief This function moves the value in member msg - * @param _msg New value to be moved in member msg - */ - eProsima_user_DllExport void msg( - std::map&& _msg) - { - m_msg = std::move(_msg); - } - - /*! - * @brief This function returns a constant reference to member msg - * @return Constant reference to member msg - */ - eProsima_user_DllExport const std::map& msg() const - { - return m_msg; - } - - /*! - * @brief This function returns a reference to member msg - * @return Reference to member msg - */ - eProsima_user_DllExport std::map& msg() - { - return m_msg; - } - - - -private: - - uint32_t m_index{0}; - std::map m_msg; - -}; -/*! - * @brief This class represents the structure IoCtrlRsp defined by the user in the IDL file. - * @ingroup System - */ -class IoCtrlRsp -{ -public: - - /*! - * @brief Default constructor. - */ - eProsima_user_DllExport IoCtrlRsp() - { - } - - /*! - * @brief Default destructor. - */ - eProsima_user_DllExport ~IoCtrlRsp() - { - } - - /*! - * @brief Copy constructor. - * @param x Reference to the object IoCtrlRsp that will be copied. - */ - eProsima_user_DllExport IoCtrlRsp( - const IoCtrlRsp& x) - { - m_index = x.m_index; - - m_msg = x.m_msg; - - } - - /*! - * @brief Move constructor. - * @param x Reference to the object IoCtrlRsp that will be copied. - */ - eProsima_user_DllExport IoCtrlRsp( - IoCtrlRsp&& x) noexcept - { - m_index = x.m_index; - m_msg = std::move(x.m_msg); - } - - /*! - * @brief Copy assignment. - * @param x Reference to the object IoCtrlRsp that will be copied. - */ - eProsima_user_DllExport IoCtrlRsp& operator =( - const IoCtrlRsp& x) - { - - m_index = x.m_index; - - m_msg = x.m_msg; - - return *this; - } - - /*! - * @brief Move assignment. - * @param x Reference to the object IoCtrlRsp that will be copied. - */ - eProsima_user_DllExport IoCtrlRsp& operator =( - IoCtrlRsp&& x) noexcept - { - - m_index = x.m_index; - m_msg = std::move(x.m_msg); - return *this; - } - - /*! - * @brief Comparison operator. - * @param x IoCtrlRsp object to compare. - */ - eProsima_user_DllExport bool operator ==( - const IoCtrlRsp& x) const - { - return (m_index == x.m_index && - m_msg == x.m_msg); - } - - /*! - * @brief Comparison operator. - * @param x IoCtrlRsp object to compare. - */ - eProsima_user_DllExport bool operator !=( - const IoCtrlRsp& x) const - { - return !(*this == x); - } - - /*! - * @brief This function sets a value in member index - * @param _index New value for member index - */ - eProsima_user_DllExport void index( - uint32_t _index) - { - m_index = _index; - } - - /*! - * @brief This function returns the value of member index - * @return Value of member index - */ - eProsima_user_DllExport uint32_t index() const - { - return m_index; - } - - /*! - * @brief This function returns a reference to member index - * @return Reference to member index - */ - eProsima_user_DllExport uint32_t& index() - { - return m_index; - } - - - /*! - * @brief This function copies the value in member msg - * @param _msg New value to be copied in member msg - */ - eProsima_user_DllExport void msg( - const std::map& _msg) - { - m_msg = _msg; - } - - /*! - * @brief This function moves the value in member msg - * @param _msg New value to be moved in member msg - */ - eProsima_user_DllExport void msg( - std::map&& _msg) - { - m_msg = std::move(_msg); - } - - /*! - * @brief This function returns a constant reference to member msg - * @return Constant reference to member msg - */ - eProsima_user_DllExport const std::map& msg() const - { - return m_msg; - } - - /*! - * @brief This function returns a reference to member msg - * @return Reference to member msg - */ - eProsima_user_DllExport std::map& msg() - { - return m_msg; - } - - - -private: - - uint32_t m_index{0}; - std::map m_msg; - -}; - -} // namespace InternalSystem - -#endif // _FAST_DDS_GENERATED_INTERNALSYSTEM_SYSTEM_HPP_ - - diff --git a/lib/SystemTypeObjectSupport.cxx b/lib/SystemTypeObjectSupport.cxx deleted file mode 100644 index 0d8984d..0000000 --- a/lib/SystemTypeObjectSupport.cxx +++ /dev/null @@ -1,3095 +0,0 @@ -// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/*! - * @file SystemTypeObjectSupport.cxx - * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file - * - * This file was generated by the tool fastddsgen. - */ - -#include "SystemTypeObjectSupport.hpp" - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "System.hpp" - - -using namespace eprosima::fastdds::dds::xtypes; - -namespace WeighingSystem { -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_ScaleInfo_type_identifier( - TypeIdentifierPair& type_ids_ScaleInfo) -{ - - ReturnCode_t return_code_ScaleInfo {eprosima::fastdds::dds::RETCODE_OK}; - return_code_ScaleInfo = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::ScaleInfo", type_ids_ScaleInfo); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_ScaleInfo) - { - StructTypeFlag struct_flags_ScaleInfo = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_ScaleInfo = "WeighingSystem::ScaleInfo"; - eprosima::fastcdr::optional type_ann_builtin_ScaleInfo; - eprosima::fastcdr::optional ann_custom_ScaleInfo; - CompleteTypeDetail detail_ScaleInfo = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ScaleInfo, ann_custom_ScaleInfo, type_name_ScaleInfo.to_string()); - CompleteStructHeader header_ScaleInfo; - header_ScaleInfo = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ScaleInfo); - CompleteStructMemberSeq member_seq_ScaleInfo; - { - TypeIdentifierPair type_ids_HasVehicle; - ReturnCode_t return_code_HasVehicle {eprosima::fastdds::dds::RETCODE_OK}; - return_code_HasVehicle = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_HasVehicle); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_HasVehicle) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "HasVehicle Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_HasVehicle = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_HasVehicle = 0x00000000; - bool common_HasVehicle_ec {false}; - CommonStructMember common_HasVehicle {TypeObjectUtils::build_common_struct_member(member_id_HasVehicle, member_flags_HasVehicle, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_HasVehicle, common_HasVehicle_ec))}; - if (!common_HasVehicle_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure HasVehicle member TypeIdentifier inconsistent."); - return; - } - MemberName name_HasVehicle = "HasVehicle"; - eprosima::fastcdr::optional member_ann_builtin_HasVehicle; - ann_custom_ScaleInfo.reset(); - CompleteMemberDetail detail_HasVehicle = TypeObjectUtils::build_complete_member_detail(name_HasVehicle, member_ann_builtin_HasVehicle, ann_custom_ScaleInfo); - CompleteStructMember member_HasVehicle = TypeObjectUtils::build_complete_struct_member(common_HasVehicle, detail_HasVehicle); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_HasVehicle); - } - { - TypeIdentifierPair type_ids_WeightOK; - ReturnCode_t return_code_WeightOK {eprosima::fastdds::dds::RETCODE_OK}; - return_code_WeightOK = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_WeightOK); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightOK) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeightOK Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_WeightOK = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_WeightOK = 0x00000001; - bool common_WeightOK_ec {false}; - CommonStructMember common_WeightOK {TypeObjectUtils::build_common_struct_member(member_id_WeightOK, member_flags_WeightOK, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_WeightOK, common_WeightOK_ec))}; - if (!common_WeightOK_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure WeightOK member TypeIdentifier inconsistent."); - return; - } - MemberName name_WeightOK = "WeightOK"; - eprosima::fastcdr::optional member_ann_builtin_WeightOK; - ann_custom_ScaleInfo.reset(); - CompleteMemberDetail detail_WeightOK = TypeObjectUtils::build_complete_member_detail(name_WeightOK, member_ann_builtin_WeightOK, ann_custom_ScaleInfo); - CompleteStructMember member_WeightOK = TypeObjectUtils::build_complete_struct_member(common_WeightOK, detail_WeightOK); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_WeightOK); - } - { - TypeIdentifierPair type_ids_State; - ReturnCode_t return_code_State {eprosima::fastdds::dds::RETCODE_OK}; - return_code_State = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_State); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_State) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "State Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_State = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_State = 0x00000002; - bool common_State_ec {false}; - CommonStructMember common_State {TypeObjectUtils::build_common_struct_member(member_id_State, member_flags_State, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_State, common_State_ec))}; - if (!common_State_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure State member TypeIdentifier inconsistent."); - return; - } - MemberName name_State = "State"; - eprosima::fastcdr::optional member_ann_builtin_State; - ann_custom_ScaleInfo.reset(); - CompleteMemberDetail detail_State = TypeObjectUtils::build_complete_member_detail(name_State, member_ann_builtin_State, ann_custom_ScaleInfo); - CompleteStructMember member_State = TypeObjectUtils::build_complete_struct_member(common_State, detail_State); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_State); - } - { - TypeIdentifierPair type_ids_Value; - ReturnCode_t return_code_Value {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Value = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_Value); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Value) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "Value Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_Value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Value = 0x00000003; - bool common_Value_ec {false}; - CommonStructMember common_Value {TypeObjectUtils::build_common_struct_member(member_id_Value, member_flags_Value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Value, common_Value_ec))}; - if (!common_Value_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Value member TypeIdentifier inconsistent."); - return; - } - MemberName name_Value = "Value"; - eprosima::fastcdr::optional member_ann_builtin_Value; - ann_custom_ScaleInfo.reset(); - CompleteMemberDetail detail_Value = TypeObjectUtils::build_complete_member_detail(name_Value, member_ann_builtin_Value, ann_custom_ScaleInfo); - CompleteStructMember member_Value = TypeObjectUtils::build_complete_struct_member(common_Value, detail_Value); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_Value); - } - { - TypeIdentifierPair type_ids_StableValue; - ReturnCode_t return_code_StableValue {eprosima::fastdds::dds::RETCODE_OK}; - return_code_StableValue = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_StableValue); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_StableValue) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "StableValue Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_StableValue = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_StableValue = 0x00000004; - bool common_StableValue_ec {false}; - CommonStructMember common_StableValue {TypeObjectUtils::build_common_struct_member(member_id_StableValue, member_flags_StableValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_StableValue, common_StableValue_ec))}; - if (!common_StableValue_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure StableValue member TypeIdentifier inconsistent."); - return; - } - MemberName name_StableValue = "StableValue"; - eprosima::fastcdr::optional member_ann_builtin_StableValue; - ann_custom_ScaleInfo.reset(); - CompleteMemberDetail detail_StableValue = TypeObjectUtils::build_complete_member_detail(name_StableValue, member_ann_builtin_StableValue, ann_custom_ScaleInfo); - CompleteStructMember member_StableValue = TypeObjectUtils::build_complete_struct_member(common_StableValue, detail_StableValue); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_StableValue); - } - CompleteStructType struct_type_ScaleInfo = TypeObjectUtils::build_complete_struct_type(struct_flags_ScaleInfo, header_ScaleInfo, member_seq_ScaleInfo); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_ScaleInfo, type_name_ScaleInfo.to_string(), type_ids_ScaleInfo)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::ScaleInfo already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_ScaleCommand_type_identifier( - TypeIdentifierPair& type_ids_ScaleCommand) -{ - - ReturnCode_t return_code_ScaleCommand {eprosima::fastdds::dds::RETCODE_OK}; - return_code_ScaleCommand = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::ScaleCommand", type_ids_ScaleCommand); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_ScaleCommand) - { - StructTypeFlag struct_flags_ScaleCommand = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_ScaleCommand = "WeighingSystem::ScaleCommand"; - eprosima::fastcdr::optional type_ann_builtin_ScaleCommand; - eprosima::fastcdr::optional ann_custom_ScaleCommand; - CompleteTypeDetail detail_ScaleCommand = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ScaleCommand, ann_custom_ScaleCommand, type_name_ScaleCommand.to_string()); - CompleteStructHeader header_ScaleCommand; - header_ScaleCommand = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ScaleCommand); - CompleteStructMemberSeq member_seq_ScaleCommand; - { - TypeIdentifierPair type_ids_Enable; - ReturnCode_t return_code_Enable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Enable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_Enable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Enable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "Enable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_Enable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Enable = 0x00000000; - bool common_Enable_ec {false}; - CommonStructMember common_Enable {TypeObjectUtils::build_common_struct_member(member_id_Enable, member_flags_Enable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Enable, common_Enable_ec))}; - if (!common_Enable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Enable member TypeIdentifier inconsistent."); - return; - } - MemberName name_Enable = "Enable"; - eprosima::fastcdr::optional member_ann_builtin_Enable; - ann_custom_ScaleCommand.reset(); - CompleteMemberDetail detail_Enable = TypeObjectUtils::build_complete_member_detail(name_Enable, member_ann_builtin_Enable, ann_custom_ScaleCommand); - CompleteStructMember member_Enable = TypeObjectUtils::build_complete_struct_member(common_Enable, detail_Enable); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleCommand, member_Enable); - } - { - TypeIdentifierPair type_ids_ResetZero; - ReturnCode_t return_code_ResetZero {eprosima::fastdds::dds::RETCODE_OK}; - return_code_ResetZero = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_ResetZero); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_ResetZero) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "ResetZero Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_ResetZero = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_ResetZero = 0x00000001; - bool common_ResetZero_ec {false}; - CommonStructMember common_ResetZero {TypeObjectUtils::build_common_struct_member(member_id_ResetZero, member_flags_ResetZero, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ResetZero, common_ResetZero_ec))}; - if (!common_ResetZero_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ResetZero member TypeIdentifier inconsistent."); - return; - } - MemberName name_ResetZero = "ResetZero"; - eprosima::fastcdr::optional member_ann_builtin_ResetZero; - ann_custom_ScaleCommand.reset(); - CompleteMemberDetail detail_ResetZero = TypeObjectUtils::build_complete_member_detail(name_ResetZero, member_ann_builtin_ResetZero, ann_custom_ScaleCommand); - CompleteStructMember member_ResetZero = TypeObjectUtils::build_complete_struct_member(common_ResetZero, detail_ResetZero); - TypeObjectUtils::add_complete_struct_member(member_seq_ScaleCommand, member_ResetZero); - } - CompleteStructType struct_type_ScaleCommand = TypeObjectUtils::build_complete_struct_type(struct_flags_ScaleCommand, header_ScaleCommand, member_seq_ScaleCommand); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_ScaleCommand, type_name_ScaleCommand.to_string(), type_ids_ScaleCommand)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::ScaleCommand already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_WeightInfoOk_type_identifier( - TypeIdentifierPair& type_ids_WeightInfoOk) -{ - - ReturnCode_t return_code_WeightInfoOk {eprosima::fastdds::dds::RETCODE_OK}; - return_code_WeightInfoOk = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::WeightInfoOk", type_ids_WeightInfoOk); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightInfoOk) - { - StructTypeFlag struct_flags_WeightInfoOk = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_WeightInfoOk = "WeighingSystem::WeightInfoOk"; - eprosima::fastcdr::optional type_ann_builtin_WeightInfoOk; - eprosima::fastcdr::optional ann_custom_WeightInfoOk; - CompleteTypeDetail detail_WeightInfoOk = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_WeightInfoOk, ann_custom_WeightInfoOk, type_name_WeightInfoOk.to_string()); - CompleteStructHeader header_WeightInfoOk; - header_WeightInfoOk = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_WeightInfoOk); - CompleteStructMemberSeq member_seq_WeightInfoOk; - { - TypeIdentifierPair type_ids_GrossDeviceID; - ReturnCode_t return_code_GrossDeviceID {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossDeviceID = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_GrossDeviceID); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceID) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "GrossDeviceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_GrossDeviceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossDeviceID = 0x00000000; - bool common_GrossDeviceID_ec {false}; - CommonStructMember common_GrossDeviceID {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceID, member_flags_GrossDeviceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceID, common_GrossDeviceID_ec))}; - if (!common_GrossDeviceID_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceID member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossDeviceID = "GrossDeviceID"; - eprosima::fastcdr::optional member_ann_builtin_GrossDeviceID; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossDeviceID = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceID, member_ann_builtin_GrossDeviceID, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossDeviceID = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceID, detail_GrossDeviceID); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceID); - } - { - TypeIdentifierPair type_ids_GrossDeviceName; - ReturnCode_t return_code_GrossDeviceName {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossDeviceName = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_GrossDeviceName); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceName) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_GrossDeviceName)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_GrossDeviceName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossDeviceName = 0x00000001; - bool common_GrossDeviceName_ec {false}; - CommonStructMember common_GrossDeviceName {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceName, member_flags_GrossDeviceName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceName, common_GrossDeviceName_ec))}; - if (!common_GrossDeviceName_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceName member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossDeviceName = "GrossDeviceName"; - eprosima::fastcdr::optional member_ann_builtin_GrossDeviceName; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossDeviceName = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceName, member_ann_builtin_GrossDeviceName, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossDeviceName = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceName, detail_GrossDeviceName); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceName); - } - { - TypeIdentifierPair type_ids_GrossDeviceType; - ReturnCode_t return_code_GrossDeviceType {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossDeviceType = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_GrossDeviceType); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceType) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_GrossDeviceType)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_GrossDeviceType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossDeviceType = 0x00000002; - bool common_GrossDeviceType_ec {false}; - CommonStructMember common_GrossDeviceType {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceType, member_flags_GrossDeviceType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceType, common_GrossDeviceType_ec))}; - if (!common_GrossDeviceType_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceType member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossDeviceType = "GrossDeviceType"; - eprosima::fastcdr::optional member_ann_builtin_GrossDeviceType; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossDeviceType = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceType, member_ann_builtin_GrossDeviceType, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossDeviceType = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceType, detail_GrossDeviceType); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceType); - } - { - TypeIdentifierPair type_ids_TareDeviceID; - ReturnCode_t return_code_TareDeviceID {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TareDeviceID = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_TareDeviceID); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceID) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "TareDeviceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_TareDeviceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TareDeviceID = 0x00000003; - bool common_TareDeviceID_ec {false}; - CommonStructMember common_TareDeviceID {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceID, member_flags_TareDeviceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceID, common_TareDeviceID_ec))}; - if (!common_TareDeviceID_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceID member TypeIdentifier inconsistent."); - return; - } - MemberName name_TareDeviceID = "TareDeviceID"; - eprosima::fastcdr::optional member_ann_builtin_TareDeviceID; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TareDeviceID = TypeObjectUtils::build_complete_member_detail(name_TareDeviceID, member_ann_builtin_TareDeviceID, ann_custom_WeightInfoOk); - CompleteStructMember member_TareDeviceID = TypeObjectUtils::build_complete_struct_member(common_TareDeviceID, detail_TareDeviceID); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceID); - } - { - TypeIdentifierPair type_ids_TareDeviceName; - ReturnCode_t return_code_TareDeviceName {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TareDeviceName = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_TareDeviceName); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceName) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_TareDeviceName)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_TareDeviceName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TareDeviceName = 0x00000004; - bool common_TareDeviceName_ec {false}; - CommonStructMember common_TareDeviceName {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceName, member_flags_TareDeviceName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceName, common_TareDeviceName_ec))}; - if (!common_TareDeviceName_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceName member TypeIdentifier inconsistent."); - return; - } - MemberName name_TareDeviceName = "TareDeviceName"; - eprosima::fastcdr::optional member_ann_builtin_TareDeviceName; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TareDeviceName = TypeObjectUtils::build_complete_member_detail(name_TareDeviceName, member_ann_builtin_TareDeviceName, ann_custom_WeightInfoOk); - CompleteStructMember member_TareDeviceName = TypeObjectUtils::build_complete_struct_member(common_TareDeviceName, detail_TareDeviceName); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceName); - } - { - TypeIdentifierPair type_ids_TareDeviceType; - ReturnCode_t return_code_TareDeviceType {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TareDeviceType = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_TareDeviceType); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceType) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_TareDeviceType)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_TareDeviceType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TareDeviceType = 0x00000005; - bool common_TareDeviceType_ec {false}; - CommonStructMember common_TareDeviceType {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceType, member_flags_TareDeviceType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceType, common_TareDeviceType_ec))}; - if (!common_TareDeviceType_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceType member TypeIdentifier inconsistent."); - return; - } - MemberName name_TareDeviceType = "TareDeviceType"; - eprosima::fastcdr::optional member_ann_builtin_TareDeviceType; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TareDeviceType = TypeObjectUtils::build_complete_member_detail(name_TareDeviceType, member_ann_builtin_TareDeviceType, ann_custom_WeightInfoOk); - CompleteStructMember member_TareDeviceType = TypeObjectUtils::build_complete_struct_member(common_TareDeviceType, detail_TareDeviceType); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceType); - } - { - TypeIdentifierPair type_ids_EnterpriseName; - ReturnCode_t return_code_EnterpriseName {eprosima::fastdds::dds::RETCODE_OK}; - return_code_EnterpriseName = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_EnterpriseName); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_EnterpriseName) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_EnterpriseName)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_EnterpriseName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_EnterpriseName = 0x00000006; - bool common_EnterpriseName_ec {false}; - CommonStructMember common_EnterpriseName {TypeObjectUtils::build_common_struct_member(member_id_EnterpriseName, member_flags_EnterpriseName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_EnterpriseName, common_EnterpriseName_ec))}; - if (!common_EnterpriseName_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure EnterpriseName member TypeIdentifier inconsistent."); - return; - } - MemberName name_EnterpriseName = "EnterpriseName"; - eprosima::fastcdr::optional member_ann_builtin_EnterpriseName; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_EnterpriseName = TypeObjectUtils::build_complete_member_detail(name_EnterpriseName, member_ann_builtin_EnterpriseName, ann_custom_WeightInfoOk); - CompleteStructMember member_EnterpriseName = TypeObjectUtils::build_complete_struct_member(common_EnterpriseName, detail_EnterpriseName); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_EnterpriseName); - } - { - TypeIdentifierPair type_ids_BillNumber; - ReturnCode_t return_code_BillNumber {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BillNumber = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_BillNumber); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BillNumber) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_BillNumber)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_BillNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BillNumber = 0x00000007; - bool common_BillNumber_ec {false}; - CommonStructMember common_BillNumber {TypeObjectUtils::build_common_struct_member(member_id_BillNumber, member_flags_BillNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BillNumber, common_BillNumber_ec))}; - if (!common_BillNumber_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BillNumber member TypeIdentifier inconsistent."); - return; - } - MemberName name_BillNumber = "BillNumber"; - eprosima::fastcdr::optional member_ann_builtin_BillNumber; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_BillNumber = TypeObjectUtils::build_complete_member_detail(name_BillNumber, member_ann_builtin_BillNumber, ann_custom_WeightInfoOk); - CompleteStructMember member_BillNumber = TypeObjectUtils::build_complete_struct_member(common_BillNumber, detail_BillNumber); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_BillNumber); - } - { - TypeIdentifierPair type_ids_CarNumber; - ReturnCode_t return_code_CarNumber {eprosima::fastdds::dds::RETCODE_OK}; - return_code_CarNumber = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_CarNumber); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_CarNumber) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_CarNumber)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_CarNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_CarNumber = 0x00000008; - bool common_CarNumber_ec {false}; - CommonStructMember common_CarNumber {TypeObjectUtils::build_common_struct_member(member_id_CarNumber, member_flags_CarNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_CarNumber, common_CarNumber_ec))}; - if (!common_CarNumber_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure CarNumber member TypeIdentifier inconsistent."); - return; - } - MemberName name_CarNumber = "CarNumber"; - eprosima::fastcdr::optional member_ann_builtin_CarNumber; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_CarNumber = TypeObjectUtils::build_complete_member_detail(name_CarNumber, member_ann_builtin_CarNumber, ann_custom_WeightInfoOk); - CompleteStructMember member_CarNumber = TypeObjectUtils::build_complete_struct_member(common_CarNumber, detail_CarNumber); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_CarNumber); - } - { - TypeIdentifierPair type_ids_Supplier; - ReturnCode_t return_code_Supplier {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Supplier = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_Supplier); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Supplier) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_Supplier)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_Supplier = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Supplier = 0x00000009; - bool common_Supplier_ec {false}; - CommonStructMember common_Supplier {TypeObjectUtils::build_common_struct_member(member_id_Supplier, member_flags_Supplier, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Supplier, common_Supplier_ec))}; - if (!common_Supplier_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Supplier member TypeIdentifier inconsistent."); - return; - } - MemberName name_Supplier = "Supplier"; - eprosima::fastcdr::optional member_ann_builtin_Supplier; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_Supplier = TypeObjectUtils::build_complete_member_detail(name_Supplier, member_ann_builtin_Supplier, ann_custom_WeightInfoOk); - CompleteStructMember member_Supplier = TypeObjectUtils::build_complete_struct_member(common_Supplier, detail_Supplier); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Supplier); - } - { - TypeIdentifierPair type_ids_GoodsType; - ReturnCode_t return_code_GoodsType {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GoodsType = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_GoodsType); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GoodsType) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_GoodsType)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_GoodsType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GoodsType = 0x0000000a; - bool common_GoodsType_ec {false}; - CommonStructMember common_GoodsType {TypeObjectUtils::build_common_struct_member(member_id_GoodsType, member_flags_GoodsType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GoodsType, common_GoodsType_ec))}; - if (!common_GoodsType_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GoodsType member TypeIdentifier inconsistent."); - return; - } - MemberName name_GoodsType = "GoodsType"; - eprosima::fastcdr::optional member_ann_builtin_GoodsType; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GoodsType = TypeObjectUtils::build_complete_member_detail(name_GoodsType, member_ann_builtin_GoodsType, ann_custom_WeightInfoOk); - CompleteStructMember member_GoodsType = TypeObjectUtils::build_complete_struct_member(common_GoodsType, detail_GoodsType); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GoodsType); - } - { - TypeIdentifierPair type_ids_GrossWeight; - ReturnCode_t return_code_GrossWeight {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossWeight = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_GrossWeight); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossWeight) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "GrossWeight Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_GrossWeight = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossWeight = 0x0000000b; - bool common_GrossWeight_ec {false}; - CommonStructMember common_GrossWeight {TypeObjectUtils::build_common_struct_member(member_id_GrossWeight, member_flags_GrossWeight, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossWeight, common_GrossWeight_ec))}; - if (!common_GrossWeight_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossWeight member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossWeight = "GrossWeight"; - eprosima::fastcdr::optional member_ann_builtin_GrossWeight; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossWeight = TypeObjectUtils::build_complete_member_detail(name_GrossWeight, member_ann_builtin_GrossWeight, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossWeight = TypeObjectUtils::build_complete_struct_member(common_GrossWeight, detail_GrossWeight); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossWeight); - } - { - TypeIdentifierPair type_ids_GrossTime; - ReturnCode_t return_code_GrossTime {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossTime = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_GrossTime); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossTime) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_GrossTime)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_GrossTime = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossTime = 0x0000000c; - bool common_GrossTime_ec {false}; - CommonStructMember common_GrossTime {TypeObjectUtils::build_common_struct_member(member_id_GrossTime, member_flags_GrossTime, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossTime, common_GrossTime_ec))}; - if (!common_GrossTime_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossTime member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossTime = "GrossTime"; - eprosima::fastcdr::optional member_ann_builtin_GrossTime; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossTime = TypeObjectUtils::build_complete_member_detail(name_GrossTime, member_ann_builtin_GrossTime, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossTime = TypeObjectUtils::build_complete_struct_member(common_GrossTime, detail_GrossTime); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossTime); - } - { - TypeIdentifierPair type_ids_GrossOperater; - ReturnCode_t return_code_GrossOperater {eprosima::fastdds::dds::RETCODE_OK}; - return_code_GrossOperater = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_GrossOperater); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossOperater) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_GrossOperater)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_GrossOperater = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_GrossOperater = 0x0000000d; - bool common_GrossOperater_ec {false}; - CommonStructMember common_GrossOperater {TypeObjectUtils::build_common_struct_member(member_id_GrossOperater, member_flags_GrossOperater, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossOperater, common_GrossOperater_ec))}; - if (!common_GrossOperater_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossOperater member TypeIdentifier inconsistent."); - return; - } - MemberName name_GrossOperater = "GrossOperater"; - eprosima::fastcdr::optional member_ann_builtin_GrossOperater; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_GrossOperater = TypeObjectUtils::build_complete_member_detail(name_GrossOperater, member_ann_builtin_GrossOperater, ann_custom_WeightInfoOk); - CompleteStructMember member_GrossOperater = TypeObjectUtils::build_complete_struct_member(common_GrossOperater, detail_GrossOperater); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossOperater); - } - { - TypeIdentifierPair type_ids_Tare; - ReturnCode_t return_code_Tare {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Tare = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_Tare); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Tare) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "Tare Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_Tare = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Tare = 0x0000000e; - bool common_Tare_ec {false}; - CommonStructMember common_Tare {TypeObjectUtils::build_common_struct_member(member_id_Tare, member_flags_Tare, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Tare, common_Tare_ec))}; - if (!common_Tare_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Tare member TypeIdentifier inconsistent."); - return; - } - MemberName name_Tare = "Tare"; - eprosima::fastcdr::optional member_ann_builtin_Tare; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_Tare = TypeObjectUtils::build_complete_member_detail(name_Tare, member_ann_builtin_Tare, ann_custom_WeightInfoOk); - CompleteStructMember member_Tare = TypeObjectUtils::build_complete_struct_member(common_Tare, detail_Tare); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Tare); - } - { - TypeIdentifierPair type_ids_TareTime; - ReturnCode_t return_code_TareTime {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TareTime = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_TareTime); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareTime) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_TareTime)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_TareTime = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TareTime = 0x0000000f; - bool common_TareTime_ec {false}; - CommonStructMember common_TareTime {TypeObjectUtils::build_common_struct_member(member_id_TareTime, member_flags_TareTime, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareTime, common_TareTime_ec))}; - if (!common_TareTime_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareTime member TypeIdentifier inconsistent."); - return; - } - MemberName name_TareTime = "TareTime"; - eprosima::fastcdr::optional member_ann_builtin_TareTime; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TareTime = TypeObjectUtils::build_complete_member_detail(name_TareTime, member_ann_builtin_TareTime, ann_custom_WeightInfoOk); - CompleteStructMember member_TareTime = TypeObjectUtils::build_complete_struct_member(common_TareTime, detail_TareTime); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareTime); - } - { - TypeIdentifierPair type_ids_TareOperater; - ReturnCode_t return_code_TareOperater {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TareOperater = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_TareOperater); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareOperater) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_TareOperater)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_TareOperater = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TareOperater = 0x00000010; - bool common_TareOperater_ec {false}; - CommonStructMember common_TareOperater {TypeObjectUtils::build_common_struct_member(member_id_TareOperater, member_flags_TareOperater, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareOperater, common_TareOperater_ec))}; - if (!common_TareOperater_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareOperater member TypeIdentifier inconsistent."); - return; - } - MemberName name_TareOperater = "TareOperater"; - eprosima::fastcdr::optional member_ann_builtin_TareOperater; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TareOperater = TypeObjectUtils::build_complete_member_detail(name_TareOperater, member_ann_builtin_TareOperater, ann_custom_WeightInfoOk); - CompleteStructMember member_TareOperater = TypeObjectUtils::build_complete_struct_member(common_TareOperater, detail_TareOperater); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareOperater); - } - { - TypeIdentifierPair type_ids_Suttle; - ReturnCode_t return_code_Suttle {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Suttle = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_Suttle); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Suttle) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "Suttle Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_Suttle = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Suttle = 0x00000011; - bool common_Suttle_ec {false}; - CommonStructMember common_Suttle {TypeObjectUtils::build_common_struct_member(member_id_Suttle, member_flags_Suttle, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Suttle, common_Suttle_ec))}; - if (!common_Suttle_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Suttle member TypeIdentifier inconsistent."); - return; - } - MemberName name_Suttle = "Suttle"; - eprosima::fastcdr::optional member_ann_builtin_Suttle; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_Suttle = TypeObjectUtils::build_complete_member_detail(name_Suttle, member_ann_builtin_Suttle, ann_custom_WeightInfoOk); - CompleteStructMember member_Suttle = TypeObjectUtils::build_complete_struct_member(common_Suttle, detail_Suttle); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Suttle); - } - { - TypeIdentifierPair type_ids_duduction1; - ReturnCode_t return_code_duduction1 {eprosima::fastdds::dds::RETCODE_OK}; - return_code_duduction1 = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_duduction1); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction1) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "duduction1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_duduction1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_duduction1 = 0x00000012; - bool common_duduction1_ec {false}; - CommonStructMember common_duduction1 {TypeObjectUtils::build_common_struct_member(member_id_duduction1, member_flags_duduction1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction1, common_duduction1_ec))}; - if (!common_duduction1_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction1 member TypeIdentifier inconsistent."); - return; - } - MemberName name_duduction1 = "duduction1"; - eprosima::fastcdr::optional member_ann_builtin_duduction1; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_duduction1 = TypeObjectUtils::build_complete_member_detail(name_duduction1, member_ann_builtin_duduction1, ann_custom_WeightInfoOk); - CompleteStructMember member_duduction1 = TypeObjectUtils::build_complete_struct_member(common_duduction1, detail_duduction1); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction1); - } - { - TypeIdentifierPair type_ids_duduction2; - ReturnCode_t return_code_duduction2 {eprosima::fastdds::dds::RETCODE_OK}; - return_code_duduction2 = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_duduction2); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction2) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "duduction2 Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_duduction2 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_duduction2 = 0x00000013; - bool common_duduction2_ec {false}; - CommonStructMember common_duduction2 {TypeObjectUtils::build_common_struct_member(member_id_duduction2, member_flags_duduction2, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction2, common_duduction2_ec))}; - if (!common_duduction2_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction2 member TypeIdentifier inconsistent."); - return; - } - MemberName name_duduction2 = "duduction2"; - eprosima::fastcdr::optional member_ann_builtin_duduction2; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_duduction2 = TypeObjectUtils::build_complete_member_detail(name_duduction2, member_ann_builtin_duduction2, ann_custom_WeightInfoOk); - CompleteStructMember member_duduction2 = TypeObjectUtils::build_complete_struct_member(common_duduction2, detail_duduction2); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction2); - } - { - TypeIdentifierPair type_ids_duduction3; - ReturnCode_t return_code_duduction3 {eprosima::fastdds::dds::RETCODE_OK}; - return_code_duduction3 = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_duduction3); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction3) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "duduction3 Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_duduction3 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_duduction3 = 0x00000014; - bool common_duduction3_ec {false}; - CommonStructMember common_duduction3 {TypeObjectUtils::build_common_struct_member(member_id_duduction3, member_flags_duduction3, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction3, common_duduction3_ec))}; - if (!common_duduction3_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction3 member TypeIdentifier inconsistent."); - return; - } - MemberName name_duduction3 = "duduction3"; - eprosima::fastcdr::optional member_ann_builtin_duduction3; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_duduction3 = TypeObjectUtils::build_complete_member_detail(name_duduction3, member_ann_builtin_duduction3, ann_custom_WeightInfoOk); - CompleteStructMember member_duduction3 = TypeObjectUtils::build_complete_struct_member(common_duduction3, detail_duduction3); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction3); - } - { - TypeIdentifierPair type_ids_INCoalYard; - ReturnCode_t return_code_INCoalYard {eprosima::fastdds::dds::RETCODE_OK}; - return_code_INCoalYard = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_INCoalYard); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_INCoalYard) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_INCoalYard)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_INCoalYard = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_INCoalYard = 0x00000015; - bool common_INCoalYard_ec {false}; - CommonStructMember common_INCoalYard {TypeObjectUtils::build_common_struct_member(member_id_INCoalYard, member_flags_INCoalYard, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_INCoalYard, common_INCoalYard_ec))}; - if (!common_INCoalYard_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure INCoalYard member TypeIdentifier inconsistent."); - return; - } - MemberName name_INCoalYard = "INCoalYard"; - eprosima::fastcdr::optional member_ann_builtin_INCoalYard; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_INCoalYard = TypeObjectUtils::build_complete_member_detail(name_INCoalYard, member_ann_builtin_INCoalYard, ann_custom_WeightInfoOk); - CompleteStructMember member_INCoalYard = TypeObjectUtils::build_complete_struct_member(common_INCoalYard, detail_INCoalYard); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_INCoalYard); - } - { - TypeIdentifierPair type_ids_OutCoalYard; - ReturnCode_t return_code_OutCoalYard {eprosima::fastdds::dds::RETCODE_OK}; - return_code_OutCoalYard = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_OutCoalYard); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_OutCoalYard) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_OutCoalYard)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_OutCoalYard = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_OutCoalYard = 0x00000016; - bool common_OutCoalYard_ec {false}; - CommonStructMember common_OutCoalYard {TypeObjectUtils::build_common_struct_member(member_id_OutCoalYard, member_flags_OutCoalYard, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_OutCoalYard, common_OutCoalYard_ec))}; - if (!common_OutCoalYard_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure OutCoalYard member TypeIdentifier inconsistent."); - return; - } - MemberName name_OutCoalYard = "OutCoalYard"; - eprosima::fastcdr::optional member_ann_builtin_OutCoalYard; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_OutCoalYard = TypeObjectUtils::build_complete_member_detail(name_OutCoalYard, member_ann_builtin_OutCoalYard, ann_custom_WeightInfoOk); - CompleteStructMember member_OutCoalYard = TypeObjectUtils::build_complete_struct_member(common_OutCoalYard, detail_OutCoalYard); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_OutCoalYard); - } - { - TypeIdentifierPair type_ids_BatchNumber; - ReturnCode_t return_code_BatchNumber {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BatchNumber = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_BatchNumber); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BatchNumber) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_BatchNumber)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_BatchNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BatchNumber = 0x00000017; - bool common_BatchNumber_ec {false}; - CommonStructMember common_BatchNumber {TypeObjectUtils::build_common_struct_member(member_id_BatchNumber, member_flags_BatchNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BatchNumber, common_BatchNumber_ec))}; - if (!common_BatchNumber_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BatchNumber member TypeIdentifier inconsistent."); - return; - } - MemberName name_BatchNumber = "BatchNumber"; - eprosima::fastcdr::optional member_ann_builtin_BatchNumber; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_BatchNumber = TypeObjectUtils::build_complete_member_detail(name_BatchNumber, member_ann_builtin_BatchNumber, ann_custom_WeightInfoOk); - CompleteStructMember member_BatchNumber = TypeObjectUtils::build_complete_struct_member(common_BatchNumber, detail_BatchNumber); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_BatchNumber); - } - { - TypeIdentifierPair type_ids_Warning; - ReturnCode_t return_code_Warning {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Warning = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_Warning); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Warning) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_Warning)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_Warning = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Warning = 0x00000018; - bool common_Warning_ec {false}; - CommonStructMember common_Warning {TypeObjectUtils::build_common_struct_member(member_id_Warning, member_flags_Warning, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Warning, common_Warning_ec))}; - if (!common_Warning_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Warning member TypeIdentifier inconsistent."); - return; - } - MemberName name_Warning = "Warning"; - eprosima::fastcdr::optional member_ann_builtin_Warning; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_Warning = TypeObjectUtils::build_complete_member_detail(name_Warning, member_ann_builtin_Warning, ann_custom_WeightInfoOk); - CompleteStructMember member_Warning = TypeObjectUtils::build_complete_struct_member(common_Warning, detail_Warning); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Warning); - } - { - TypeIdentifierPair type_ids_Tips; - ReturnCode_t return_code_Tips {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Tips = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_Tips); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Tips) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_Tips)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_Tips = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Tips = 0x00000019; - bool common_Tips_ec {false}; - CommonStructMember common_Tips {TypeObjectUtils::build_common_struct_member(member_id_Tips, member_flags_Tips, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Tips, common_Tips_ec))}; - if (!common_Tips_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Tips member TypeIdentifier inconsistent."); - return; - } - MemberName name_Tips = "Tips"; - eprosima::fastcdr::optional member_ann_builtin_Tips; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_Tips = TypeObjectUtils::build_complete_member_detail(name_Tips, member_ann_builtin_Tips, ann_custom_WeightInfoOk); - CompleteStructMember member_Tips = TypeObjectUtils::build_complete_struct_member(common_Tips, detail_Tips); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Tips); - } - { - TypeIdentifierPair type_ids_TicketType; - ReturnCode_t return_code_TicketType {eprosima::fastdds::dds::RETCODE_OK}; - return_code_TicketType = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_TicketType); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_TicketType) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_TicketType)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_TicketType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_TicketType = 0x0000001a; - bool common_TicketType_ec {false}; - CommonStructMember common_TicketType {TypeObjectUtils::build_common_struct_member(member_id_TicketType, member_flags_TicketType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TicketType, common_TicketType_ec))}; - if (!common_TicketType_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TicketType member TypeIdentifier inconsistent."); - return; - } - MemberName name_TicketType = "TicketType"; - eprosima::fastcdr::optional member_ann_builtin_TicketType; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_TicketType = TypeObjectUtils::build_complete_member_detail(name_TicketType, member_ann_builtin_TicketType, ann_custom_WeightInfoOk); - CompleteStructMember member_TicketType = TypeObjectUtils::build_complete_struct_member(common_TicketType, detail_TicketType); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TicketType); - } - { - TypeIdentifierPair type_ids_IsPrintTicker; - ReturnCode_t return_code_IsPrintTicker {eprosima::fastdds::dds::RETCODE_OK}; - return_code_IsPrintTicker = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_IsPrintTicker); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_IsPrintTicker) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "IsPrintTicker Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_IsPrintTicker = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_IsPrintTicker = 0x0000001b; - bool common_IsPrintTicker_ec {false}; - CommonStructMember common_IsPrintTicker {TypeObjectUtils::build_common_struct_member(member_id_IsPrintTicker, member_flags_IsPrintTicker, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_IsPrintTicker, common_IsPrintTicker_ec))}; - if (!common_IsPrintTicker_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure IsPrintTicker member TypeIdentifier inconsistent."); - return; - } - MemberName name_IsPrintTicker = "IsPrintTicker"; - eprosima::fastcdr::optional member_ann_builtin_IsPrintTicker; - ann_custom_WeightInfoOk.reset(); - CompleteMemberDetail detail_IsPrintTicker = TypeObjectUtils::build_complete_member_detail(name_IsPrintTicker, member_ann_builtin_IsPrintTicker, ann_custom_WeightInfoOk); - CompleteStructMember member_IsPrintTicker = TypeObjectUtils::build_complete_struct_member(common_IsPrintTicker, detail_IsPrintTicker); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_IsPrintTicker); - } - CompleteStructType struct_type_WeightInfoOk = TypeObjectUtils::build_complete_struct_type(struct_flags_WeightInfoOk, header_WeightInfoOk, member_seq_WeightInfoOk); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_WeightInfoOk, type_name_WeightInfoOk.to_string(), type_ids_WeightInfoOk)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::WeightInfoOk already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_WeightInfoError_type_identifier( - TypeIdentifierPair& type_ids_WeightInfoError) -{ - - ReturnCode_t return_code_WeightInfoError {eprosima::fastdds::dds::RETCODE_OK}; - return_code_WeightInfoError = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::WeightInfoError", type_ids_WeightInfoError); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightInfoError) - { - StructTypeFlag struct_flags_WeightInfoError = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_WeightInfoError = "WeighingSystem::WeightInfoError"; - eprosima::fastcdr::optional type_ann_builtin_WeightInfoError; - eprosima::fastcdr::optional ann_custom_WeightInfoError; - CompleteTypeDetail detail_WeightInfoError = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_WeightInfoError, ann_custom_WeightInfoError, type_name_WeightInfoError.to_string()); - CompleteStructHeader header_WeightInfoError; - header_WeightInfoError = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_WeightInfoError); - CompleteStructMemberSeq member_seq_WeightInfoError; - { - TypeIdentifierPair type_ids_CarNumber; - ReturnCode_t return_code_CarNumber {eprosima::fastdds::dds::RETCODE_OK}; - return_code_CarNumber = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_CarNumber); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_CarNumber) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_CarNumber)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_CarNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_CarNumber = 0x00000000; - bool common_CarNumber_ec {false}; - CommonStructMember common_CarNumber {TypeObjectUtils::build_common_struct_member(member_id_CarNumber, member_flags_CarNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_CarNumber, common_CarNumber_ec))}; - if (!common_CarNumber_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure CarNumber member TypeIdentifier inconsistent."); - return; - } - MemberName name_CarNumber = "CarNumber"; - eprosima::fastcdr::optional member_ann_builtin_CarNumber; - ann_custom_WeightInfoError.reset(); - CompleteMemberDetail detail_CarNumber = TypeObjectUtils::build_complete_member_detail(name_CarNumber, member_ann_builtin_CarNumber, ann_custom_WeightInfoError); - CompleteStructMember member_CarNumber = TypeObjectUtils::build_complete_struct_member(common_CarNumber, detail_CarNumber); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoError, member_CarNumber); - } - { - TypeIdentifierPair type_ids_Warning; - ReturnCode_t return_code_Warning {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Warning = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_Warning); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Warning) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_Warning)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_Warning = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_Warning = 0x00000001; - bool common_Warning_ec {false}; - CommonStructMember common_Warning {TypeObjectUtils::build_common_struct_member(member_id_Warning, member_flags_Warning, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Warning, common_Warning_ec))}; - if (!common_Warning_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Warning member TypeIdentifier inconsistent."); - return; - } - MemberName name_Warning = "Warning"; - eprosima::fastcdr::optional member_ann_builtin_Warning; - ann_custom_WeightInfoError.reset(); - CompleteMemberDetail detail_Warning = TypeObjectUtils::build_complete_member_detail(name_Warning, member_ann_builtin_Warning, ann_custom_WeightInfoError); - CompleteStructMember member_Warning = TypeObjectUtils::build_complete_struct_member(common_Warning, detail_Warning); - TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoError, member_Warning); - } - CompleteStructType struct_type_WeightInfoError = TypeObjectUtils::build_complete_struct_type(struct_flags_WeightInfoError, header_WeightInfoError, member_seq_WeightInfoError); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_WeightInfoError, type_name_WeightInfoError.to_string(), type_ids_WeightInfoError)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::WeightInfoError already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_BarCommandUpdate_type_identifier( - TypeIdentifierPair& type_ids_BarCommandUpdate) -{ - - ReturnCode_t return_code_BarCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BarCommandUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::BarCommandUpdate", type_ids_BarCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BarCommandUpdate) - { - StructTypeFlag struct_flags_BarCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_BarCommandUpdate = "WeighingSystem::BarCommandUpdate"; - eprosima::fastcdr::optional type_ann_builtin_BarCommandUpdate; - eprosima::fastcdr::optional ann_custom_BarCommandUpdate; - CompleteTypeDetail detail_BarCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_BarCommandUpdate, ann_custom_BarCommandUpdate, type_name_BarCommandUpdate.to_string()); - CompleteStructHeader header_BarCommandUpdate; - header_BarCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_BarCommandUpdate); - CompleteStructMemberSeq member_seq_BarCommandUpdate; - { - TypeIdentifierPair type_ids_FrontBarSignalUp; - ReturnCode_t return_code_FrontBarSignalUp {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontBarSignalUp = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontBarSignalUp); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarSignalUp) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontBarSignalUp Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontBarSignalUp = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontBarSignalUp = 0x00000000; - bool common_FrontBarSignalUp_ec {false}; - CommonStructMember common_FrontBarSignalUp {TypeObjectUtils::build_common_struct_member(member_id_FrontBarSignalUp, member_flags_FrontBarSignalUp, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarSignalUp, common_FrontBarSignalUp_ec))}; - if (!common_FrontBarSignalUp_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarSignalUp member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontBarSignalUp = "FrontBarSignalUp"; - eprosima::fastcdr::optional member_ann_builtin_FrontBarSignalUp; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_FrontBarSignalUp = TypeObjectUtils::build_complete_member_detail(name_FrontBarSignalUp, member_ann_builtin_FrontBarSignalUp, ann_custom_BarCommandUpdate); - CompleteStructMember member_FrontBarSignalUp = TypeObjectUtils::build_complete_struct_member(common_FrontBarSignalUp, detail_FrontBarSignalUp); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarSignalUp); - } - { - TypeIdentifierPair type_ids_FrontBarSignalDown; - ReturnCode_t return_code_FrontBarSignalDown {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontBarSignalDown = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontBarSignalDown); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarSignalDown) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontBarSignalDown Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontBarSignalDown = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontBarSignalDown = 0x00000001; - bool common_FrontBarSignalDown_ec {false}; - CommonStructMember common_FrontBarSignalDown {TypeObjectUtils::build_common_struct_member(member_id_FrontBarSignalDown, member_flags_FrontBarSignalDown, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarSignalDown, common_FrontBarSignalDown_ec))}; - if (!common_FrontBarSignalDown_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarSignalDown member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontBarSignalDown = "FrontBarSignalDown"; - eprosima::fastcdr::optional member_ann_builtin_FrontBarSignalDown; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_FrontBarSignalDown = TypeObjectUtils::build_complete_member_detail(name_FrontBarSignalDown, member_ann_builtin_FrontBarSignalDown, ann_custom_BarCommandUpdate); - CompleteStructMember member_FrontBarSignalDown = TypeObjectUtils::build_complete_struct_member(common_FrontBarSignalDown, detail_FrontBarSignalDown); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarSignalDown); - } - { - TypeIdentifierPair type_ids_FrontBarEnable; - ReturnCode_t return_code_FrontBarEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontBarEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_FrontBarEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontBarEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontBarEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontBarEnable = 0x00000002; - bool common_FrontBarEnable_ec {false}; - CommonStructMember common_FrontBarEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontBarEnable, member_flags_FrontBarEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarEnable, common_FrontBarEnable_ec))}; - if (!common_FrontBarEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontBarEnable = "FrontBarEnable"; - eprosima::fastcdr::optional member_ann_builtin_FrontBarEnable; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_FrontBarEnable = TypeObjectUtils::build_complete_member_detail(name_FrontBarEnable, member_ann_builtin_FrontBarEnable, ann_custom_BarCommandUpdate); - CompleteStructMember member_FrontBarEnable = TypeObjectUtils::build_complete_struct_member(common_FrontBarEnable, detail_FrontBarEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarEnable); - } - { - TypeIdentifierPair type_ids_BackBarSignalUp; - ReturnCode_t return_code_BackBarSignalUp {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackBarSignalUp = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackBarSignalUp); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarSignalUp) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackBarSignalUp Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackBarSignalUp = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackBarSignalUp = 0x00000003; - bool common_BackBarSignalUp_ec {false}; - CommonStructMember common_BackBarSignalUp {TypeObjectUtils::build_common_struct_member(member_id_BackBarSignalUp, member_flags_BackBarSignalUp, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarSignalUp, common_BackBarSignalUp_ec))}; - if (!common_BackBarSignalUp_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarSignalUp member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackBarSignalUp = "BackBarSignalUp"; - eprosima::fastcdr::optional member_ann_builtin_BackBarSignalUp; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_BackBarSignalUp = TypeObjectUtils::build_complete_member_detail(name_BackBarSignalUp, member_ann_builtin_BackBarSignalUp, ann_custom_BarCommandUpdate); - CompleteStructMember member_BackBarSignalUp = TypeObjectUtils::build_complete_struct_member(common_BackBarSignalUp, detail_BackBarSignalUp); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarSignalUp); - } - { - TypeIdentifierPair type_ids_BackBarSignalDown; - ReturnCode_t return_code_BackBarSignalDown {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackBarSignalDown = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackBarSignalDown); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarSignalDown) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackBarSignalDown Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackBarSignalDown = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackBarSignalDown = 0x00000004; - bool common_BackBarSignalDown_ec {false}; - CommonStructMember common_BackBarSignalDown {TypeObjectUtils::build_common_struct_member(member_id_BackBarSignalDown, member_flags_BackBarSignalDown, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarSignalDown, common_BackBarSignalDown_ec))}; - if (!common_BackBarSignalDown_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarSignalDown member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackBarSignalDown = "BackBarSignalDown"; - eprosima::fastcdr::optional member_ann_builtin_BackBarSignalDown; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_BackBarSignalDown = TypeObjectUtils::build_complete_member_detail(name_BackBarSignalDown, member_ann_builtin_BackBarSignalDown, ann_custom_BarCommandUpdate); - CompleteStructMember member_BackBarSignalDown = TypeObjectUtils::build_complete_struct_member(common_BackBarSignalDown, detail_BackBarSignalDown); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarSignalDown); - } - { - TypeIdentifierPair type_ids_BackBarEnable; - ReturnCode_t return_code_BackBarEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackBarEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_BackBarEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackBarEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackBarEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackBarEnable = 0x00000005; - bool common_BackBarEnable_ec {false}; - CommonStructMember common_BackBarEnable {TypeObjectUtils::build_common_struct_member(member_id_BackBarEnable, member_flags_BackBarEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarEnable, common_BackBarEnable_ec))}; - if (!common_BackBarEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackBarEnable = "BackBarEnable"; - eprosima::fastcdr::optional member_ann_builtin_BackBarEnable; - ann_custom_BarCommandUpdate.reset(); - CompleteMemberDetail detail_BackBarEnable = TypeObjectUtils::build_complete_member_detail(name_BackBarEnable, member_ann_builtin_BackBarEnable, ann_custom_BarCommandUpdate); - CompleteStructMember member_BackBarEnable = TypeObjectUtils::build_complete_struct_member(common_BackBarEnable, detail_BackBarEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarEnable); - } - CompleteStructType struct_type_BarCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_BarCommandUpdate, header_BarCommandUpdate, member_seq_BarCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_BarCommandUpdate, type_name_BarCommandUpdate.to_string(), type_ids_BarCommandUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::BarCommandUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_LightsCommandUpdate_type_identifier( - TypeIdentifierPair& type_ids_LightsCommandUpdate) -{ - - ReturnCode_t return_code_LightsCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_LightsCommandUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::LightsCommandUpdate", type_ids_LightsCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_LightsCommandUpdate) - { - StructTypeFlag struct_flags_LightsCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_LightsCommandUpdate = "WeighingSystem::LightsCommandUpdate"; - eprosima::fastcdr::optional type_ann_builtin_LightsCommandUpdate; - eprosima::fastcdr::optional ann_custom_LightsCommandUpdate; - CompleteTypeDetail detail_LightsCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LightsCommandUpdate, ann_custom_LightsCommandUpdate, type_name_LightsCommandUpdate.to_string()); - CompleteStructHeader header_LightsCommandUpdate; - header_LightsCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LightsCommandUpdate); - CompleteStructMemberSeq member_seq_LightsCommandUpdate; - { - TypeIdentifierPair type_ids_FrontLEDSignal; - ReturnCode_t return_code_FrontLEDSignal {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontLEDSignal = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontLEDSignal); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDSignal) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontLEDSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontLEDSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontLEDSignal = 0x00000000; - bool common_FrontLEDSignal_ec {false}; - CommonStructMember common_FrontLEDSignal {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDSignal, member_flags_FrontLEDSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDSignal, common_FrontLEDSignal_ec))}; - if (!common_FrontLEDSignal_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDSignal member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontLEDSignal = "FrontLEDSignal"; - eprosima::fastcdr::optional member_ann_builtin_FrontLEDSignal; - ann_custom_LightsCommandUpdate.reset(); - CompleteMemberDetail detail_FrontLEDSignal = TypeObjectUtils::build_complete_member_detail(name_FrontLEDSignal, member_ann_builtin_FrontLEDSignal, ann_custom_LightsCommandUpdate); - CompleteStructMember member_FrontLEDSignal = TypeObjectUtils::build_complete_struct_member(common_FrontLEDSignal, detail_FrontLEDSignal); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_FrontLEDSignal); - } - { - TypeIdentifierPair type_ids_FrontLEDEnable; - ReturnCode_t return_code_FrontLEDEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontLEDEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_FrontLEDEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontLEDEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontLEDEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontLEDEnable = 0x00000001; - bool common_FrontLEDEnable_ec {false}; - CommonStructMember common_FrontLEDEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDEnable, member_flags_FrontLEDEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDEnable, common_FrontLEDEnable_ec))}; - if (!common_FrontLEDEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontLEDEnable = "FrontLEDEnable"; - eprosima::fastcdr::optional member_ann_builtin_FrontLEDEnable; - ann_custom_LightsCommandUpdate.reset(); - CompleteMemberDetail detail_FrontLEDEnable = TypeObjectUtils::build_complete_member_detail(name_FrontLEDEnable, member_ann_builtin_FrontLEDEnable, ann_custom_LightsCommandUpdate); - CompleteStructMember member_FrontLEDEnable = TypeObjectUtils::build_complete_struct_member(common_FrontLEDEnable, detail_FrontLEDEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_FrontLEDEnable); - } - { - TypeIdentifierPair type_ids_BackLEDSignal; - ReturnCode_t return_code_BackLEDSignal {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackLEDSignal = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackLEDSignal); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDSignal) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackLEDSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackLEDSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackLEDSignal = 0x00000002; - bool common_BackLEDSignal_ec {false}; - CommonStructMember common_BackLEDSignal {TypeObjectUtils::build_common_struct_member(member_id_BackLEDSignal, member_flags_BackLEDSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDSignal, common_BackLEDSignal_ec))}; - if (!common_BackLEDSignal_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDSignal member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackLEDSignal = "BackLEDSignal"; - eprosima::fastcdr::optional member_ann_builtin_BackLEDSignal; - ann_custom_LightsCommandUpdate.reset(); - CompleteMemberDetail detail_BackLEDSignal = TypeObjectUtils::build_complete_member_detail(name_BackLEDSignal, member_ann_builtin_BackLEDSignal, ann_custom_LightsCommandUpdate); - CompleteStructMember member_BackLEDSignal = TypeObjectUtils::build_complete_struct_member(common_BackLEDSignal, detail_BackLEDSignal); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_BackLEDSignal); - } - { - TypeIdentifierPair type_ids_BackLEDEnable; - ReturnCode_t return_code_BackLEDEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackLEDEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackLEDEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackLEDEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackLEDEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackLEDEnable = 0x00000003; - bool common_BackLEDEnable_ec {false}; - CommonStructMember common_BackLEDEnable {TypeObjectUtils::build_common_struct_member(member_id_BackLEDEnable, member_flags_BackLEDEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDEnable, common_BackLEDEnable_ec))}; - if (!common_BackLEDEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackLEDEnable = "BackLEDEnable"; - eprosima::fastcdr::optional member_ann_builtin_BackLEDEnable; - ann_custom_LightsCommandUpdate.reset(); - CompleteMemberDetail detail_BackLEDEnable = TypeObjectUtils::build_complete_member_detail(name_BackLEDEnable, member_ann_builtin_BackLEDEnable, ann_custom_LightsCommandUpdate); - CompleteStructMember member_BackLEDEnable = TypeObjectUtils::build_complete_struct_member(common_BackLEDEnable, detail_BackLEDEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_BackLEDEnable); - } - CompleteStructType struct_type_LightsCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LightsCommandUpdate, header_LightsCommandUpdate, member_seq_LightsCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_LightsCommandUpdate, type_name_LightsCommandUpdate.to_string(), type_ids_LightsCommandUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::LightsCommandUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_InfraredCommandUpdate_type_identifier( - TypeIdentifierPair& type_ids_InfraredCommandUpdate) -{ - - ReturnCode_t return_code_InfraredCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_InfraredCommandUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::InfraredCommandUpdate", type_ids_InfraredCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_InfraredCommandUpdate) - { - StructTypeFlag struct_flags_InfraredCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_InfraredCommandUpdate = "WeighingSystem::InfraredCommandUpdate"; - eprosima::fastcdr::optional type_ann_builtin_InfraredCommandUpdate; - eprosima::fastcdr::optional ann_custom_InfraredCommandUpdate; - CompleteTypeDetail detail_InfraredCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InfraredCommandUpdate, ann_custom_InfraredCommandUpdate, type_name_InfraredCommandUpdate.to_string()); - CompleteStructHeader header_InfraredCommandUpdate; - header_InfraredCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InfraredCommandUpdate); - CompleteStructMemberSeq member_seq_InfraredCommandUpdate; - { - TypeIdentifierPair type_ids_FrontResistanceUnLock; - ReturnCode_t return_code_FrontResistanceUnLock {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontResistanceUnLock = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontResistanceUnLock); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceUnLock) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontResistanceUnLock Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontResistanceUnLock = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontResistanceUnLock = 0x00000000; - bool common_FrontResistanceUnLock_ec {false}; - CommonStructMember common_FrontResistanceUnLock {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceUnLock, member_flags_FrontResistanceUnLock, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceUnLock, common_FrontResistanceUnLock_ec))}; - if (!common_FrontResistanceUnLock_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceUnLock member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontResistanceUnLock = "FrontResistanceUnLock"; - eprosima::fastcdr::optional member_ann_builtin_FrontResistanceUnLock; - ann_custom_InfraredCommandUpdate.reset(); - CompleteMemberDetail detail_FrontResistanceUnLock = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceUnLock, member_ann_builtin_FrontResistanceUnLock, ann_custom_InfraredCommandUpdate); - CompleteStructMember member_FrontResistanceUnLock = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceUnLock, detail_FrontResistanceUnLock); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_FrontResistanceUnLock); - } - { - TypeIdentifierPair type_ids_FrontResistanceEnable; - ReturnCode_t return_code_FrontResistanceEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontResistanceEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_FrontResistanceEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontResistanceEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontResistanceEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontResistanceEnable = 0x00000001; - bool common_FrontResistanceEnable_ec {false}; - CommonStructMember common_FrontResistanceEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceEnable, member_flags_FrontResistanceEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceEnable, common_FrontResistanceEnable_ec))}; - if (!common_FrontResistanceEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontResistanceEnable = "FrontResistanceEnable"; - eprosima::fastcdr::optional member_ann_builtin_FrontResistanceEnable; - ann_custom_InfraredCommandUpdate.reset(); - CompleteMemberDetail detail_FrontResistanceEnable = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceEnable, member_ann_builtin_FrontResistanceEnable, ann_custom_InfraredCommandUpdate); - CompleteStructMember member_FrontResistanceEnable = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceEnable, detail_FrontResistanceEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_FrontResistanceEnable); - } - { - TypeIdentifierPair type_ids_BackResistanceUnLock; - ReturnCode_t return_code_BackResistanceUnLock {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackResistanceUnLock = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackResistanceUnLock); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceUnLock) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackResistanceUnLock Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackResistanceUnLock = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackResistanceUnLock = 0x00000002; - bool common_BackResistanceUnLock_ec {false}; - CommonStructMember common_BackResistanceUnLock {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceUnLock, member_flags_BackResistanceUnLock, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceUnLock, common_BackResistanceUnLock_ec))}; - if (!common_BackResistanceUnLock_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceUnLock member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackResistanceUnLock = "BackResistanceUnLock"; - eprosima::fastcdr::optional member_ann_builtin_BackResistanceUnLock; - ann_custom_InfraredCommandUpdate.reset(); - CompleteMemberDetail detail_BackResistanceUnLock = TypeObjectUtils::build_complete_member_detail(name_BackResistanceUnLock, member_ann_builtin_BackResistanceUnLock, ann_custom_InfraredCommandUpdate); - CompleteStructMember member_BackResistanceUnLock = TypeObjectUtils::build_complete_struct_member(common_BackResistanceUnLock, detail_BackResistanceUnLock); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_BackResistanceUnLock); - } - { - TypeIdentifierPair type_ids_BackResistanceEnable; - ReturnCode_t return_code_BackResistanceEnable {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackResistanceEnable = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_bool", type_ids_BackResistanceEnable); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceEnable) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackResistanceEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackResistanceEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackResistanceEnable = 0x00000003; - bool common_BackResistanceEnable_ec {false}; - CommonStructMember common_BackResistanceEnable {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceEnable, member_flags_BackResistanceEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceEnable, common_BackResistanceEnable_ec))}; - if (!common_BackResistanceEnable_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceEnable member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackResistanceEnable = "BackResistanceEnable"; - eprosima::fastcdr::optional member_ann_builtin_BackResistanceEnable; - ann_custom_InfraredCommandUpdate.reset(); - CompleteMemberDetail detail_BackResistanceEnable = TypeObjectUtils::build_complete_member_detail(name_BackResistanceEnable, member_ann_builtin_BackResistanceEnable, ann_custom_InfraredCommandUpdate); - CompleteStructMember member_BackResistanceEnable = TypeObjectUtils::build_complete_struct_member(common_BackResistanceEnable, detail_BackResistanceEnable); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_BackResistanceEnable); - } - CompleteStructType struct_type_InfraredCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_InfraredCommandUpdate, header_InfraredCommandUpdate, member_seq_InfraredCommandUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_InfraredCommandUpdate, type_name_InfraredCommandUpdate.to_string(), type_ids_InfraredCommandUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::InfraredCommandUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_BarUpdate_type_identifier( - TypeIdentifierPair& type_ids_BarUpdate) -{ - - ReturnCode_t return_code_BarUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BarUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::BarUpdate", type_ids_BarUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BarUpdate) - { - StructTypeFlag struct_flags_BarUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_BarUpdate = "WeighingSystem::BarUpdate"; - eprosima::fastcdr::optional type_ann_builtin_BarUpdate; - eprosima::fastcdr::optional ann_custom_BarUpdate; - CompleteTypeDetail detail_BarUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_BarUpdate, ann_custom_BarUpdate, type_name_BarUpdate.to_string()); - CompleteStructHeader header_BarUpdate; - header_BarUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_BarUpdate); - CompleteStructMemberSeq member_seq_BarUpdate; - { - TypeIdentifierPair type_ids_FrontBarState; - ReturnCode_t return_code_FrontBarState {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontBarState = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontBarState); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarState) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontBarState Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontBarState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontBarState = 0x00000000; - bool common_FrontBarState_ec {false}; - CommonStructMember common_FrontBarState {TypeObjectUtils::build_common_struct_member(member_id_FrontBarState, member_flags_FrontBarState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarState, common_FrontBarState_ec))}; - if (!common_FrontBarState_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarState member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontBarState = "FrontBarState"; - eprosima::fastcdr::optional member_ann_builtin_FrontBarState; - ann_custom_BarUpdate.reset(); - CompleteMemberDetail detail_FrontBarState = TypeObjectUtils::build_complete_member_detail(name_FrontBarState, member_ann_builtin_FrontBarState, ann_custom_BarUpdate); - CompleteStructMember member_FrontBarState = TypeObjectUtils::build_complete_struct_member(common_FrontBarState, detail_FrontBarState); - TypeObjectUtils::add_complete_struct_member(member_seq_BarUpdate, member_FrontBarState); - } - { - TypeIdentifierPair type_ids_BackBarState; - ReturnCode_t return_code_BackBarState {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackBarState = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackBarState); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarState) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackBarState Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackBarState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackBarState = 0x00000001; - bool common_BackBarState_ec {false}; - CommonStructMember common_BackBarState {TypeObjectUtils::build_common_struct_member(member_id_BackBarState, member_flags_BackBarState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarState, common_BackBarState_ec))}; - if (!common_BackBarState_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarState member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackBarState = "BackBarState"; - eprosima::fastcdr::optional member_ann_builtin_BackBarState; - ann_custom_BarUpdate.reset(); - CompleteMemberDetail detail_BackBarState = TypeObjectUtils::build_complete_member_detail(name_BackBarState, member_ann_builtin_BackBarState, ann_custom_BarUpdate); - CompleteStructMember member_BackBarState = TypeObjectUtils::build_complete_struct_member(common_BackBarState, detail_BackBarState); - TypeObjectUtils::add_complete_struct_member(member_seq_BarUpdate, member_BackBarState); - } - CompleteStructType struct_type_BarUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_BarUpdate, header_BarUpdate, member_seq_BarUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_BarUpdate, type_name_BarUpdate.to_string(), type_ids_BarUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::BarUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_LightsUpdate_type_identifier( - TypeIdentifierPair& type_ids_LightsUpdate) -{ - - ReturnCode_t return_code_LightsUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_LightsUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::LightsUpdate", type_ids_LightsUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_LightsUpdate) - { - StructTypeFlag struct_flags_LightsUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_LightsUpdate = "WeighingSystem::LightsUpdate"; - eprosima::fastcdr::optional type_ann_builtin_LightsUpdate; - eprosima::fastcdr::optional ann_custom_LightsUpdate; - CompleteTypeDetail detail_LightsUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LightsUpdate, ann_custom_LightsUpdate, type_name_LightsUpdate.to_string()); - CompleteStructHeader header_LightsUpdate; - header_LightsUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LightsUpdate); - CompleteStructMemberSeq member_seq_LightsUpdate; - { - TypeIdentifierPair type_ids_FrontLEDState; - ReturnCode_t return_code_FrontLEDState {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontLEDState = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontLEDState); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDState) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontLEDState Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontLEDState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontLEDState = 0x00000000; - bool common_FrontLEDState_ec {false}; - CommonStructMember common_FrontLEDState {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDState, member_flags_FrontLEDState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDState, common_FrontLEDState_ec))}; - if (!common_FrontLEDState_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDState member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontLEDState = "FrontLEDState"; - eprosima::fastcdr::optional member_ann_builtin_FrontLEDState; - ann_custom_LightsUpdate.reset(); - CompleteMemberDetail detail_FrontLEDState = TypeObjectUtils::build_complete_member_detail(name_FrontLEDState, member_ann_builtin_FrontLEDState, ann_custom_LightsUpdate); - CompleteStructMember member_FrontLEDState = TypeObjectUtils::build_complete_struct_member(common_FrontLEDState, detail_FrontLEDState); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsUpdate, member_FrontLEDState); - } - { - TypeIdentifierPair type_ids_BackLEDState; - ReturnCode_t return_code_BackLEDState {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackLEDState = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackLEDState); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDState) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackLEDState Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackLEDState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackLEDState = 0x00000001; - bool common_BackLEDState_ec {false}; - CommonStructMember common_BackLEDState {TypeObjectUtils::build_common_struct_member(member_id_BackLEDState, member_flags_BackLEDState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDState, common_BackLEDState_ec))}; - if (!common_BackLEDState_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDState member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackLEDState = "BackLEDState"; - eprosima::fastcdr::optional member_ann_builtin_BackLEDState; - ann_custom_LightsUpdate.reset(); - CompleteMemberDetail detail_BackLEDState = TypeObjectUtils::build_complete_member_detail(name_BackLEDState, member_ann_builtin_BackLEDState, ann_custom_LightsUpdate); - CompleteStructMember member_BackLEDState = TypeObjectUtils::build_complete_struct_member(common_BackLEDState, detail_BackLEDState); - TypeObjectUtils::add_complete_struct_member(member_seq_LightsUpdate, member_BackLEDState); - } - CompleteStructType struct_type_LightsUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LightsUpdate, header_LightsUpdate, member_seq_LightsUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_LightsUpdate, type_name_LightsUpdate.to_string(), type_ids_LightsUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::LightsUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_InfraredUpdate_type_identifier( - TypeIdentifierPair& type_ids_InfraredUpdate) -{ - - ReturnCode_t return_code_InfraredUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_InfraredUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::InfraredUpdate", type_ids_InfraredUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_InfraredUpdate) - { - StructTypeFlag struct_flags_InfraredUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_InfraredUpdate = "WeighingSystem::InfraredUpdate"; - eprosima::fastcdr::optional type_ann_builtin_InfraredUpdate; - eprosima::fastcdr::optional ann_custom_InfraredUpdate; - CompleteTypeDetail detail_InfraredUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InfraredUpdate, ann_custom_InfraredUpdate, type_name_InfraredUpdate.to_string()); - CompleteStructHeader header_InfraredUpdate; - header_InfraredUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InfraredUpdate); - CompleteStructMemberSeq member_seq_InfraredUpdate; - { - TypeIdentifierPair type_ids_FrontResistanceSignal; - ReturnCode_t return_code_FrontResistanceSignal {eprosima::fastdds::dds::RETCODE_OK}; - return_code_FrontResistanceSignal = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_FrontResistanceSignal); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceSignal) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "FrontResistanceSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_FrontResistanceSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_FrontResistanceSignal = 0x00000000; - bool common_FrontResistanceSignal_ec {false}; - CommonStructMember common_FrontResistanceSignal {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceSignal, member_flags_FrontResistanceSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceSignal, common_FrontResistanceSignal_ec))}; - if (!common_FrontResistanceSignal_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceSignal member TypeIdentifier inconsistent."); - return; - } - MemberName name_FrontResistanceSignal = "FrontResistanceSignal"; - eprosima::fastcdr::optional member_ann_builtin_FrontResistanceSignal; - ann_custom_InfraredUpdate.reset(); - CompleteMemberDetail detail_FrontResistanceSignal = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceSignal, member_ann_builtin_FrontResistanceSignal, ann_custom_InfraredUpdate); - CompleteStructMember member_FrontResistanceSignal = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceSignal, detail_FrontResistanceSignal); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredUpdate, member_FrontResistanceSignal); - } - { - TypeIdentifierPair type_ids_BackResistanceSignal; - ReturnCode_t return_code_BackResistanceSignal {eprosima::fastdds::dds::RETCODE_OK}; - return_code_BackResistanceSignal = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_BackResistanceSignal); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceSignal) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "BackResistanceSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_BackResistanceSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_BackResistanceSignal = 0x00000001; - bool common_BackResistanceSignal_ec {false}; - CommonStructMember common_BackResistanceSignal {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceSignal, member_flags_BackResistanceSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceSignal, common_BackResistanceSignal_ec))}; - if (!common_BackResistanceSignal_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceSignal member TypeIdentifier inconsistent."); - return; - } - MemberName name_BackResistanceSignal = "BackResistanceSignal"; - eprosima::fastcdr::optional member_ann_builtin_BackResistanceSignal; - ann_custom_InfraredUpdate.reset(); - CompleteMemberDetail detail_BackResistanceSignal = TypeObjectUtils::build_complete_member_detail(name_BackResistanceSignal, member_ann_builtin_BackResistanceSignal, ann_custom_InfraredUpdate); - CompleteStructMember member_BackResistanceSignal = TypeObjectUtils::build_complete_struct_member(common_BackResistanceSignal, detail_BackResistanceSignal); - TypeObjectUtils::add_complete_struct_member(member_seq_InfraredUpdate, member_BackResistanceSignal); - } - CompleteStructType struct_type_InfraredUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_InfraredUpdate, header_InfraredUpdate, member_seq_InfraredUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_InfraredUpdate, type_name_InfraredUpdate.to_string(), type_ids_InfraredUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::InfraredUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_LicenseSnapUpdate_type_identifier( - TypeIdentifierPair& type_ids_LicenseSnapUpdate) -{ - - ReturnCode_t return_code_LicenseSnapUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_LicenseSnapUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::LicenseSnapUpdate", type_ids_LicenseSnapUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_LicenseSnapUpdate) - { - StructTypeFlag struct_flags_LicenseSnapUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_LicenseSnapUpdate = "WeighingSystem::LicenseSnapUpdate"; - eprosima::fastcdr::optional type_ann_builtin_LicenseSnapUpdate; - eprosima::fastcdr::optional ann_custom_LicenseSnapUpdate; - CompleteTypeDetail detail_LicenseSnapUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LicenseSnapUpdate, ann_custom_LicenseSnapUpdate, type_name_LicenseSnapUpdate.to_string()); - CompleteStructHeader header_LicenseSnapUpdate; - header_LicenseSnapUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LicenseSnapUpdate); - CompleteStructMemberSeq member_seq_LicenseSnapUpdate; - { - TypeIdentifierPair type_ids_NewTag; - ReturnCode_t return_code_NewTag {eprosima::fastdds::dds::RETCODE_OK}; - return_code_NewTag = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_NewTag); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_NewTag) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "NewTag Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_NewTag = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_NewTag = 0x00000000; - bool common_NewTag_ec {false}; - CommonStructMember common_NewTag {TypeObjectUtils::build_common_struct_member(member_id_NewTag, member_flags_NewTag, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_NewTag, common_NewTag_ec))}; - if (!common_NewTag_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure NewTag member TypeIdentifier inconsistent."); - return; - } - MemberName name_NewTag = "NewTag"; - eprosima::fastcdr::optional member_ann_builtin_NewTag; - ann_custom_LicenseSnapUpdate.reset(); - CompleteMemberDetail detail_NewTag = TypeObjectUtils::build_complete_member_detail(name_NewTag, member_ann_builtin_NewTag, ann_custom_LicenseSnapUpdate); - CompleteStructMember member_NewTag = TypeObjectUtils::build_complete_struct_member(common_NewTag, detail_NewTag); - TypeObjectUtils::add_complete_struct_member(member_seq_LicenseSnapUpdate, member_NewTag); - } - { - TypeIdentifierPair type_ids_License; - ReturnCode_t return_code_License {eprosima::fastdds::dds::RETCODE_OK}; - return_code_License = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_License); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_License) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_License)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_License = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_License = 0x00000001; - bool common_License_ec {false}; - CommonStructMember common_License {TypeObjectUtils::build_common_struct_member(member_id_License, member_flags_License, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_License, common_License_ec))}; - if (!common_License_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure License member TypeIdentifier inconsistent."); - return; - } - MemberName name_License = "License"; - eprosima::fastcdr::optional member_ann_builtin_License; - ann_custom_LicenseSnapUpdate.reset(); - CompleteMemberDetail detail_License = TypeObjectUtils::build_complete_member_detail(name_License, member_ann_builtin_License, ann_custom_LicenseSnapUpdate); - CompleteStructMember member_License = TypeObjectUtils::build_complete_struct_member(common_License, detail_License); - TypeObjectUtils::add_complete_struct_member(member_seq_LicenseSnapUpdate, member_License); - } - CompleteStructType struct_type_LicenseSnapUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LicenseSnapUpdate, header_LicenseSnapUpdate, member_seq_LicenseSnapUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_LicenseSnapUpdate, type_name_LicenseSnapUpdate.to_string(), type_ids_LicenseSnapUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::LicenseSnapUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_Voice_type_identifier( - TypeIdentifierPair& type_ids_Voice) -{ - - ReturnCode_t return_code_Voice {eprosima::fastdds::dds::RETCODE_OK}; - return_code_Voice = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::Voice", type_ids_Voice); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_Voice) - { - StructTypeFlag struct_flags_Voice = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_Voice = "WeighingSystem::Voice"; - eprosima::fastcdr::optional type_ann_builtin_Voice; - eprosima::fastcdr::optional ann_custom_Voice; - CompleteTypeDetail detail_Voice = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Voice, ann_custom_Voice, type_name_Voice.to_string()); - CompleteStructHeader header_Voice; - header_Voice = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Voice); - CompleteStructMemberSeq member_seq_Voice; - { - TypeIdentifierPair type_ids_VoiceID; - ReturnCode_t return_code_VoiceID {eprosima::fastdds::dds::RETCODE_OK}; - return_code_VoiceID = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_int32_t", type_ids_VoiceID); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_VoiceID) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "VoiceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_VoiceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_VoiceID = 0x00000000; - bool common_VoiceID_ec {false}; - CommonStructMember common_VoiceID {TypeObjectUtils::build_common_struct_member(member_id_VoiceID, member_flags_VoiceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_VoiceID, common_VoiceID_ec))}; - if (!common_VoiceID_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure VoiceID member TypeIdentifier inconsistent."); - return; - } - MemberName name_VoiceID = "VoiceID"; - eprosima::fastcdr::optional member_ann_builtin_VoiceID; - ann_custom_Voice.reset(); - CompleteMemberDetail detail_VoiceID = TypeObjectUtils::build_complete_member_detail(name_VoiceID, member_ann_builtin_VoiceID, ann_custom_Voice); - CompleteStructMember member_VoiceID = TypeObjectUtils::build_complete_struct_member(common_VoiceID, detail_VoiceID); - TypeObjectUtils::add_complete_struct_member(member_seq_Voice, member_VoiceID); - } - { - TypeIdentifierPair type_ids_VoiceContent; - ReturnCode_t return_code_VoiceContent {eprosima::fastdds::dds::RETCODE_OK}; - return_code_VoiceContent = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_VoiceContent); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_VoiceContent) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_VoiceContent)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_VoiceContent = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_VoiceContent = 0x00000001; - bool common_VoiceContent_ec {false}; - CommonStructMember common_VoiceContent {TypeObjectUtils::build_common_struct_member(member_id_VoiceContent, member_flags_VoiceContent, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_VoiceContent, common_VoiceContent_ec))}; - if (!common_VoiceContent_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure VoiceContent member TypeIdentifier inconsistent."); - return; - } - MemberName name_VoiceContent = "VoiceContent"; - eprosima::fastcdr::optional member_ann_builtin_VoiceContent; - ann_custom_Voice.reset(); - CompleteMemberDetail detail_VoiceContent = TypeObjectUtils::build_complete_member_detail(name_VoiceContent, member_ann_builtin_VoiceContent, ann_custom_Voice); - CompleteStructMember member_VoiceContent = TypeObjectUtils::build_complete_struct_member(common_VoiceContent, detail_VoiceContent); - TypeObjectUtils::add_complete_struct_member(member_seq_Voice, member_VoiceContent); - } - CompleteStructType struct_type_Voice = TypeObjectUtils::build_complete_struct_type(struct_flags_Voice, header_Voice, member_seq_Voice); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_Voice, type_name_Voice.to_string(), type_ids_Voice)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::Voice already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_SummaryUpdate_type_identifier( - TypeIdentifierPair& type_ids_SummaryUpdate) -{ - - ReturnCode_t return_code_SummaryUpdate {eprosima::fastdds::dds::RETCODE_OK}; - return_code_SummaryUpdate = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "WeighingSystem::SummaryUpdate", type_ids_SummaryUpdate); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_SummaryUpdate) - { - StructTypeFlag struct_flags_SummaryUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_SummaryUpdate = "WeighingSystem::SummaryUpdate"; - eprosima::fastcdr::optional type_ann_builtin_SummaryUpdate; - eprosima::fastcdr::optional ann_custom_SummaryUpdate; - CompleteTypeDetail detail_SummaryUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_SummaryUpdate, ann_custom_SummaryUpdate, type_name_SummaryUpdate.to_string()); - CompleteStructHeader header_SummaryUpdate; - header_SummaryUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_SummaryUpdate); - CompleteStructMemberSeq member_seq_SummaryUpdate; - { - TypeIdentifierPair type_ids_License; - ReturnCode_t return_code_License {eprosima::fastdds::dds::RETCODE_OK}; - return_code_License = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_License); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_License) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_License)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_License = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_License = 0x00000000; - bool common_License_ec {false}; - CommonStructMember common_License {TypeObjectUtils::build_common_struct_member(member_id_License, member_flags_License, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_License, common_License_ec))}; - if (!common_License_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure License member TypeIdentifier inconsistent."); - return; - } - MemberName name_License = "License"; - eprosima::fastcdr::optional member_ann_builtin_License; - ann_custom_SummaryUpdate.reset(); - CompleteMemberDetail detail_License = TypeObjectUtils::build_complete_member_detail(name_License, member_ann_builtin_License, ann_custom_SummaryUpdate); - CompleteStructMember member_License = TypeObjectUtils::build_complete_struct_member(common_License, detail_License); - TypeObjectUtils::add_complete_struct_member(member_seq_SummaryUpdate, member_License); - } - { - TypeIdentifierPair type_ids_StableValue; - ReturnCode_t return_code_StableValue {eprosima::fastdds::dds::RETCODE_OK}; - return_code_StableValue = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_float", type_ids_StableValue); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_StableValue) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "StableValue Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_StableValue = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_StableValue = 0x00000001; - bool common_StableValue_ec {false}; - CommonStructMember common_StableValue {TypeObjectUtils::build_common_struct_member(member_id_StableValue, member_flags_StableValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_StableValue, common_StableValue_ec))}; - if (!common_StableValue_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure StableValue member TypeIdentifier inconsistent."); - return; - } - MemberName name_StableValue = "StableValue"; - eprosima::fastcdr::optional member_ann_builtin_StableValue; - ann_custom_SummaryUpdate.reset(); - CompleteMemberDetail detail_StableValue = TypeObjectUtils::build_complete_member_detail(name_StableValue, member_ann_builtin_StableValue, ann_custom_SummaryUpdate); - CompleteStructMember member_StableValue = TypeObjectUtils::build_complete_struct_member(common_StableValue, detail_StableValue); - TypeObjectUtils::add_complete_struct_member(member_seq_SummaryUpdate, member_StableValue); - } - CompleteStructType struct_type_SummaryUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_SummaryUpdate, header_SummaryUpdate, member_seq_SummaryUpdate); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_SummaryUpdate, type_name_SummaryUpdate.to_string(), type_ids_SummaryUpdate)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "WeighingSystem::SummaryUpdate already registered in TypeObjectRegistry for a different type."); - } - } -} - -} // namespace WeighingSystem -namespace InternalSystem { -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_PrintReq_type_identifier( - TypeIdentifierPair& type_ids_PrintReq) -{ - - ReturnCode_t return_code_PrintReq {eprosima::fastdds::dds::RETCODE_OK}; - return_code_PrintReq = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "InternalSystem::PrintReq", type_ids_PrintReq); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_PrintReq) - { - StructTypeFlag struct_flags_PrintReq = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_PrintReq = "InternalSystem::PrintReq"; - eprosima::fastcdr::optional type_ann_builtin_PrintReq; - eprosima::fastcdr::optional ann_custom_PrintReq; - CompleteTypeDetail detail_PrintReq = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_PrintReq, ann_custom_PrintReq, type_name_PrintReq.to_string()); - CompleteStructHeader header_PrintReq; - header_PrintReq = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_PrintReq); - CompleteStructMemberSeq member_seq_PrintReq; - { - TypeIdentifierPair type_ids_index; - ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; - return_code_index = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_uint32_t", type_ids_index); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_index = 0x00000000; - bool common_index_ec {false}; - CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; - if (!common_index_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); - return; - } - MemberName name_index = "index"; - eprosima::fastcdr::optional member_ann_builtin_index; - ann_custom_PrintReq.reset(); - CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_PrintReq); - CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); - TypeObjectUtils::add_complete_struct_member(member_seq_PrintReq, member_index); - } - { - TypeIdentifierPair type_ids_msg; - ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent element TypeIdentifier."); - return; - } - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent key TypeIdentifier."); - return; - } - EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_BOTH; - if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d()) || - (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || - (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_sdefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_ldefn().header().equiv_kind()) || - (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().header().equiv_kind())) || - (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().header().equiv_kind()))) - { - equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_COMPLETE; - } - CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded); - { - SBound bound = 0; - PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, bound, - eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, - eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded)); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_msg = 0x00000001; - bool common_msg_ec {false}; - CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; - if (!common_msg_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); - return; - } - MemberName name_msg = "msg"; - eprosima::fastcdr::optional member_ann_builtin_msg; - ann_custom_PrintReq.reset(); - CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_PrintReq); - CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); - TypeObjectUtils::add_complete_struct_member(member_seq_PrintReq, member_msg); - } - CompleteStructType struct_type_PrintReq = TypeObjectUtils::build_complete_struct_type(struct_flags_PrintReq, header_PrintReq, member_seq_PrintReq); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_PrintReq, type_name_PrintReq.to_string(), type_ids_PrintReq)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "InternalSystem::PrintReq already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_PrintRsp_type_identifier( - TypeIdentifierPair& type_ids_PrintRsp) -{ - - ReturnCode_t return_code_PrintRsp {eprosima::fastdds::dds::RETCODE_OK}; - return_code_PrintRsp = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "InternalSystem::PrintRsp", type_ids_PrintRsp); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_PrintRsp) - { - StructTypeFlag struct_flags_PrintRsp = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_PrintRsp = "InternalSystem::PrintRsp"; - eprosima::fastcdr::optional type_ann_builtin_PrintRsp; - eprosima::fastcdr::optional ann_custom_PrintRsp; - CompleteTypeDetail detail_PrintRsp = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_PrintRsp, ann_custom_PrintRsp, type_name_PrintRsp.to_string()); - CompleteStructHeader header_PrintRsp; - header_PrintRsp = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_PrintRsp); - CompleteStructMemberSeq member_seq_PrintRsp; - { - TypeIdentifierPair type_ids_index; - ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; - return_code_index = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_uint32_t", type_ids_index); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_index = 0x00000000; - bool common_index_ec {false}; - CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; - if (!common_index_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); - return; - } - MemberName name_index = "index"; - eprosima::fastcdr::optional member_ann_builtin_index; - ann_custom_PrintRsp.reset(); - CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_PrintRsp); - CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); - TypeObjectUtils::add_complete_struct_member(member_seq_PrintRsp, member_index); - } - { - TypeIdentifierPair type_ids_msg; - ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_msg = 0x00000001; - bool common_msg_ec {false}; - CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; - if (!common_msg_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); - return; - } - MemberName name_msg = "msg"; - eprosima::fastcdr::optional member_ann_builtin_msg; - ann_custom_PrintRsp.reset(); - CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_PrintRsp); - CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); - TypeObjectUtils::add_complete_struct_member(member_seq_PrintRsp, member_msg); - } - CompleteStructType struct_type_PrintRsp = TypeObjectUtils::build_complete_struct_type(struct_flags_PrintRsp, header_PrintRsp, member_seq_PrintRsp); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_PrintRsp, type_name_PrintRsp.to_string(), type_ids_PrintRsp)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "InternalSystem::PrintRsp already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_IoCtrlReq_type_identifier( - TypeIdentifierPair& type_ids_IoCtrlReq) -{ - - ReturnCode_t return_code_IoCtrlReq {eprosima::fastdds::dds::RETCODE_OK}; - return_code_IoCtrlReq = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "InternalSystem::IoCtrlReq", type_ids_IoCtrlReq); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_IoCtrlReq) - { - StructTypeFlag struct_flags_IoCtrlReq = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_IoCtrlReq = "InternalSystem::IoCtrlReq"; - eprosima::fastcdr::optional type_ann_builtin_IoCtrlReq; - eprosima::fastcdr::optional ann_custom_IoCtrlReq; - CompleteTypeDetail detail_IoCtrlReq = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_IoCtrlReq, ann_custom_IoCtrlReq, type_name_IoCtrlReq.to_string()); - CompleteStructHeader header_IoCtrlReq; - header_IoCtrlReq = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_IoCtrlReq); - CompleteStructMemberSeq member_seq_IoCtrlReq; - { - TypeIdentifierPair type_ids_index; - ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; - return_code_index = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_uint32_t", type_ids_index); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_index = 0x00000000; - bool common_index_ec {false}; - CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; - if (!common_index_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); - return; - } - MemberName name_index = "index"; - eprosima::fastcdr::optional member_ann_builtin_index; - ann_custom_IoCtrlReq.reset(); - CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_IoCtrlReq); - CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); - TypeObjectUtils::add_complete_struct_member(member_seq_IoCtrlReq, member_index); - } - { - TypeIdentifierPair type_ids_msg; - ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent element TypeIdentifier."); - return; - } - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent key TypeIdentifier."); - return; - } - EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_BOTH; - if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d()) || - (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || - (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_sdefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_ldefn().header().equiv_kind()) || - (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().header().equiv_kind())) || - (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().header().equiv_kind()))) - { - equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_COMPLETE; - } - CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded); - { - SBound bound = 0; - PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, bound, - eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, - eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded)); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_msg = 0x00000001; - bool common_msg_ec {false}; - CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; - if (!common_msg_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); - return; - } - MemberName name_msg = "msg"; - eprosima::fastcdr::optional member_ann_builtin_msg; - ann_custom_IoCtrlReq.reset(); - CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_IoCtrlReq); - CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); - TypeObjectUtils::add_complete_struct_member(member_seq_IoCtrlReq, member_msg); - } - CompleteStructType struct_type_IoCtrlReq = TypeObjectUtils::build_complete_struct_type(struct_flags_IoCtrlReq, header_IoCtrlReq, member_seq_IoCtrlReq); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_IoCtrlReq, type_name_IoCtrlReq.to_string(), type_ids_IoCtrlReq)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "InternalSystem::IoCtrlReq already registered in TypeObjectRegistry for a different type."); - } - } -} -// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method -void register_IoCtrlRsp_type_identifier( - TypeIdentifierPair& type_ids_IoCtrlRsp) -{ - - ReturnCode_t return_code_IoCtrlRsp {eprosima::fastdds::dds::RETCODE_OK}; - return_code_IoCtrlRsp = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "InternalSystem::IoCtrlRsp", type_ids_IoCtrlRsp); - if (eprosima::fastdds::dds::RETCODE_OK != return_code_IoCtrlRsp) - { - StructTypeFlag struct_flags_IoCtrlRsp = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, - false, false); - QualifiedTypeName type_name_IoCtrlRsp = "InternalSystem::IoCtrlRsp"; - eprosima::fastcdr::optional type_ann_builtin_IoCtrlRsp; - eprosima::fastcdr::optional ann_custom_IoCtrlRsp; - CompleteTypeDetail detail_IoCtrlRsp = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_IoCtrlRsp, ann_custom_IoCtrlRsp, type_name_IoCtrlRsp.to_string()); - CompleteStructHeader header_IoCtrlRsp; - header_IoCtrlRsp = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_IoCtrlRsp); - CompleteStructMemberSeq member_seq_IoCtrlRsp; - { - TypeIdentifierPair type_ids_index; - ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; - return_code_index = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "_uint32_t", type_ids_index); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); - return; - } - StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_index = 0x00000000; - bool common_index_ec {false}; - CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; - if (!common_index_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); - return; - } - MemberName name_index = "index"; - eprosima::fastcdr::optional member_ann_builtin_index; - ann_custom_IoCtrlRsp.reset(); - CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_IoCtrlRsp); - CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); - TypeObjectUtils::add_complete_struct_member(member_seq_IoCtrlRsp, member_index); - } - { - TypeIdentifierPair type_ids_msg; - ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent element TypeIdentifier."); - return; - } - return_code_msg = - eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( - "anonymous_string_unbounded", type_ids_msg); - - if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) - { - { - SBound bound = 0; - StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, - "anonymous_string_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; - TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; - if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent key TypeIdentifier."); - return; - } - EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_BOTH; - if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d()) || - (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || - (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_sdefn().header().equiv_kind()) || - (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_ldefn().header().equiv_kind()) || - (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().header().equiv_kind())) || - (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().header().equiv_kind()))) - { - equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_COMPLETE; - } - CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; - PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded); - { - SBound bound = 0; - PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, bound, - eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, - eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded)); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); - } - } - } - StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, - false, false, false, false); - MemberId member_id_msg = 0x00000001; - bool common_msg_ec {false}; - CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; - if (!common_msg_ec) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); - return; - } - MemberName name_msg = "msg"; - eprosima::fastcdr::optional member_ann_builtin_msg; - ann_custom_IoCtrlRsp.reset(); - CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_IoCtrlRsp); - CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); - TypeObjectUtils::add_complete_struct_member(member_seq_IoCtrlRsp, member_msg); - } - CompleteStructType struct_type_IoCtrlRsp = TypeObjectUtils::build_complete_struct_type(struct_flags_IoCtrlRsp, header_IoCtrlRsp, member_seq_IoCtrlRsp); - if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == - TypeObjectUtils::build_and_register_struct_type_object(struct_type_IoCtrlRsp, type_name_IoCtrlRsp.to_string(), type_ids_IoCtrlRsp)) - { - EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, - "InternalSystem::IoCtrlRsp already registered in TypeObjectRegistry for a different type."); - } - } -} - -} // namespace InternalSystem - diff --git a/lib/WeighingDDSType.hpp b/lib/WeighingDDSType.hpp new file mode 100644 index 0000000..d1dfc05 --- /dev/null +++ b/lib/WeighingDDSType.hpp @@ -0,0 +1,7994 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file WeighingDDSType.hpp + * This header file contains the declaration of the described types in the IDL file. + * + * This file was generated by the tool fastddsgen. + */ + +#ifndef FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_HPP +#define FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_HPP + +#include +#include +#include +#include +#include + +#include + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#define eProsima_user_DllExport __declspec( dllexport ) +#else +#define eProsima_user_DllExport +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define eProsima_user_DllExport +#endif // _WIN32 + +#if defined(_WIN32) +#if defined(EPROSIMA_USER_DLL_EXPORT) +#if defined(WEIGHINGDDSTYPE_SOURCE) +#define WEIGHINGDDSTYPE_DllAPI __declspec( dllexport ) +#else +#define WEIGHINGDDSTYPE_DllAPI __declspec( dllimport ) +#endif // WEIGHINGDDSTYPE_SOURCE +#else +#define WEIGHINGDDSTYPE_DllAPI +#endif // EPROSIMA_USER_DLL_EXPORT +#else +#define WEIGHINGDDSTYPE_DllAPI +#endif // _WIN32 + +namespace WeighingSystem { + +/*! + * @brief This class represents the structure ScaleInfo defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class ScaleInfo +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport ScaleInfo() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~ScaleInfo() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object ScaleInfo that will be copied. + */ + eProsima_user_DllExport ScaleInfo( + const ScaleInfo& x) + { + m_HasVehicle = x.m_HasVehicle; + + m_WeightOK = x.m_WeightOK; + + m_State = x.m_State; + + m_Value = x.m_Value; + + m_StableValue = x.m_StableValue; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object ScaleInfo that will be copied. + */ + eProsima_user_DllExport ScaleInfo( + ScaleInfo&& x) noexcept + { + m_HasVehicle = x.m_HasVehicle; + m_WeightOK = x.m_WeightOK; + m_State = x.m_State; + m_Value = x.m_Value; + m_StableValue = x.m_StableValue; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object ScaleInfo that will be copied. + */ + eProsima_user_DllExport ScaleInfo& operator =( + const ScaleInfo& x) + { + + m_HasVehicle = x.m_HasVehicle; + + m_WeightOK = x.m_WeightOK; + + m_State = x.m_State; + + m_Value = x.m_Value; + + m_StableValue = x.m_StableValue; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object ScaleInfo that will be copied. + */ + eProsima_user_DllExport ScaleInfo& operator =( + ScaleInfo&& x) noexcept + { + + m_HasVehicle = x.m_HasVehicle; + m_WeightOK = x.m_WeightOK; + m_State = x.m_State; + m_Value = x.m_Value; + m_StableValue = x.m_StableValue; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x ScaleInfo object to compare. + */ + eProsima_user_DllExport bool operator ==( + const ScaleInfo& x) const + { + return (m_HasVehicle == x.m_HasVehicle && + m_WeightOK == x.m_WeightOK && + m_State == x.m_State && + m_Value == x.m_Value && + m_StableValue == x.m_StableValue); + } + + /*! + * @brief Comparison operator. + * @param x ScaleInfo object to compare. + */ + eProsima_user_DllExport bool operator !=( + const ScaleInfo& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member HasVehicle + * @param _HasVehicle New value for member HasVehicle + */ + eProsima_user_DllExport void HasVehicle( + bool _HasVehicle) + { + m_HasVehicle = _HasVehicle; + } + + /*! + * @brief This function returns the value of member HasVehicle + * @return Value of member HasVehicle + */ + eProsima_user_DllExport bool HasVehicle() const + { + return m_HasVehicle; + } + + /*! + * @brief This function returns a reference to member HasVehicle + * @return Reference to member HasVehicle + */ + eProsima_user_DllExport bool& HasVehicle() + { + return m_HasVehicle; + } + + + /*! + * @brief This function sets a value in member WeightOK + * @param _WeightOK New value for member WeightOK + */ + eProsima_user_DllExport void WeightOK( + bool _WeightOK) + { + m_WeightOK = _WeightOK; + } + + /*! + * @brief This function returns the value of member WeightOK + * @return Value of member WeightOK + */ + eProsima_user_DllExport bool WeightOK() const + { + return m_WeightOK; + } + + /*! + * @brief This function returns a reference to member WeightOK + * @return Reference to member WeightOK + */ + eProsima_user_DllExport bool& WeightOK() + { + return m_WeightOK; + } + + + /*! + * @brief This function sets a value in member State + * @param _State New value for member State + */ + eProsima_user_DllExport void State( + bool _State) + { + m_State = _State; + } + + /*! + * @brief This function returns the value of member State + * @return Value of member State + */ + eProsima_user_DllExport bool State() const + { + return m_State; + } + + /*! + * @brief This function returns a reference to member State + * @return Reference to member State + */ + eProsima_user_DllExport bool& State() + { + return m_State; + } + + + /*! + * @brief This function sets a value in member Value + * @param _Value New value for member Value + */ + eProsima_user_DllExport void Value( + float _Value) + { + m_Value = _Value; + } + + /*! + * @brief This function returns the value of member Value + * @return Value of member Value + */ + eProsima_user_DllExport float Value() const + { + return m_Value; + } + + /*! + * @brief This function returns a reference to member Value + * @return Reference to member Value + */ + eProsima_user_DllExport float& Value() + { + return m_Value; + } + + + /*! + * @brief This function sets a value in member StableValue + * @param _StableValue New value for member StableValue + */ + eProsima_user_DllExport void StableValue( + float _StableValue) + { + m_StableValue = _StableValue; + } + + /*! + * @brief This function returns the value of member StableValue + * @return Value of member StableValue + */ + eProsima_user_DllExport float StableValue() const + { + return m_StableValue; + } + + /*! + * @brief This function returns a reference to member StableValue + * @return Reference to member StableValue + */ + eProsima_user_DllExport float& StableValue() + { + return m_StableValue; + } + + + +private: + + bool m_HasVehicle{false}; + bool m_WeightOK{false}; + bool m_State{false}; + float m_Value{0.0}; + float m_StableValue{0.0}; + +}; +/*! + * @brief This class represents the structure ScaleCommand defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class ScaleCommand +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport ScaleCommand() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~ScaleCommand() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object ScaleCommand that will be copied. + */ + eProsima_user_DllExport ScaleCommand( + const ScaleCommand& x) + { + m_Enable = x.m_Enable; + + m_ResetZero = x.m_ResetZero; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object ScaleCommand that will be copied. + */ + eProsima_user_DllExport ScaleCommand( + ScaleCommand&& x) noexcept + { + m_Enable = x.m_Enable; + m_ResetZero = x.m_ResetZero; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object ScaleCommand that will be copied. + */ + eProsima_user_DllExport ScaleCommand& operator =( + const ScaleCommand& x) + { + + m_Enable = x.m_Enable; + + m_ResetZero = x.m_ResetZero; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object ScaleCommand that will be copied. + */ + eProsima_user_DllExport ScaleCommand& operator =( + ScaleCommand&& x) noexcept + { + + m_Enable = x.m_Enable; + m_ResetZero = x.m_ResetZero; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x ScaleCommand object to compare. + */ + eProsima_user_DllExport bool operator ==( + const ScaleCommand& x) const + { + return (m_Enable == x.m_Enable && + m_ResetZero == x.m_ResetZero); + } + + /*! + * @brief Comparison operator. + * @param x ScaleCommand object to compare. + */ + eProsima_user_DllExport bool operator !=( + const ScaleCommand& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member Enable + * @param _Enable New value for member Enable + */ + eProsima_user_DllExport void Enable( + bool _Enable) + { + m_Enable = _Enable; + } + + /*! + * @brief This function returns the value of member Enable + * @return Value of member Enable + */ + eProsima_user_DllExport bool Enable() const + { + return m_Enable; + } + + /*! + * @brief This function returns a reference to member Enable + * @return Reference to member Enable + */ + eProsima_user_DllExport bool& Enable() + { + return m_Enable; + } + + + /*! + * @brief This function sets a value in member ResetZero + * @param _ResetZero New value for member ResetZero + */ + eProsima_user_DllExport void ResetZero( + int32_t _ResetZero) + { + m_ResetZero = _ResetZero; + } + + /*! + * @brief This function returns the value of member ResetZero + * @return Value of member ResetZero + */ + eProsima_user_DllExport int32_t ResetZero() const + { + return m_ResetZero; + } + + /*! + * @brief This function returns a reference to member ResetZero + * @return Reference to member ResetZero + */ + eProsima_user_DllExport int32_t& ResetZero() + { + return m_ResetZero; + } + + + +private: + + bool m_Enable{false}; + int32_t m_ResetZero{0}; + +}; +/*! + * @brief This class represents the structure WeightInfoOk defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class WeightInfoOk +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport WeightInfoOk() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~WeightInfoOk() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object WeightInfoOk that will be copied. + */ + eProsima_user_DllExport WeightInfoOk( + const WeightInfoOk& x) + { + m_GrossDeviceID = x.m_GrossDeviceID; + + m_GrossDeviceName = x.m_GrossDeviceName; + + m_GrossDeviceType = x.m_GrossDeviceType; + + m_TareDeviceID = x.m_TareDeviceID; + + m_TareDeviceName = x.m_TareDeviceName; + + m_TareDeviceType = x.m_TareDeviceType; + + m_EnterpriseName = x.m_EnterpriseName; + + m_BillNumber = x.m_BillNumber; + + m_CarNumber = x.m_CarNumber; + + m_Supplier = x.m_Supplier; + + m_GoodsType = x.m_GoodsType; + + m_GrossWeight = x.m_GrossWeight; + + m_GrossTime = x.m_GrossTime; + + m_GrossOperater = x.m_GrossOperater; + + m_Tare = x.m_Tare; + + m_TareTime = x.m_TareTime; + + m_TareOperater = x.m_TareOperater; + + m_Suttle = x.m_Suttle; + + m_duduction1 = x.m_duduction1; + + m_duduction2 = x.m_duduction2; + + m_duduction3 = x.m_duduction3; + + m_INCoalYard = x.m_INCoalYard; + + m_OutCoalYard = x.m_OutCoalYard; + + m_BatchNumber = x.m_BatchNumber; + + m_Warning = x.m_Warning; + + m_Tips = x.m_Tips; + + m_TicketType = x.m_TicketType; + + m_IsPrintTicker = x.m_IsPrintTicker; + + m_OrderNumber = x.m_OrderNumber; + + m_VehicleAndVesselNumber = x.m_VehicleAndVesselNumber; + + m_ReceiveCompany = x.m_ReceiveCompany; + + m_TransportCompany = x.m_TransportCompany; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object WeightInfoOk that will be copied. + */ + eProsima_user_DllExport WeightInfoOk( + WeightInfoOk&& x) noexcept + { + m_GrossDeviceID = x.m_GrossDeviceID; + m_GrossDeviceName = std::move(x.m_GrossDeviceName); + m_GrossDeviceType = std::move(x.m_GrossDeviceType); + m_TareDeviceID = x.m_TareDeviceID; + m_TareDeviceName = std::move(x.m_TareDeviceName); + m_TareDeviceType = std::move(x.m_TareDeviceType); + m_EnterpriseName = std::move(x.m_EnterpriseName); + m_BillNumber = std::move(x.m_BillNumber); + m_CarNumber = std::move(x.m_CarNumber); + m_Supplier = std::move(x.m_Supplier); + m_GoodsType = std::move(x.m_GoodsType); + m_GrossWeight = x.m_GrossWeight; + m_GrossTime = std::move(x.m_GrossTime); + m_GrossOperater = std::move(x.m_GrossOperater); + m_Tare = x.m_Tare; + m_TareTime = std::move(x.m_TareTime); + m_TareOperater = std::move(x.m_TareOperater); + m_Suttle = x.m_Suttle; + m_duduction1 = x.m_duduction1; + m_duduction2 = x.m_duduction2; + m_duduction3 = x.m_duduction3; + m_INCoalYard = std::move(x.m_INCoalYard); + m_OutCoalYard = std::move(x.m_OutCoalYard); + m_BatchNumber = std::move(x.m_BatchNumber); + m_Warning = std::move(x.m_Warning); + m_Tips = std::move(x.m_Tips); + m_TicketType = std::move(x.m_TicketType); + m_IsPrintTicker = x.m_IsPrintTicker; + m_OrderNumber = std::move(x.m_OrderNumber); + m_VehicleAndVesselNumber = std::move(x.m_VehicleAndVesselNumber); + m_ReceiveCompany = std::move(x.m_ReceiveCompany); + m_TransportCompany = std::move(x.m_TransportCompany); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object WeightInfoOk that will be copied. + */ + eProsima_user_DllExport WeightInfoOk& operator =( + const WeightInfoOk& x) + { + + m_GrossDeviceID = x.m_GrossDeviceID; + + m_GrossDeviceName = x.m_GrossDeviceName; + + m_GrossDeviceType = x.m_GrossDeviceType; + + m_TareDeviceID = x.m_TareDeviceID; + + m_TareDeviceName = x.m_TareDeviceName; + + m_TareDeviceType = x.m_TareDeviceType; + + m_EnterpriseName = x.m_EnterpriseName; + + m_BillNumber = x.m_BillNumber; + + m_CarNumber = x.m_CarNumber; + + m_Supplier = x.m_Supplier; + + m_GoodsType = x.m_GoodsType; + + m_GrossWeight = x.m_GrossWeight; + + m_GrossTime = x.m_GrossTime; + + m_GrossOperater = x.m_GrossOperater; + + m_Tare = x.m_Tare; + + m_TareTime = x.m_TareTime; + + m_TareOperater = x.m_TareOperater; + + m_Suttle = x.m_Suttle; + + m_duduction1 = x.m_duduction1; + + m_duduction2 = x.m_duduction2; + + m_duduction3 = x.m_duduction3; + + m_INCoalYard = x.m_INCoalYard; + + m_OutCoalYard = x.m_OutCoalYard; + + m_BatchNumber = x.m_BatchNumber; + + m_Warning = x.m_Warning; + + m_Tips = x.m_Tips; + + m_TicketType = x.m_TicketType; + + m_IsPrintTicker = x.m_IsPrintTicker; + + m_OrderNumber = x.m_OrderNumber; + + m_VehicleAndVesselNumber = x.m_VehicleAndVesselNumber; + + m_ReceiveCompany = x.m_ReceiveCompany; + + m_TransportCompany = x.m_TransportCompany; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object WeightInfoOk that will be copied. + */ + eProsima_user_DllExport WeightInfoOk& operator =( + WeightInfoOk&& x) noexcept + { + + m_GrossDeviceID = x.m_GrossDeviceID; + m_GrossDeviceName = std::move(x.m_GrossDeviceName); + m_GrossDeviceType = std::move(x.m_GrossDeviceType); + m_TareDeviceID = x.m_TareDeviceID; + m_TareDeviceName = std::move(x.m_TareDeviceName); + m_TareDeviceType = std::move(x.m_TareDeviceType); + m_EnterpriseName = std::move(x.m_EnterpriseName); + m_BillNumber = std::move(x.m_BillNumber); + m_CarNumber = std::move(x.m_CarNumber); + m_Supplier = std::move(x.m_Supplier); + m_GoodsType = std::move(x.m_GoodsType); + m_GrossWeight = x.m_GrossWeight; + m_GrossTime = std::move(x.m_GrossTime); + m_GrossOperater = std::move(x.m_GrossOperater); + m_Tare = x.m_Tare; + m_TareTime = std::move(x.m_TareTime); + m_TareOperater = std::move(x.m_TareOperater); + m_Suttle = x.m_Suttle; + m_duduction1 = x.m_duduction1; + m_duduction2 = x.m_duduction2; + m_duduction3 = x.m_duduction3; + m_INCoalYard = std::move(x.m_INCoalYard); + m_OutCoalYard = std::move(x.m_OutCoalYard); + m_BatchNumber = std::move(x.m_BatchNumber); + m_Warning = std::move(x.m_Warning); + m_Tips = std::move(x.m_Tips); + m_TicketType = std::move(x.m_TicketType); + m_IsPrintTicker = x.m_IsPrintTicker; + m_OrderNumber = std::move(x.m_OrderNumber); + m_VehicleAndVesselNumber = std::move(x.m_VehicleAndVesselNumber); + m_ReceiveCompany = std::move(x.m_ReceiveCompany); + m_TransportCompany = std::move(x.m_TransportCompany); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x WeightInfoOk object to compare. + */ + eProsima_user_DllExport bool operator ==( + const WeightInfoOk& x) const + { + return (m_GrossDeviceID == x.m_GrossDeviceID && + m_GrossDeviceName == x.m_GrossDeviceName && + m_GrossDeviceType == x.m_GrossDeviceType && + m_TareDeviceID == x.m_TareDeviceID && + m_TareDeviceName == x.m_TareDeviceName && + m_TareDeviceType == x.m_TareDeviceType && + m_EnterpriseName == x.m_EnterpriseName && + m_BillNumber == x.m_BillNumber && + m_CarNumber == x.m_CarNumber && + m_Supplier == x.m_Supplier && + m_GoodsType == x.m_GoodsType && + m_GrossWeight == x.m_GrossWeight && + m_GrossTime == x.m_GrossTime && + m_GrossOperater == x.m_GrossOperater && + m_Tare == x.m_Tare && + m_TareTime == x.m_TareTime && + m_TareOperater == x.m_TareOperater && + m_Suttle == x.m_Suttle && + m_duduction1 == x.m_duduction1 && + m_duduction2 == x.m_duduction2 && + m_duduction3 == x.m_duduction3 && + m_INCoalYard == x.m_INCoalYard && + m_OutCoalYard == x.m_OutCoalYard && + m_BatchNumber == x.m_BatchNumber && + m_Warning == x.m_Warning && + m_Tips == x.m_Tips && + m_TicketType == x.m_TicketType && + m_IsPrintTicker == x.m_IsPrintTicker && + m_OrderNumber == x.m_OrderNumber && + m_VehicleAndVesselNumber == x.m_VehicleAndVesselNumber && + m_ReceiveCompany == x.m_ReceiveCompany && + m_TransportCompany == x.m_TransportCompany); + } + + /*! + * @brief Comparison operator. + * @param x WeightInfoOk object to compare. + */ + eProsima_user_DllExport bool operator !=( + const WeightInfoOk& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member GrossDeviceID + * @param _GrossDeviceID New value for member GrossDeviceID + */ + eProsima_user_DllExport void GrossDeviceID( + int32_t _GrossDeviceID) + { + m_GrossDeviceID = _GrossDeviceID; + } + + /*! + * @brief This function returns the value of member GrossDeviceID + * @return Value of member GrossDeviceID + */ + eProsima_user_DllExport int32_t GrossDeviceID() const + { + return m_GrossDeviceID; + } + + /*! + * @brief This function returns a reference to member GrossDeviceID + * @return Reference to member GrossDeviceID + */ + eProsima_user_DllExport int32_t& GrossDeviceID() + { + return m_GrossDeviceID; + } + + + /*! + * @brief This function copies the value in member GrossDeviceName + * @param _GrossDeviceName New value to be copied in member GrossDeviceName + */ + eProsima_user_DllExport void GrossDeviceName( + const std::string& _GrossDeviceName) + { + m_GrossDeviceName = _GrossDeviceName; + } + + /*! + * @brief This function moves the value in member GrossDeviceName + * @param _GrossDeviceName New value to be moved in member GrossDeviceName + */ + eProsima_user_DllExport void GrossDeviceName( + std::string&& _GrossDeviceName) + { + m_GrossDeviceName = std::move(_GrossDeviceName); + } + + /*! + * @brief This function returns a constant reference to member GrossDeviceName + * @return Constant reference to member GrossDeviceName + */ + eProsima_user_DllExport const std::string& GrossDeviceName() const + { + return m_GrossDeviceName; + } + + /*! + * @brief This function returns a reference to member GrossDeviceName + * @return Reference to member GrossDeviceName + */ + eProsima_user_DllExport std::string& GrossDeviceName() + { + return m_GrossDeviceName; + } + + + /*! + * @brief This function copies the value in member GrossDeviceType + * @param _GrossDeviceType New value to be copied in member GrossDeviceType + */ + eProsima_user_DllExport void GrossDeviceType( + const std::string& _GrossDeviceType) + { + m_GrossDeviceType = _GrossDeviceType; + } + + /*! + * @brief This function moves the value in member GrossDeviceType + * @param _GrossDeviceType New value to be moved in member GrossDeviceType + */ + eProsima_user_DllExport void GrossDeviceType( + std::string&& _GrossDeviceType) + { + m_GrossDeviceType = std::move(_GrossDeviceType); + } + + /*! + * @brief This function returns a constant reference to member GrossDeviceType + * @return Constant reference to member GrossDeviceType + */ + eProsima_user_DllExport const std::string& GrossDeviceType() const + { + return m_GrossDeviceType; + } + + /*! + * @brief This function returns a reference to member GrossDeviceType + * @return Reference to member GrossDeviceType + */ + eProsima_user_DllExport std::string& GrossDeviceType() + { + return m_GrossDeviceType; + } + + + /*! + * @brief This function sets a value in member TareDeviceID + * @param _TareDeviceID New value for member TareDeviceID + */ + eProsima_user_DllExport void TareDeviceID( + int32_t _TareDeviceID) + { + m_TareDeviceID = _TareDeviceID; + } + + /*! + * @brief This function returns the value of member TareDeviceID + * @return Value of member TareDeviceID + */ + eProsima_user_DllExport int32_t TareDeviceID() const + { + return m_TareDeviceID; + } + + /*! + * @brief This function returns a reference to member TareDeviceID + * @return Reference to member TareDeviceID + */ + eProsima_user_DllExport int32_t& TareDeviceID() + { + return m_TareDeviceID; + } + + + /*! + * @brief This function copies the value in member TareDeviceName + * @param _TareDeviceName New value to be copied in member TareDeviceName + */ + eProsima_user_DllExport void TareDeviceName( + const std::string& _TareDeviceName) + { + m_TareDeviceName = _TareDeviceName; + } + + /*! + * @brief This function moves the value in member TareDeviceName + * @param _TareDeviceName New value to be moved in member TareDeviceName + */ + eProsima_user_DllExport void TareDeviceName( + std::string&& _TareDeviceName) + { + m_TareDeviceName = std::move(_TareDeviceName); + } + + /*! + * @brief This function returns a constant reference to member TareDeviceName + * @return Constant reference to member TareDeviceName + */ + eProsima_user_DllExport const std::string& TareDeviceName() const + { + return m_TareDeviceName; + } + + /*! + * @brief This function returns a reference to member TareDeviceName + * @return Reference to member TareDeviceName + */ + eProsima_user_DllExport std::string& TareDeviceName() + { + return m_TareDeviceName; + } + + + /*! + * @brief This function copies the value in member TareDeviceType + * @param _TareDeviceType New value to be copied in member TareDeviceType + */ + eProsima_user_DllExport void TareDeviceType( + const std::string& _TareDeviceType) + { + m_TareDeviceType = _TareDeviceType; + } + + /*! + * @brief This function moves the value in member TareDeviceType + * @param _TareDeviceType New value to be moved in member TareDeviceType + */ + eProsima_user_DllExport void TareDeviceType( + std::string&& _TareDeviceType) + { + m_TareDeviceType = std::move(_TareDeviceType); + } + + /*! + * @brief This function returns a constant reference to member TareDeviceType + * @return Constant reference to member TareDeviceType + */ + eProsima_user_DllExport const std::string& TareDeviceType() const + { + return m_TareDeviceType; + } + + /*! + * @brief This function returns a reference to member TareDeviceType + * @return Reference to member TareDeviceType + */ + eProsima_user_DllExport std::string& TareDeviceType() + { + return m_TareDeviceType; + } + + + /*! + * @brief This function copies the value in member EnterpriseName + * @param _EnterpriseName New value to be copied in member EnterpriseName + */ + eProsima_user_DllExport void EnterpriseName( + const std::string& _EnterpriseName) + { + m_EnterpriseName = _EnterpriseName; + } + + /*! + * @brief This function moves the value in member EnterpriseName + * @param _EnterpriseName New value to be moved in member EnterpriseName + */ + eProsima_user_DllExport void EnterpriseName( + std::string&& _EnterpriseName) + { + m_EnterpriseName = std::move(_EnterpriseName); + } + + /*! + * @brief This function returns a constant reference to member EnterpriseName + * @return Constant reference to member EnterpriseName + */ + eProsima_user_DllExport const std::string& EnterpriseName() const + { + return m_EnterpriseName; + } + + /*! + * @brief This function returns a reference to member EnterpriseName + * @return Reference to member EnterpriseName + */ + eProsima_user_DllExport std::string& EnterpriseName() + { + return m_EnterpriseName; + } + + + /*! + * @brief This function copies the value in member BillNumber + * @param _BillNumber New value to be copied in member BillNumber + */ + eProsima_user_DllExport void BillNumber( + const std::string& _BillNumber) + { + m_BillNumber = _BillNumber; + } + + /*! + * @brief This function moves the value in member BillNumber + * @param _BillNumber New value to be moved in member BillNumber + */ + eProsima_user_DllExport void BillNumber( + std::string&& _BillNumber) + { + m_BillNumber = std::move(_BillNumber); + } + + /*! + * @brief This function returns a constant reference to member BillNumber + * @return Constant reference to member BillNumber + */ + eProsima_user_DllExport const std::string& BillNumber() const + { + return m_BillNumber; + } + + /*! + * @brief This function returns a reference to member BillNumber + * @return Reference to member BillNumber + */ + eProsima_user_DllExport std::string& BillNumber() + { + return m_BillNumber; + } + + + /*! + * @brief This function copies the value in member CarNumber + * @param _CarNumber New value to be copied in member CarNumber + */ + eProsima_user_DllExport void CarNumber( + const std::string& _CarNumber) + { + m_CarNumber = _CarNumber; + } + + /*! + * @brief This function moves the value in member CarNumber + * @param _CarNumber New value to be moved in member CarNumber + */ + eProsima_user_DllExport void CarNumber( + std::string&& _CarNumber) + { + m_CarNumber = std::move(_CarNumber); + } + + /*! + * @brief This function returns a constant reference to member CarNumber + * @return Constant reference to member CarNumber + */ + eProsima_user_DllExport const std::string& CarNumber() const + { + return m_CarNumber; + } + + /*! + * @brief This function returns a reference to member CarNumber + * @return Reference to member CarNumber + */ + eProsima_user_DllExport std::string& CarNumber() + { + return m_CarNumber; + } + + + /*! + * @brief This function copies the value in member Supplier + * @param _Supplier New value to be copied in member Supplier + */ + eProsima_user_DllExport void Supplier( + const std::string& _Supplier) + { + m_Supplier = _Supplier; + } + + /*! + * @brief This function moves the value in member Supplier + * @param _Supplier New value to be moved in member Supplier + */ + eProsima_user_DllExport void Supplier( + std::string&& _Supplier) + { + m_Supplier = std::move(_Supplier); + } + + /*! + * @brief This function returns a constant reference to member Supplier + * @return Constant reference to member Supplier + */ + eProsima_user_DllExport const std::string& Supplier() const + { + return m_Supplier; + } + + /*! + * @brief This function returns a reference to member Supplier + * @return Reference to member Supplier + */ + eProsima_user_DllExport std::string& Supplier() + { + return m_Supplier; + } + + + /*! + * @brief This function copies the value in member GoodsType + * @param _GoodsType New value to be copied in member GoodsType + */ + eProsima_user_DllExport void GoodsType( + const std::string& _GoodsType) + { + m_GoodsType = _GoodsType; + } + + /*! + * @brief This function moves the value in member GoodsType + * @param _GoodsType New value to be moved in member GoodsType + */ + eProsima_user_DllExport void GoodsType( + std::string&& _GoodsType) + { + m_GoodsType = std::move(_GoodsType); + } + + /*! + * @brief This function returns a constant reference to member GoodsType + * @return Constant reference to member GoodsType + */ + eProsima_user_DllExport const std::string& GoodsType() const + { + return m_GoodsType; + } + + /*! + * @brief This function returns a reference to member GoodsType + * @return Reference to member GoodsType + */ + eProsima_user_DllExport std::string& GoodsType() + { + return m_GoodsType; + } + + + /*! + * @brief This function sets a value in member GrossWeight + * @param _GrossWeight New value for member GrossWeight + */ + eProsima_user_DllExport void GrossWeight( + float _GrossWeight) + { + m_GrossWeight = _GrossWeight; + } + + /*! + * @brief This function returns the value of member GrossWeight + * @return Value of member GrossWeight + */ + eProsima_user_DllExport float GrossWeight() const + { + return m_GrossWeight; + } + + /*! + * @brief This function returns a reference to member GrossWeight + * @return Reference to member GrossWeight + */ + eProsima_user_DllExport float& GrossWeight() + { + return m_GrossWeight; + } + + + /*! + * @brief This function copies the value in member GrossTime + * @param _GrossTime New value to be copied in member GrossTime + */ + eProsima_user_DllExport void GrossTime( + const std::string& _GrossTime) + { + m_GrossTime = _GrossTime; + } + + /*! + * @brief This function moves the value in member GrossTime + * @param _GrossTime New value to be moved in member GrossTime + */ + eProsima_user_DllExport void GrossTime( + std::string&& _GrossTime) + { + m_GrossTime = std::move(_GrossTime); + } + + /*! + * @brief This function returns a constant reference to member GrossTime + * @return Constant reference to member GrossTime + */ + eProsima_user_DllExport const std::string& GrossTime() const + { + return m_GrossTime; + } + + /*! + * @brief This function returns a reference to member GrossTime + * @return Reference to member GrossTime + */ + eProsima_user_DllExport std::string& GrossTime() + { + return m_GrossTime; + } + + + /*! + * @brief This function copies the value in member GrossOperater + * @param _GrossOperater New value to be copied in member GrossOperater + */ + eProsima_user_DllExport void GrossOperater( + const std::string& _GrossOperater) + { + m_GrossOperater = _GrossOperater; + } + + /*! + * @brief This function moves the value in member GrossOperater + * @param _GrossOperater New value to be moved in member GrossOperater + */ + eProsima_user_DllExport void GrossOperater( + std::string&& _GrossOperater) + { + m_GrossOperater = std::move(_GrossOperater); + } + + /*! + * @brief This function returns a constant reference to member GrossOperater + * @return Constant reference to member GrossOperater + */ + eProsima_user_DllExport const std::string& GrossOperater() const + { + return m_GrossOperater; + } + + /*! + * @brief This function returns a reference to member GrossOperater + * @return Reference to member GrossOperater + */ + eProsima_user_DllExport std::string& GrossOperater() + { + return m_GrossOperater; + } + + + /*! + * @brief This function sets a value in member Tare + * @param _Tare New value for member Tare + */ + eProsima_user_DllExport void Tare( + float _Tare) + { + m_Tare = _Tare; + } + + /*! + * @brief This function returns the value of member Tare + * @return Value of member Tare + */ + eProsima_user_DllExport float Tare() const + { + return m_Tare; + } + + /*! + * @brief This function returns a reference to member Tare + * @return Reference to member Tare + */ + eProsima_user_DllExport float& Tare() + { + return m_Tare; + } + + + /*! + * @brief This function copies the value in member TareTime + * @param _TareTime New value to be copied in member TareTime + */ + eProsima_user_DllExport void TareTime( + const std::string& _TareTime) + { + m_TareTime = _TareTime; + } + + /*! + * @brief This function moves the value in member TareTime + * @param _TareTime New value to be moved in member TareTime + */ + eProsima_user_DllExport void TareTime( + std::string&& _TareTime) + { + m_TareTime = std::move(_TareTime); + } + + /*! + * @brief This function returns a constant reference to member TareTime + * @return Constant reference to member TareTime + */ + eProsima_user_DllExport const std::string& TareTime() const + { + return m_TareTime; + } + + /*! + * @brief This function returns a reference to member TareTime + * @return Reference to member TareTime + */ + eProsima_user_DllExport std::string& TareTime() + { + return m_TareTime; + } + + + /*! + * @brief This function copies the value in member TareOperater + * @param _TareOperater New value to be copied in member TareOperater + */ + eProsima_user_DllExport void TareOperater( + const std::string& _TareOperater) + { + m_TareOperater = _TareOperater; + } + + /*! + * @brief This function moves the value in member TareOperater + * @param _TareOperater New value to be moved in member TareOperater + */ + eProsima_user_DllExport void TareOperater( + std::string&& _TareOperater) + { + m_TareOperater = std::move(_TareOperater); + } + + /*! + * @brief This function returns a constant reference to member TareOperater + * @return Constant reference to member TareOperater + */ + eProsima_user_DllExport const std::string& TareOperater() const + { + return m_TareOperater; + } + + /*! + * @brief This function returns a reference to member TareOperater + * @return Reference to member TareOperater + */ + eProsima_user_DllExport std::string& TareOperater() + { + return m_TareOperater; + } + + + /*! + * @brief This function sets a value in member Suttle + * @param _Suttle New value for member Suttle + */ + eProsima_user_DllExport void Suttle( + float _Suttle) + { + m_Suttle = _Suttle; + } + + /*! + * @brief This function returns the value of member Suttle + * @return Value of member Suttle + */ + eProsima_user_DllExport float Suttle() const + { + return m_Suttle; + } + + /*! + * @brief This function returns a reference to member Suttle + * @return Reference to member Suttle + */ + eProsima_user_DllExport float& Suttle() + { + return m_Suttle; + } + + + /*! + * @brief This function sets a value in member duduction1 + * @param _duduction1 New value for member duduction1 + */ + eProsima_user_DllExport void duduction1( + float _duduction1) + { + m_duduction1 = _duduction1; + } + + /*! + * @brief This function returns the value of member duduction1 + * @return Value of member duduction1 + */ + eProsima_user_DllExport float duduction1() const + { + return m_duduction1; + } + + /*! + * @brief This function returns a reference to member duduction1 + * @return Reference to member duduction1 + */ + eProsima_user_DllExport float& duduction1() + { + return m_duduction1; + } + + + /*! + * @brief This function sets a value in member duduction2 + * @param _duduction2 New value for member duduction2 + */ + eProsima_user_DllExport void duduction2( + float _duduction2) + { + m_duduction2 = _duduction2; + } + + /*! + * @brief This function returns the value of member duduction2 + * @return Value of member duduction2 + */ + eProsima_user_DllExport float duduction2() const + { + return m_duduction2; + } + + /*! + * @brief This function returns a reference to member duduction2 + * @return Reference to member duduction2 + */ + eProsima_user_DllExport float& duduction2() + { + return m_duduction2; + } + + + /*! + * @brief This function sets a value in member duduction3 + * @param _duduction3 New value for member duduction3 + */ + eProsima_user_DllExport void duduction3( + float _duduction3) + { + m_duduction3 = _duduction3; + } + + /*! + * @brief This function returns the value of member duduction3 + * @return Value of member duduction3 + */ + eProsima_user_DllExport float duduction3() const + { + return m_duduction3; + } + + /*! + * @brief This function returns a reference to member duduction3 + * @return Reference to member duduction3 + */ + eProsima_user_DllExport float& duduction3() + { + return m_duduction3; + } + + + /*! + * @brief This function copies the value in member INCoalYard + * @param _INCoalYard New value to be copied in member INCoalYard + */ + eProsima_user_DllExport void INCoalYard( + const std::string& _INCoalYard) + { + m_INCoalYard = _INCoalYard; + } + + /*! + * @brief This function moves the value in member INCoalYard + * @param _INCoalYard New value to be moved in member INCoalYard + */ + eProsima_user_DllExport void INCoalYard( + std::string&& _INCoalYard) + { + m_INCoalYard = std::move(_INCoalYard); + } + + /*! + * @brief This function returns a constant reference to member INCoalYard + * @return Constant reference to member INCoalYard + */ + eProsima_user_DllExport const std::string& INCoalYard() const + { + return m_INCoalYard; + } + + /*! + * @brief This function returns a reference to member INCoalYard + * @return Reference to member INCoalYard + */ + eProsima_user_DllExport std::string& INCoalYard() + { + return m_INCoalYard; + } + + + /*! + * @brief This function copies the value in member OutCoalYard + * @param _OutCoalYard New value to be copied in member OutCoalYard + */ + eProsima_user_DllExport void OutCoalYard( + const std::string& _OutCoalYard) + { + m_OutCoalYard = _OutCoalYard; + } + + /*! + * @brief This function moves the value in member OutCoalYard + * @param _OutCoalYard New value to be moved in member OutCoalYard + */ + eProsima_user_DllExport void OutCoalYard( + std::string&& _OutCoalYard) + { + m_OutCoalYard = std::move(_OutCoalYard); + } + + /*! + * @brief This function returns a constant reference to member OutCoalYard + * @return Constant reference to member OutCoalYard + */ + eProsima_user_DllExport const std::string& OutCoalYard() const + { + return m_OutCoalYard; + } + + /*! + * @brief This function returns a reference to member OutCoalYard + * @return Reference to member OutCoalYard + */ + eProsima_user_DllExport std::string& OutCoalYard() + { + return m_OutCoalYard; + } + + + /*! + * @brief This function copies the value in member BatchNumber + * @param _BatchNumber New value to be copied in member BatchNumber + */ + eProsima_user_DllExport void BatchNumber( + const std::string& _BatchNumber) + { + m_BatchNumber = _BatchNumber; + } + + /*! + * @brief This function moves the value in member BatchNumber + * @param _BatchNumber New value to be moved in member BatchNumber + */ + eProsima_user_DllExport void BatchNumber( + std::string&& _BatchNumber) + { + m_BatchNumber = std::move(_BatchNumber); + } + + /*! + * @brief This function returns a constant reference to member BatchNumber + * @return Constant reference to member BatchNumber + */ + eProsima_user_DllExport const std::string& BatchNumber() const + { + return m_BatchNumber; + } + + /*! + * @brief This function returns a reference to member BatchNumber + * @return Reference to member BatchNumber + */ + eProsima_user_DllExport std::string& BatchNumber() + { + return m_BatchNumber; + } + + + /*! + * @brief This function copies the value in member Warning + * @param _Warning New value to be copied in member Warning + */ + eProsima_user_DllExport void Warning( + const std::string& _Warning) + { + m_Warning = _Warning; + } + + /*! + * @brief This function moves the value in member Warning + * @param _Warning New value to be moved in member Warning + */ + eProsima_user_DllExport void Warning( + std::string&& _Warning) + { + m_Warning = std::move(_Warning); + } + + /*! + * @brief This function returns a constant reference to member Warning + * @return Constant reference to member Warning + */ + eProsima_user_DllExport const std::string& Warning() const + { + return m_Warning; + } + + /*! + * @brief This function returns a reference to member Warning + * @return Reference to member Warning + */ + eProsima_user_DllExport std::string& Warning() + { + return m_Warning; + } + + + /*! + * @brief This function copies the value in member Tips + * @param _Tips New value to be copied in member Tips + */ + eProsima_user_DllExport void Tips( + const std::string& _Tips) + { + m_Tips = _Tips; + } + + /*! + * @brief This function moves the value in member Tips + * @param _Tips New value to be moved in member Tips + */ + eProsima_user_DllExport void Tips( + std::string&& _Tips) + { + m_Tips = std::move(_Tips); + } + + /*! + * @brief This function returns a constant reference to member Tips + * @return Constant reference to member Tips + */ + eProsima_user_DllExport const std::string& Tips() const + { + return m_Tips; + } + + /*! + * @brief This function returns a reference to member Tips + * @return Reference to member Tips + */ + eProsima_user_DllExport std::string& Tips() + { + return m_Tips; + } + + + /*! + * @brief This function copies the value in member TicketType + * @param _TicketType New value to be copied in member TicketType + */ + eProsima_user_DllExport void TicketType( + const std::string& _TicketType) + { + m_TicketType = _TicketType; + } + + /*! + * @brief This function moves the value in member TicketType + * @param _TicketType New value to be moved in member TicketType + */ + eProsima_user_DllExport void TicketType( + std::string&& _TicketType) + { + m_TicketType = std::move(_TicketType); + } + + /*! + * @brief This function returns a constant reference to member TicketType + * @return Constant reference to member TicketType + */ + eProsima_user_DllExport const std::string& TicketType() const + { + return m_TicketType; + } + + /*! + * @brief This function returns a reference to member TicketType + * @return Reference to member TicketType + */ + eProsima_user_DllExport std::string& TicketType() + { + return m_TicketType; + } + + + /*! + * @brief This function sets a value in member IsPrintTicker + * @param _IsPrintTicker New value for member IsPrintTicker + */ + eProsima_user_DllExport void IsPrintTicker( + bool _IsPrintTicker) + { + m_IsPrintTicker = _IsPrintTicker; + } + + /*! + * @brief This function returns the value of member IsPrintTicker + * @return Value of member IsPrintTicker + */ + eProsima_user_DllExport bool IsPrintTicker() const + { + return m_IsPrintTicker; + } + + /*! + * @brief This function returns a reference to member IsPrintTicker + * @return Reference to member IsPrintTicker + */ + eProsima_user_DllExport bool& IsPrintTicker() + { + return m_IsPrintTicker; + } + + + /*! + * @brief This function copies the value in member OrderNumber + * @param _OrderNumber New value to be copied in member OrderNumber + */ + eProsima_user_DllExport void OrderNumber( + const std::string& _OrderNumber) + { + m_OrderNumber = _OrderNumber; + } + + /*! + * @brief This function moves the value in member OrderNumber + * @param _OrderNumber New value to be moved in member OrderNumber + */ + eProsima_user_DllExport void OrderNumber( + std::string&& _OrderNumber) + { + m_OrderNumber = std::move(_OrderNumber); + } + + /*! + * @brief This function returns a constant reference to member OrderNumber + * @return Constant reference to member OrderNumber + */ + eProsima_user_DllExport const std::string& OrderNumber() const + { + return m_OrderNumber; + } + + /*! + * @brief This function returns a reference to member OrderNumber + * @return Reference to member OrderNumber + */ + eProsima_user_DllExport std::string& OrderNumber() + { + return m_OrderNumber; + } + + + /*! + * @brief This function copies the value in member VehicleAndVesselNumber + * @param _VehicleAndVesselNumber New value to be copied in member VehicleAndVesselNumber + */ + eProsima_user_DllExport void VehicleAndVesselNumber( + const std::string& _VehicleAndVesselNumber) + { + m_VehicleAndVesselNumber = _VehicleAndVesselNumber; + } + + /*! + * @brief This function moves the value in member VehicleAndVesselNumber + * @param _VehicleAndVesselNumber New value to be moved in member VehicleAndVesselNumber + */ + eProsima_user_DllExport void VehicleAndVesselNumber( + std::string&& _VehicleAndVesselNumber) + { + m_VehicleAndVesselNumber = std::move(_VehicleAndVesselNumber); + } + + /*! + * @brief This function returns a constant reference to member VehicleAndVesselNumber + * @return Constant reference to member VehicleAndVesselNumber + */ + eProsima_user_DllExport const std::string& VehicleAndVesselNumber() const + { + return m_VehicleAndVesselNumber; + } + + /*! + * @brief This function returns a reference to member VehicleAndVesselNumber + * @return Reference to member VehicleAndVesselNumber + */ + eProsima_user_DllExport std::string& VehicleAndVesselNumber() + { + return m_VehicleAndVesselNumber; + } + + + /*! + * @brief This function copies the value in member ReceiveCompany + * @param _ReceiveCompany New value to be copied in member ReceiveCompany + */ + eProsima_user_DllExport void ReceiveCompany( + const std::string& _ReceiveCompany) + { + m_ReceiveCompany = _ReceiveCompany; + } + + /*! + * @brief This function moves the value in member ReceiveCompany + * @param _ReceiveCompany New value to be moved in member ReceiveCompany + */ + eProsima_user_DllExport void ReceiveCompany( + std::string&& _ReceiveCompany) + { + m_ReceiveCompany = std::move(_ReceiveCompany); + } + + /*! + * @brief This function returns a constant reference to member ReceiveCompany + * @return Constant reference to member ReceiveCompany + */ + eProsima_user_DllExport const std::string& ReceiveCompany() const + { + return m_ReceiveCompany; + } + + /*! + * @brief This function returns a reference to member ReceiveCompany + * @return Reference to member ReceiveCompany + */ + eProsima_user_DllExport std::string& ReceiveCompany() + { + return m_ReceiveCompany; + } + + + /*! + * @brief This function copies the value in member TransportCompany + * @param _TransportCompany New value to be copied in member TransportCompany + */ + eProsima_user_DllExport void TransportCompany( + const std::string& _TransportCompany) + { + m_TransportCompany = _TransportCompany; + } + + /*! + * @brief This function moves the value in member TransportCompany + * @param _TransportCompany New value to be moved in member TransportCompany + */ + eProsima_user_DllExport void TransportCompany( + std::string&& _TransportCompany) + { + m_TransportCompany = std::move(_TransportCompany); + } + + /*! + * @brief This function returns a constant reference to member TransportCompany + * @return Constant reference to member TransportCompany + */ + eProsima_user_DllExport const std::string& TransportCompany() const + { + return m_TransportCompany; + } + + /*! + * @brief This function returns a reference to member TransportCompany + * @return Reference to member TransportCompany + */ + eProsima_user_DllExport std::string& TransportCompany() + { + return m_TransportCompany; + } + + + +private: + + int32_t m_GrossDeviceID{0}; + std::string m_GrossDeviceName; + std::string m_GrossDeviceType; + int32_t m_TareDeviceID{0}; + std::string m_TareDeviceName; + std::string m_TareDeviceType; + std::string m_EnterpriseName; + std::string m_BillNumber; + std::string m_CarNumber; + std::string m_Supplier; + std::string m_GoodsType; + float m_GrossWeight{0.0}; + std::string m_GrossTime; + std::string m_GrossOperater; + float m_Tare{0.0}; + std::string m_TareTime; + std::string m_TareOperater; + float m_Suttle{0.0}; + float m_duduction1{0.0}; + float m_duduction2{0.0}; + float m_duduction3{0.0}; + std::string m_INCoalYard; + std::string m_OutCoalYard; + std::string m_BatchNumber; + std::string m_Warning; + std::string m_Tips; + std::string m_TicketType; + bool m_IsPrintTicker{false}; + std::string m_OrderNumber; + std::string m_VehicleAndVesselNumber; + std::string m_ReceiveCompany; + std::string m_TransportCompany; + +}; +/*! + * @brief This class represents the structure WeightInfoError defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class WeightInfoError +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport WeightInfoError() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~WeightInfoError() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object WeightInfoError that will be copied. + */ + eProsima_user_DllExport WeightInfoError( + const WeightInfoError& x) + { + m_CarNumber = x.m_CarNumber; + + m_Warning = x.m_Warning; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object WeightInfoError that will be copied. + */ + eProsima_user_DllExport WeightInfoError( + WeightInfoError&& x) noexcept + { + m_CarNumber = std::move(x.m_CarNumber); + m_Warning = std::move(x.m_Warning); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object WeightInfoError that will be copied. + */ + eProsima_user_DllExport WeightInfoError& operator =( + const WeightInfoError& x) + { + + m_CarNumber = x.m_CarNumber; + + m_Warning = x.m_Warning; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object WeightInfoError that will be copied. + */ + eProsima_user_DllExport WeightInfoError& operator =( + WeightInfoError&& x) noexcept + { + + m_CarNumber = std::move(x.m_CarNumber); + m_Warning = std::move(x.m_Warning); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x WeightInfoError object to compare. + */ + eProsima_user_DllExport bool operator ==( + const WeightInfoError& x) const + { + return (m_CarNumber == x.m_CarNumber && + m_Warning == x.m_Warning); + } + + /*! + * @brief Comparison operator. + * @param x WeightInfoError object to compare. + */ + eProsima_user_DllExport bool operator !=( + const WeightInfoError& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member CarNumber + * @param _CarNumber New value to be copied in member CarNumber + */ + eProsima_user_DllExport void CarNumber( + const std::string& _CarNumber) + { + m_CarNumber = _CarNumber; + } + + /*! + * @brief This function moves the value in member CarNumber + * @param _CarNumber New value to be moved in member CarNumber + */ + eProsima_user_DllExport void CarNumber( + std::string&& _CarNumber) + { + m_CarNumber = std::move(_CarNumber); + } + + /*! + * @brief This function returns a constant reference to member CarNumber + * @return Constant reference to member CarNumber + */ + eProsima_user_DllExport const std::string& CarNumber() const + { + return m_CarNumber; + } + + /*! + * @brief This function returns a reference to member CarNumber + * @return Reference to member CarNumber + */ + eProsima_user_DllExport std::string& CarNumber() + { + return m_CarNumber; + } + + + /*! + * @brief This function copies the value in member Warning + * @param _Warning New value to be copied in member Warning + */ + eProsima_user_DllExport void Warning( + const std::string& _Warning) + { + m_Warning = _Warning; + } + + /*! + * @brief This function moves the value in member Warning + * @param _Warning New value to be moved in member Warning + */ + eProsima_user_DllExport void Warning( + std::string&& _Warning) + { + m_Warning = std::move(_Warning); + } + + /*! + * @brief This function returns a constant reference to member Warning + * @return Constant reference to member Warning + */ + eProsima_user_DllExport const std::string& Warning() const + { + return m_Warning; + } + + /*! + * @brief This function returns a reference to member Warning + * @return Reference to member Warning + */ + eProsima_user_DllExport std::string& Warning() + { + return m_Warning; + } + + + +private: + + std::string m_CarNumber; + std::string m_Warning; + +}; +/*! + * @brief This class represents the structure BarCommandUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class BarCommandUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport BarCommandUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~BarCommandUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object BarCommandUpdate that will be copied. + */ + eProsima_user_DllExport BarCommandUpdate( + const BarCommandUpdate& x) + { + m_FrontBarSignalUp = x.m_FrontBarSignalUp; + + m_FrontBarSignalDown = x.m_FrontBarSignalDown; + + m_FrontBarEnable = x.m_FrontBarEnable; + + m_BackBarSignalUp = x.m_BackBarSignalUp; + + m_BackBarSignalDown = x.m_BackBarSignalDown; + + m_BackBarEnable = x.m_BackBarEnable; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object BarCommandUpdate that will be copied. + */ + eProsima_user_DllExport BarCommandUpdate( + BarCommandUpdate&& x) noexcept + { + m_FrontBarSignalUp = x.m_FrontBarSignalUp; + m_FrontBarSignalDown = x.m_FrontBarSignalDown; + m_FrontBarEnable = x.m_FrontBarEnable; + m_BackBarSignalUp = x.m_BackBarSignalUp; + m_BackBarSignalDown = x.m_BackBarSignalDown; + m_BackBarEnable = x.m_BackBarEnable; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object BarCommandUpdate that will be copied. + */ + eProsima_user_DllExport BarCommandUpdate& operator =( + const BarCommandUpdate& x) + { + + m_FrontBarSignalUp = x.m_FrontBarSignalUp; + + m_FrontBarSignalDown = x.m_FrontBarSignalDown; + + m_FrontBarEnable = x.m_FrontBarEnable; + + m_BackBarSignalUp = x.m_BackBarSignalUp; + + m_BackBarSignalDown = x.m_BackBarSignalDown; + + m_BackBarEnable = x.m_BackBarEnable; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object BarCommandUpdate that will be copied. + */ + eProsima_user_DllExport BarCommandUpdate& operator =( + BarCommandUpdate&& x) noexcept + { + + m_FrontBarSignalUp = x.m_FrontBarSignalUp; + m_FrontBarSignalDown = x.m_FrontBarSignalDown; + m_FrontBarEnable = x.m_FrontBarEnable; + m_BackBarSignalUp = x.m_BackBarSignalUp; + m_BackBarSignalDown = x.m_BackBarSignalDown; + m_BackBarEnable = x.m_BackBarEnable; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x BarCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const BarCommandUpdate& x) const + { + return (m_FrontBarSignalUp == x.m_FrontBarSignalUp && + m_FrontBarSignalDown == x.m_FrontBarSignalDown && + m_FrontBarEnable == x.m_FrontBarEnable && + m_BackBarSignalUp == x.m_BackBarSignalUp && + m_BackBarSignalDown == x.m_BackBarSignalDown && + m_BackBarEnable == x.m_BackBarEnable); + } + + /*! + * @brief Comparison operator. + * @param x BarCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const BarCommandUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontBarSignalUp + * @param _FrontBarSignalUp New value for member FrontBarSignalUp + */ + eProsima_user_DllExport void FrontBarSignalUp( + int32_t _FrontBarSignalUp) + { + m_FrontBarSignalUp = _FrontBarSignalUp; + } + + /*! + * @brief This function returns the value of member FrontBarSignalUp + * @return Value of member FrontBarSignalUp + */ + eProsima_user_DllExport int32_t FrontBarSignalUp() const + { + return m_FrontBarSignalUp; + } + + /*! + * @brief This function returns a reference to member FrontBarSignalUp + * @return Reference to member FrontBarSignalUp + */ + eProsima_user_DllExport int32_t& FrontBarSignalUp() + { + return m_FrontBarSignalUp; + } + + + /*! + * @brief This function sets a value in member FrontBarSignalDown + * @param _FrontBarSignalDown New value for member FrontBarSignalDown + */ + eProsima_user_DllExport void FrontBarSignalDown( + int32_t _FrontBarSignalDown) + { + m_FrontBarSignalDown = _FrontBarSignalDown; + } + + /*! + * @brief This function returns the value of member FrontBarSignalDown + * @return Value of member FrontBarSignalDown + */ + eProsima_user_DllExport int32_t FrontBarSignalDown() const + { + return m_FrontBarSignalDown; + } + + /*! + * @brief This function returns a reference to member FrontBarSignalDown + * @return Reference to member FrontBarSignalDown + */ + eProsima_user_DllExport int32_t& FrontBarSignalDown() + { + return m_FrontBarSignalDown; + } + + + /*! + * @brief This function sets a value in member FrontBarEnable + * @param _FrontBarEnable New value for member FrontBarEnable + */ + eProsima_user_DllExport void FrontBarEnable( + bool _FrontBarEnable) + { + m_FrontBarEnable = _FrontBarEnable; + } + + /*! + * @brief This function returns the value of member FrontBarEnable + * @return Value of member FrontBarEnable + */ + eProsima_user_DllExport bool FrontBarEnable() const + { + return m_FrontBarEnable; + } + + /*! + * @brief This function returns a reference to member FrontBarEnable + * @return Reference to member FrontBarEnable + */ + eProsima_user_DllExport bool& FrontBarEnable() + { + return m_FrontBarEnable; + } + + + /*! + * @brief This function sets a value in member BackBarSignalUp + * @param _BackBarSignalUp New value for member BackBarSignalUp + */ + eProsima_user_DllExport void BackBarSignalUp( + int32_t _BackBarSignalUp) + { + m_BackBarSignalUp = _BackBarSignalUp; + } + + /*! + * @brief This function returns the value of member BackBarSignalUp + * @return Value of member BackBarSignalUp + */ + eProsima_user_DllExport int32_t BackBarSignalUp() const + { + return m_BackBarSignalUp; + } + + /*! + * @brief This function returns a reference to member BackBarSignalUp + * @return Reference to member BackBarSignalUp + */ + eProsima_user_DllExport int32_t& BackBarSignalUp() + { + return m_BackBarSignalUp; + } + + + /*! + * @brief This function sets a value in member BackBarSignalDown + * @param _BackBarSignalDown New value for member BackBarSignalDown + */ + eProsima_user_DllExport void BackBarSignalDown( + int32_t _BackBarSignalDown) + { + m_BackBarSignalDown = _BackBarSignalDown; + } + + /*! + * @brief This function returns the value of member BackBarSignalDown + * @return Value of member BackBarSignalDown + */ + eProsima_user_DllExport int32_t BackBarSignalDown() const + { + return m_BackBarSignalDown; + } + + /*! + * @brief This function returns a reference to member BackBarSignalDown + * @return Reference to member BackBarSignalDown + */ + eProsima_user_DllExport int32_t& BackBarSignalDown() + { + return m_BackBarSignalDown; + } + + + /*! + * @brief This function sets a value in member BackBarEnable + * @param _BackBarEnable New value for member BackBarEnable + */ + eProsima_user_DllExport void BackBarEnable( + bool _BackBarEnable) + { + m_BackBarEnable = _BackBarEnable; + } + + /*! + * @brief This function returns the value of member BackBarEnable + * @return Value of member BackBarEnable + */ + eProsima_user_DllExport bool BackBarEnable() const + { + return m_BackBarEnable; + } + + /*! + * @brief This function returns a reference to member BackBarEnable + * @return Reference to member BackBarEnable + */ + eProsima_user_DllExport bool& BackBarEnable() + { + return m_BackBarEnable; + } + + + +private: + + int32_t m_FrontBarSignalUp{0}; + int32_t m_FrontBarSignalDown{0}; + bool m_FrontBarEnable{false}; + int32_t m_BackBarSignalUp{0}; + int32_t m_BackBarSignalDown{0}; + bool m_BackBarEnable{false}; + +}; +/*! + * @brief This class represents the structure LightsCommandUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class LightsCommandUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LightsCommandUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LightsCommandUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LightsCommandUpdate that will be copied. + */ + eProsima_user_DllExport LightsCommandUpdate( + const LightsCommandUpdate& x) + { + m_FrontLEDSignal = x.m_FrontLEDSignal; + + m_FrontLEDEnable = x.m_FrontLEDEnable; + + m_BackLEDSignal = x.m_BackLEDSignal; + + m_BackLEDEnable = x.m_BackLEDEnable; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LightsCommandUpdate that will be copied. + */ + eProsima_user_DllExport LightsCommandUpdate( + LightsCommandUpdate&& x) noexcept + { + m_FrontLEDSignal = x.m_FrontLEDSignal; + m_FrontLEDEnable = x.m_FrontLEDEnable; + m_BackLEDSignal = x.m_BackLEDSignal; + m_BackLEDEnable = x.m_BackLEDEnable; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LightsCommandUpdate that will be copied. + */ + eProsima_user_DllExport LightsCommandUpdate& operator =( + const LightsCommandUpdate& x) + { + + m_FrontLEDSignal = x.m_FrontLEDSignal; + + m_FrontLEDEnable = x.m_FrontLEDEnable; + + m_BackLEDSignal = x.m_BackLEDSignal; + + m_BackLEDEnable = x.m_BackLEDEnable; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LightsCommandUpdate that will be copied. + */ + eProsima_user_DllExport LightsCommandUpdate& operator =( + LightsCommandUpdate&& x) noexcept + { + + m_FrontLEDSignal = x.m_FrontLEDSignal; + m_FrontLEDEnable = x.m_FrontLEDEnable; + m_BackLEDSignal = x.m_BackLEDSignal; + m_BackLEDEnable = x.m_BackLEDEnable; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LightsCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LightsCommandUpdate& x) const + { + return (m_FrontLEDSignal == x.m_FrontLEDSignal && + m_FrontLEDEnable == x.m_FrontLEDEnable && + m_BackLEDSignal == x.m_BackLEDSignal && + m_BackLEDEnable == x.m_BackLEDEnable); + } + + /*! + * @brief Comparison operator. + * @param x LightsCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LightsCommandUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontLEDSignal + * @param _FrontLEDSignal New value for member FrontLEDSignal + */ + eProsima_user_DllExport void FrontLEDSignal( + int32_t _FrontLEDSignal) + { + m_FrontLEDSignal = _FrontLEDSignal; + } + + /*! + * @brief This function returns the value of member FrontLEDSignal + * @return Value of member FrontLEDSignal + */ + eProsima_user_DllExport int32_t FrontLEDSignal() const + { + return m_FrontLEDSignal; + } + + /*! + * @brief This function returns a reference to member FrontLEDSignal + * @return Reference to member FrontLEDSignal + */ + eProsima_user_DllExport int32_t& FrontLEDSignal() + { + return m_FrontLEDSignal; + } + + + /*! + * @brief This function sets a value in member FrontLEDEnable + * @param _FrontLEDEnable New value for member FrontLEDEnable + */ + eProsima_user_DllExport void FrontLEDEnable( + bool _FrontLEDEnable) + { + m_FrontLEDEnable = _FrontLEDEnable; + } + + /*! + * @brief This function returns the value of member FrontLEDEnable + * @return Value of member FrontLEDEnable + */ + eProsima_user_DllExport bool FrontLEDEnable() const + { + return m_FrontLEDEnable; + } + + /*! + * @brief This function returns a reference to member FrontLEDEnable + * @return Reference to member FrontLEDEnable + */ + eProsima_user_DllExport bool& FrontLEDEnable() + { + return m_FrontLEDEnable; + } + + + /*! + * @brief This function sets a value in member BackLEDSignal + * @param _BackLEDSignal New value for member BackLEDSignal + */ + eProsima_user_DllExport void BackLEDSignal( + int32_t _BackLEDSignal) + { + m_BackLEDSignal = _BackLEDSignal; + } + + /*! + * @brief This function returns the value of member BackLEDSignal + * @return Value of member BackLEDSignal + */ + eProsima_user_DllExport int32_t BackLEDSignal() const + { + return m_BackLEDSignal; + } + + /*! + * @brief This function returns a reference to member BackLEDSignal + * @return Reference to member BackLEDSignal + */ + eProsima_user_DllExport int32_t& BackLEDSignal() + { + return m_BackLEDSignal; + } + + + /*! + * @brief This function sets a value in member BackLEDEnable + * @param _BackLEDEnable New value for member BackLEDEnable + */ + eProsima_user_DllExport void BackLEDEnable( + int32_t _BackLEDEnable) + { + m_BackLEDEnable = _BackLEDEnable; + } + + /*! + * @brief This function returns the value of member BackLEDEnable + * @return Value of member BackLEDEnable + */ + eProsima_user_DllExport int32_t BackLEDEnable() const + { + return m_BackLEDEnable; + } + + /*! + * @brief This function returns a reference to member BackLEDEnable + * @return Reference to member BackLEDEnable + */ + eProsima_user_DllExport int32_t& BackLEDEnable() + { + return m_BackLEDEnable; + } + + + +private: + + int32_t m_FrontLEDSignal{0}; + bool m_FrontLEDEnable{false}; + int32_t m_BackLEDSignal{0}; + int32_t m_BackLEDEnable{0}; + +}; +/*! + * @brief This class represents the structure InfraredCommandUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class InfraredCommandUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InfraredCommandUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InfraredCommandUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InfraredCommandUpdate that will be copied. + */ + eProsima_user_DllExport InfraredCommandUpdate( + const InfraredCommandUpdate& x) + { + m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; + + m_FrontResistanceEnable = x.m_FrontResistanceEnable; + + m_BackResistanceUnLock = x.m_BackResistanceUnLock; + + m_BackResistanceEnable = x.m_BackResistanceEnable; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InfraredCommandUpdate that will be copied. + */ + eProsima_user_DllExport InfraredCommandUpdate( + InfraredCommandUpdate&& x) noexcept + { + m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; + m_FrontResistanceEnable = x.m_FrontResistanceEnable; + m_BackResistanceUnLock = x.m_BackResistanceUnLock; + m_BackResistanceEnable = x.m_BackResistanceEnable; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InfraredCommandUpdate that will be copied. + */ + eProsima_user_DllExport InfraredCommandUpdate& operator =( + const InfraredCommandUpdate& x) + { + + m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; + + m_FrontResistanceEnable = x.m_FrontResistanceEnable; + + m_BackResistanceUnLock = x.m_BackResistanceUnLock; + + m_BackResistanceEnable = x.m_BackResistanceEnable; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InfraredCommandUpdate that will be copied. + */ + eProsima_user_DllExport InfraredCommandUpdate& operator =( + InfraredCommandUpdate&& x) noexcept + { + + m_FrontResistanceUnLock = x.m_FrontResistanceUnLock; + m_FrontResistanceEnable = x.m_FrontResistanceEnable; + m_BackResistanceUnLock = x.m_BackResistanceUnLock; + m_BackResistanceEnable = x.m_BackResistanceEnable; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InfraredCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InfraredCommandUpdate& x) const + { + return (m_FrontResistanceUnLock == x.m_FrontResistanceUnLock && + m_FrontResistanceEnable == x.m_FrontResistanceEnable && + m_BackResistanceUnLock == x.m_BackResistanceUnLock && + m_BackResistanceEnable == x.m_BackResistanceEnable); + } + + /*! + * @brief Comparison operator. + * @param x InfraredCommandUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InfraredCommandUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontResistanceUnLock + * @param _FrontResistanceUnLock New value for member FrontResistanceUnLock + */ + eProsima_user_DllExport void FrontResistanceUnLock( + int32_t _FrontResistanceUnLock) + { + m_FrontResistanceUnLock = _FrontResistanceUnLock; + } + + /*! + * @brief This function returns the value of member FrontResistanceUnLock + * @return Value of member FrontResistanceUnLock + */ + eProsima_user_DllExport int32_t FrontResistanceUnLock() const + { + return m_FrontResistanceUnLock; + } + + /*! + * @brief This function returns a reference to member FrontResistanceUnLock + * @return Reference to member FrontResistanceUnLock + */ + eProsima_user_DllExport int32_t& FrontResistanceUnLock() + { + return m_FrontResistanceUnLock; + } + + + /*! + * @brief This function sets a value in member FrontResistanceEnable + * @param _FrontResistanceEnable New value for member FrontResistanceEnable + */ + eProsima_user_DllExport void FrontResistanceEnable( + bool _FrontResistanceEnable) + { + m_FrontResistanceEnable = _FrontResistanceEnable; + } + + /*! + * @brief This function returns the value of member FrontResistanceEnable + * @return Value of member FrontResistanceEnable + */ + eProsima_user_DllExport bool FrontResistanceEnable() const + { + return m_FrontResistanceEnable; + } + + /*! + * @brief This function returns a reference to member FrontResistanceEnable + * @return Reference to member FrontResistanceEnable + */ + eProsima_user_DllExport bool& FrontResistanceEnable() + { + return m_FrontResistanceEnable; + } + + + /*! + * @brief This function sets a value in member BackResistanceUnLock + * @param _BackResistanceUnLock New value for member BackResistanceUnLock + */ + eProsima_user_DllExport void BackResistanceUnLock( + int32_t _BackResistanceUnLock) + { + m_BackResistanceUnLock = _BackResistanceUnLock; + } + + /*! + * @brief This function returns the value of member BackResistanceUnLock + * @return Value of member BackResistanceUnLock + */ + eProsima_user_DllExport int32_t BackResistanceUnLock() const + { + return m_BackResistanceUnLock; + } + + /*! + * @brief This function returns a reference to member BackResistanceUnLock + * @return Reference to member BackResistanceUnLock + */ + eProsima_user_DllExport int32_t& BackResistanceUnLock() + { + return m_BackResistanceUnLock; + } + + + /*! + * @brief This function sets a value in member BackResistanceEnable + * @param _BackResistanceEnable New value for member BackResistanceEnable + */ + eProsima_user_DllExport void BackResistanceEnable( + bool _BackResistanceEnable) + { + m_BackResistanceEnable = _BackResistanceEnable; + } + + /*! + * @brief This function returns the value of member BackResistanceEnable + * @return Value of member BackResistanceEnable + */ + eProsima_user_DllExport bool BackResistanceEnable() const + { + return m_BackResistanceEnable; + } + + /*! + * @brief This function returns a reference to member BackResistanceEnable + * @return Reference to member BackResistanceEnable + */ + eProsima_user_DllExport bool& BackResistanceEnable() + { + return m_BackResistanceEnable; + } + + + +private: + + int32_t m_FrontResistanceUnLock{0}; + bool m_FrontResistanceEnable{false}; + int32_t m_BackResistanceUnLock{0}; + bool m_BackResistanceEnable{false}; + +}; +/*! + * @brief This class represents the structure BarUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class BarUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport BarUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~BarUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object BarUpdate that will be copied. + */ + eProsima_user_DllExport BarUpdate( + const BarUpdate& x) + { + m_FrontBarState = x.m_FrontBarState; + + m_BackBarState = x.m_BackBarState; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object BarUpdate that will be copied. + */ + eProsima_user_DllExport BarUpdate( + BarUpdate&& x) noexcept + { + m_FrontBarState = x.m_FrontBarState; + m_BackBarState = x.m_BackBarState; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object BarUpdate that will be copied. + */ + eProsima_user_DllExport BarUpdate& operator =( + const BarUpdate& x) + { + + m_FrontBarState = x.m_FrontBarState; + + m_BackBarState = x.m_BackBarState; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object BarUpdate that will be copied. + */ + eProsima_user_DllExport BarUpdate& operator =( + BarUpdate&& x) noexcept + { + + m_FrontBarState = x.m_FrontBarState; + m_BackBarState = x.m_BackBarState; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x BarUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const BarUpdate& x) const + { + return (m_FrontBarState == x.m_FrontBarState && + m_BackBarState == x.m_BackBarState); + } + + /*! + * @brief Comparison operator. + * @param x BarUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const BarUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontBarState + * @param _FrontBarState New value for member FrontBarState + */ + eProsima_user_DllExport void FrontBarState( + int32_t _FrontBarState) + { + m_FrontBarState = _FrontBarState; + } + + /*! + * @brief This function returns the value of member FrontBarState + * @return Value of member FrontBarState + */ + eProsima_user_DllExport int32_t FrontBarState() const + { + return m_FrontBarState; + } + + /*! + * @brief This function returns a reference to member FrontBarState + * @return Reference to member FrontBarState + */ + eProsima_user_DllExport int32_t& FrontBarState() + { + return m_FrontBarState; + } + + + /*! + * @brief This function sets a value in member BackBarState + * @param _BackBarState New value for member BackBarState + */ + eProsima_user_DllExport void BackBarState( + int32_t _BackBarState) + { + m_BackBarState = _BackBarState; + } + + /*! + * @brief This function returns the value of member BackBarState + * @return Value of member BackBarState + */ + eProsima_user_DllExport int32_t BackBarState() const + { + return m_BackBarState; + } + + /*! + * @brief This function returns a reference to member BackBarState + * @return Reference to member BackBarState + */ + eProsima_user_DllExport int32_t& BackBarState() + { + return m_BackBarState; + } + + + +private: + + int32_t m_FrontBarState{0}; + int32_t m_BackBarState{0}; + +}; +/*! + * @brief This class represents the structure LightsUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class LightsUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LightsUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LightsUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LightsUpdate that will be copied. + */ + eProsima_user_DllExport LightsUpdate( + const LightsUpdate& x) + { + m_FrontLEDState = x.m_FrontLEDState; + + m_BackLEDState = x.m_BackLEDState; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LightsUpdate that will be copied. + */ + eProsima_user_DllExport LightsUpdate( + LightsUpdate&& x) noexcept + { + m_FrontLEDState = x.m_FrontLEDState; + m_BackLEDState = x.m_BackLEDState; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LightsUpdate that will be copied. + */ + eProsima_user_DllExport LightsUpdate& operator =( + const LightsUpdate& x) + { + + m_FrontLEDState = x.m_FrontLEDState; + + m_BackLEDState = x.m_BackLEDState; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LightsUpdate that will be copied. + */ + eProsima_user_DllExport LightsUpdate& operator =( + LightsUpdate&& x) noexcept + { + + m_FrontLEDState = x.m_FrontLEDState; + m_BackLEDState = x.m_BackLEDState; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LightsUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LightsUpdate& x) const + { + return (m_FrontLEDState == x.m_FrontLEDState && + m_BackLEDState == x.m_BackLEDState); + } + + /*! + * @brief Comparison operator. + * @param x LightsUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LightsUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontLEDState + * @param _FrontLEDState New value for member FrontLEDState + */ + eProsima_user_DllExport void FrontLEDState( + int32_t _FrontLEDState) + { + m_FrontLEDState = _FrontLEDState; + } + + /*! + * @brief This function returns the value of member FrontLEDState + * @return Value of member FrontLEDState + */ + eProsima_user_DllExport int32_t FrontLEDState() const + { + return m_FrontLEDState; + } + + /*! + * @brief This function returns a reference to member FrontLEDState + * @return Reference to member FrontLEDState + */ + eProsima_user_DllExport int32_t& FrontLEDState() + { + return m_FrontLEDState; + } + + + /*! + * @brief This function sets a value in member BackLEDState + * @param _BackLEDState New value for member BackLEDState + */ + eProsima_user_DllExport void BackLEDState( + int32_t _BackLEDState) + { + m_BackLEDState = _BackLEDState; + } + + /*! + * @brief This function returns the value of member BackLEDState + * @return Value of member BackLEDState + */ + eProsima_user_DllExport int32_t BackLEDState() const + { + return m_BackLEDState; + } + + /*! + * @brief This function returns a reference to member BackLEDState + * @return Reference to member BackLEDState + */ + eProsima_user_DllExport int32_t& BackLEDState() + { + return m_BackLEDState; + } + + + +private: + + int32_t m_FrontLEDState{0}; + int32_t m_BackLEDState{0}; + +}; +/*! + * @brief This class represents the structure InfraredUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class InfraredUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport InfraredUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~InfraredUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object InfraredUpdate that will be copied. + */ + eProsima_user_DllExport InfraredUpdate( + const InfraredUpdate& x) + { + m_FrontResistanceSignal = x.m_FrontResistanceSignal; + + m_BackResistanceSignal = x.m_BackResistanceSignal; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object InfraredUpdate that will be copied. + */ + eProsima_user_DllExport InfraredUpdate( + InfraredUpdate&& x) noexcept + { + m_FrontResistanceSignal = x.m_FrontResistanceSignal; + m_BackResistanceSignal = x.m_BackResistanceSignal; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object InfraredUpdate that will be copied. + */ + eProsima_user_DllExport InfraredUpdate& operator =( + const InfraredUpdate& x) + { + + m_FrontResistanceSignal = x.m_FrontResistanceSignal; + + m_BackResistanceSignal = x.m_BackResistanceSignal; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object InfraredUpdate that will be copied. + */ + eProsima_user_DllExport InfraredUpdate& operator =( + InfraredUpdate&& x) noexcept + { + + m_FrontResistanceSignal = x.m_FrontResistanceSignal; + m_BackResistanceSignal = x.m_BackResistanceSignal; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x InfraredUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const InfraredUpdate& x) const + { + return (m_FrontResistanceSignal == x.m_FrontResistanceSignal && + m_BackResistanceSignal == x.m_BackResistanceSignal); + } + + /*! + * @brief Comparison operator. + * @param x InfraredUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const InfraredUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member FrontResistanceSignal + * @param _FrontResistanceSignal New value for member FrontResistanceSignal + */ + eProsima_user_DllExport void FrontResistanceSignal( + int32_t _FrontResistanceSignal) + { + m_FrontResistanceSignal = _FrontResistanceSignal; + } + + /*! + * @brief This function returns the value of member FrontResistanceSignal + * @return Value of member FrontResistanceSignal + */ + eProsima_user_DllExport int32_t FrontResistanceSignal() const + { + return m_FrontResistanceSignal; + } + + /*! + * @brief This function returns a reference to member FrontResistanceSignal + * @return Reference to member FrontResistanceSignal + */ + eProsima_user_DllExport int32_t& FrontResistanceSignal() + { + return m_FrontResistanceSignal; + } + + + /*! + * @brief This function sets a value in member BackResistanceSignal + * @param _BackResistanceSignal New value for member BackResistanceSignal + */ + eProsima_user_DllExport void BackResistanceSignal( + int32_t _BackResistanceSignal) + { + m_BackResistanceSignal = _BackResistanceSignal; + } + + /*! + * @brief This function returns the value of member BackResistanceSignal + * @return Value of member BackResistanceSignal + */ + eProsima_user_DllExport int32_t BackResistanceSignal() const + { + return m_BackResistanceSignal; + } + + /*! + * @brief This function returns a reference to member BackResistanceSignal + * @return Reference to member BackResistanceSignal + */ + eProsima_user_DllExport int32_t& BackResistanceSignal() + { + return m_BackResistanceSignal; + } + + + +private: + + int32_t m_FrontResistanceSignal{0}; + int32_t m_BackResistanceSignal{0}; + +}; +/*! + * @brief This class represents the structure LicenseSnapUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class LicenseSnapUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport LicenseSnapUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~LicenseSnapUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object LicenseSnapUpdate that will be copied. + */ + eProsima_user_DllExport LicenseSnapUpdate( + const LicenseSnapUpdate& x) + { + m_NewTag = x.m_NewTag; + + m_License = x.m_License; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object LicenseSnapUpdate that will be copied. + */ + eProsima_user_DllExport LicenseSnapUpdate( + LicenseSnapUpdate&& x) noexcept + { + m_NewTag = x.m_NewTag; + m_License = std::move(x.m_License); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object LicenseSnapUpdate that will be copied. + */ + eProsima_user_DllExport LicenseSnapUpdate& operator =( + const LicenseSnapUpdate& x) + { + + m_NewTag = x.m_NewTag; + + m_License = x.m_License; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object LicenseSnapUpdate that will be copied. + */ + eProsima_user_DllExport LicenseSnapUpdate& operator =( + LicenseSnapUpdate&& x) noexcept + { + + m_NewTag = x.m_NewTag; + m_License = std::move(x.m_License); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x LicenseSnapUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const LicenseSnapUpdate& x) const + { + return (m_NewTag == x.m_NewTag && + m_License == x.m_License); + } + + /*! + * @brief Comparison operator. + * @param x LicenseSnapUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const LicenseSnapUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member NewTag + * @param _NewTag New value for member NewTag + */ + eProsima_user_DllExport void NewTag( + int32_t _NewTag) + { + m_NewTag = _NewTag; + } + + /*! + * @brief This function returns the value of member NewTag + * @return Value of member NewTag + */ + eProsima_user_DllExport int32_t NewTag() const + { + return m_NewTag; + } + + /*! + * @brief This function returns a reference to member NewTag + * @return Reference to member NewTag + */ + eProsima_user_DllExport int32_t& NewTag() + { + return m_NewTag; + } + + + /*! + * @brief This function copies the value in member License + * @param _License New value to be copied in member License + */ + eProsima_user_DllExport void License( + const std::string& _License) + { + m_License = _License; + } + + /*! + * @brief This function moves the value in member License + * @param _License New value to be moved in member License + */ + eProsima_user_DllExport void License( + std::string&& _License) + { + m_License = std::move(_License); + } + + /*! + * @brief This function returns a constant reference to member License + * @return Constant reference to member License + */ + eProsima_user_DllExport const std::string& License() const + { + return m_License; + } + + /*! + * @brief This function returns a reference to member License + * @return Reference to member License + */ + eProsima_user_DllExport std::string& License() + { + return m_License; + } + + + +private: + + int32_t m_NewTag{0}; + std::string m_License; + +}; +/*! + * @brief This class represents the structure Voice defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class Voice +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport Voice() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~Voice() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object Voice that will be copied. + */ + eProsima_user_DllExport Voice( + const Voice& x) + { + m_VoiceID = x.m_VoiceID; + + m_VoiceContent = x.m_VoiceContent; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object Voice that will be copied. + */ + eProsima_user_DllExport Voice( + Voice&& x) noexcept + { + m_VoiceID = x.m_VoiceID; + m_VoiceContent = std::move(x.m_VoiceContent); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object Voice that will be copied. + */ + eProsima_user_DllExport Voice& operator =( + const Voice& x) + { + + m_VoiceID = x.m_VoiceID; + + m_VoiceContent = x.m_VoiceContent; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object Voice that will be copied. + */ + eProsima_user_DllExport Voice& operator =( + Voice&& x) noexcept + { + + m_VoiceID = x.m_VoiceID; + m_VoiceContent = std::move(x.m_VoiceContent); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x Voice object to compare. + */ + eProsima_user_DllExport bool operator ==( + const Voice& x) const + { + return (m_VoiceID == x.m_VoiceID && + m_VoiceContent == x.m_VoiceContent); + } + + /*! + * @brief Comparison operator. + * @param x Voice object to compare. + */ + eProsima_user_DllExport bool operator !=( + const Voice& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member VoiceID + * @param _VoiceID New value for member VoiceID + */ + eProsima_user_DllExport void VoiceID( + int32_t _VoiceID) + { + m_VoiceID = _VoiceID; + } + + /*! + * @brief This function returns the value of member VoiceID + * @return Value of member VoiceID + */ + eProsima_user_DllExport int32_t VoiceID() const + { + return m_VoiceID; + } + + /*! + * @brief This function returns a reference to member VoiceID + * @return Reference to member VoiceID + */ + eProsima_user_DllExport int32_t& VoiceID() + { + return m_VoiceID; + } + + + /*! + * @brief This function copies the value in member VoiceContent + * @param _VoiceContent New value to be copied in member VoiceContent + */ + eProsima_user_DllExport void VoiceContent( + const std::string& _VoiceContent) + { + m_VoiceContent = _VoiceContent; + } + + /*! + * @brief This function moves the value in member VoiceContent + * @param _VoiceContent New value to be moved in member VoiceContent + */ + eProsima_user_DllExport void VoiceContent( + std::string&& _VoiceContent) + { + m_VoiceContent = std::move(_VoiceContent); + } + + /*! + * @brief This function returns a constant reference to member VoiceContent + * @return Constant reference to member VoiceContent + */ + eProsima_user_DllExport const std::string& VoiceContent() const + { + return m_VoiceContent; + } + + /*! + * @brief This function returns a reference to member VoiceContent + * @return Reference to member VoiceContent + */ + eProsima_user_DllExport std::string& VoiceContent() + { + return m_VoiceContent; + } + + + +private: + + int32_t m_VoiceID{0}; + std::string m_VoiceContent; + +}; +/*! + * @brief This class represents the structure SummaryUpdate defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class SummaryUpdate +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport SummaryUpdate() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~SummaryUpdate() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object SummaryUpdate that will be copied. + */ + eProsima_user_DllExport SummaryUpdate( + const SummaryUpdate& x) + { + m_License = x.m_License; + + m_StableValue = x.m_StableValue; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object SummaryUpdate that will be copied. + */ + eProsima_user_DllExport SummaryUpdate( + SummaryUpdate&& x) noexcept + { + m_License = std::move(x.m_License); + m_StableValue = x.m_StableValue; + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object SummaryUpdate that will be copied. + */ + eProsima_user_DllExport SummaryUpdate& operator =( + const SummaryUpdate& x) + { + + m_License = x.m_License; + + m_StableValue = x.m_StableValue; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object SummaryUpdate that will be copied. + */ + eProsima_user_DllExport SummaryUpdate& operator =( + SummaryUpdate&& x) noexcept + { + + m_License = std::move(x.m_License); + m_StableValue = x.m_StableValue; + return *this; + } + + /*! + * @brief Comparison operator. + * @param x SummaryUpdate object to compare. + */ + eProsima_user_DllExport bool operator ==( + const SummaryUpdate& x) const + { + return (m_License == x.m_License && + m_StableValue == x.m_StableValue); + } + + /*! + * @brief Comparison operator. + * @param x SummaryUpdate object to compare. + */ + eProsima_user_DllExport bool operator !=( + const SummaryUpdate& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member License + * @param _License New value to be copied in member License + */ + eProsima_user_DllExport void License( + const std::string& _License) + { + m_License = _License; + } + + /*! + * @brief This function moves the value in member License + * @param _License New value to be moved in member License + */ + eProsima_user_DllExport void License( + std::string&& _License) + { + m_License = std::move(_License); + } + + /*! + * @brief This function returns a constant reference to member License + * @return Constant reference to member License + */ + eProsima_user_DllExport const std::string& License() const + { + return m_License; + } + + /*! + * @brief This function returns a reference to member License + * @return Reference to member License + */ + eProsima_user_DllExport std::string& License() + { + return m_License; + } + + + /*! + * @brief This function sets a value in member StableValue + * @param _StableValue New value for member StableValue + */ + eProsima_user_DllExport void StableValue( + float _StableValue) + { + m_StableValue = _StableValue; + } + + /*! + * @brief This function returns the value of member StableValue + * @return Value of member StableValue + */ + eProsima_user_DllExport float StableValue() const + { + return m_StableValue; + } + + /*! + * @brief This function returns a reference to member StableValue + * @return Reference to member StableValue + */ + eProsima_user_DllExport float& StableValue() + { + return m_StableValue; + } + + + +private: + + std::string m_License; + float m_StableValue{0.0}; + +}; +/*! + * @brief This class represents the structure ReadCardReq defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class ReadCardReq +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport ReadCardReq() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~ReadCardReq() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object ReadCardReq that will be copied. + */ + eProsima_user_DllExport ReadCardReq( + const ReadCardReq& x) + { + m_index = x.m_index; + + m_msg = x.m_msg; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object ReadCardReq that will be copied. + */ + eProsima_user_DllExport ReadCardReq( + ReadCardReq&& x) noexcept + { + m_index = x.m_index; + m_msg = std::move(x.m_msg); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object ReadCardReq that will be copied. + */ + eProsima_user_DllExport ReadCardReq& operator =( + const ReadCardReq& x) + { + + m_index = x.m_index; + + m_msg = x.m_msg; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object ReadCardReq that will be copied. + */ + eProsima_user_DllExport ReadCardReq& operator =( + ReadCardReq&& x) noexcept + { + + m_index = x.m_index; + m_msg = std::move(x.m_msg); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x ReadCardReq object to compare. + */ + eProsima_user_DllExport bool operator ==( + const ReadCardReq& x) const + { + return (m_index == x.m_index && + m_msg == x.m_msg); + } + + /*! + * @brief Comparison operator. + * @param x ReadCardReq object to compare. + */ + eProsima_user_DllExport bool operator !=( + const ReadCardReq& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member index + * @param _index New value for member index + */ + eProsima_user_DllExport void index( + uint32_t _index) + { + m_index = _index; + } + + /*! + * @brief This function returns the value of member index + * @return Value of member index + */ + eProsima_user_DllExport uint32_t index() const + { + return m_index; + } + + /*! + * @brief This function returns a reference to member index + * @return Reference to member index + */ + eProsima_user_DllExport uint32_t& index() + { + return m_index; + } + + + /*! + * @brief This function copies the value in member msg + * @param _msg New value to be copied in member msg + */ + eProsima_user_DllExport void msg( + const std::map>& _msg) + { + m_msg = _msg; + } + + /*! + * @brief This function moves the value in member msg + * @param _msg New value to be moved in member msg + */ + eProsima_user_DllExport void msg( + std::map>&& _msg) + { + m_msg = std::move(_msg); + } + + /*! + * @brief This function returns a constant reference to member msg + * @return Constant reference to member msg + */ + eProsima_user_DllExport const std::map>& msg() const + { + return m_msg; + } + + /*! + * @brief This function returns a reference to member msg + * @return Reference to member msg + */ + eProsima_user_DllExport std::map>& msg() + { + return m_msg; + } + + + +private: + + uint32_t m_index{0}; + std::map> m_msg; + +}; +/*! + * @brief This class represents the structure ReadCardRsp defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class ReadCardRsp +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport ReadCardRsp() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~ReadCardRsp() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object ReadCardRsp that will be copied. + */ + eProsima_user_DllExport ReadCardRsp( + const ReadCardRsp& x) + { + m_index = x.m_index; + + m_msg = x.m_msg; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object ReadCardRsp that will be copied. + */ + eProsima_user_DllExport ReadCardRsp( + ReadCardRsp&& x) noexcept + { + m_index = x.m_index; + m_msg = std::move(x.m_msg); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object ReadCardRsp that will be copied. + */ + eProsima_user_DllExport ReadCardRsp& operator =( + const ReadCardRsp& x) + { + + m_index = x.m_index; + + m_msg = x.m_msg; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object ReadCardRsp that will be copied. + */ + eProsima_user_DllExport ReadCardRsp& operator =( + ReadCardRsp&& x) noexcept + { + + m_index = x.m_index; + m_msg = std::move(x.m_msg); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x ReadCardRsp object to compare. + */ + eProsima_user_DllExport bool operator ==( + const ReadCardRsp& x) const + { + return (m_index == x.m_index && + m_msg == x.m_msg); + } + + /*! + * @brief Comparison operator. + * @param x ReadCardRsp object to compare. + */ + eProsima_user_DllExport bool operator !=( + const ReadCardRsp& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member index + * @param _index New value for member index + */ + eProsima_user_DllExport void index( + uint32_t _index) + { + m_index = _index; + } + + /*! + * @brief This function returns the value of member index + * @return Value of member index + */ + eProsima_user_DllExport uint32_t index() const + { + return m_index; + } + + /*! + * @brief This function returns a reference to member index + * @return Reference to member index + */ + eProsima_user_DllExport uint32_t& index() + { + return m_index; + } + + + /*! + * @brief This function copies the value in member msg + * @param _msg New value to be copied in member msg + */ + eProsima_user_DllExport void msg( + const std::map>& _msg) + { + m_msg = _msg; + } + + /*! + * @brief This function moves the value in member msg + * @param _msg New value to be moved in member msg + */ + eProsima_user_DllExport void msg( + std::map>&& _msg) + { + m_msg = std::move(_msg); + } + + /*! + * @brief This function returns a constant reference to member msg + * @return Constant reference to member msg + */ + eProsima_user_DllExport const std::map>& msg() const + { + return m_msg; + } + + /*! + * @brief This function returns a reference to member msg + * @return Reference to member msg + */ + eProsima_user_DllExport std::map>& msg() + { + return m_msg; + } + + + +private: + + uint32_t m_index{0}; + std::map> m_msg; + +}; +/*! + * @brief This class represents the structure PrintReq defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class PrintReq +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport PrintReq() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~PrintReq() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object PrintReq that will be copied. + */ + eProsima_user_DllExport PrintReq( + const PrintReq& x) + { + m_index = x.m_index; + + m_msg = x.m_msg; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object PrintReq that will be copied. + */ + eProsima_user_DllExport PrintReq( + PrintReq&& x) noexcept + { + m_index = x.m_index; + m_msg = std::move(x.m_msg); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object PrintReq that will be copied. + */ + eProsima_user_DllExport PrintReq& operator =( + const PrintReq& x) + { + + m_index = x.m_index; + + m_msg = x.m_msg; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object PrintReq that will be copied. + */ + eProsima_user_DllExport PrintReq& operator =( + PrintReq&& x) noexcept + { + + m_index = x.m_index; + m_msg = std::move(x.m_msg); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x PrintReq object to compare. + */ + eProsima_user_DllExport bool operator ==( + const PrintReq& x) const + { + return (m_index == x.m_index && + m_msg == x.m_msg); + } + + /*! + * @brief Comparison operator. + * @param x PrintReq object to compare. + */ + eProsima_user_DllExport bool operator !=( + const PrintReq& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member index + * @param _index New value for member index + */ + eProsima_user_DllExport void index( + uint32_t _index) + { + m_index = _index; + } + + /*! + * @brief This function returns the value of member index + * @return Value of member index + */ + eProsima_user_DllExport uint32_t index() const + { + return m_index; + } + + /*! + * @brief This function returns a reference to member index + * @return Reference to member index + */ + eProsima_user_DllExport uint32_t& index() + { + return m_index; + } + + + /*! + * @brief This function copies the value in member msg + * @param _msg New value to be copied in member msg + */ + eProsima_user_DllExport void msg( + const std::map& _msg) + { + m_msg = _msg; + } + + /*! + * @brief This function moves the value in member msg + * @param _msg New value to be moved in member msg + */ + eProsima_user_DllExport void msg( + std::map&& _msg) + { + m_msg = std::move(_msg); + } + + /*! + * @brief This function returns a constant reference to member msg + * @return Constant reference to member msg + */ + eProsima_user_DllExport const std::map& msg() const + { + return m_msg; + } + + /*! + * @brief This function returns a reference to member msg + * @return Reference to member msg + */ + eProsima_user_DllExport std::map& msg() + { + return m_msg; + } + + + +private: + + uint32_t m_index{0}; + std::map m_msg; + +}; +/*! + * @brief This class represents the structure PrintRsp defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class PrintRsp +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport PrintRsp() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~PrintRsp() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object PrintRsp that will be copied. + */ + eProsima_user_DllExport PrintRsp( + const PrintRsp& x) + { + m_index = x.m_index; + + m_msg = x.m_msg; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object PrintRsp that will be copied. + */ + eProsima_user_DllExport PrintRsp( + PrintRsp&& x) noexcept + { + m_index = x.m_index; + m_msg = std::move(x.m_msg); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object PrintRsp that will be copied. + */ + eProsima_user_DllExport PrintRsp& operator =( + const PrintRsp& x) + { + + m_index = x.m_index; + + m_msg = x.m_msg; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object PrintRsp that will be copied. + */ + eProsima_user_DllExport PrintRsp& operator =( + PrintRsp&& x) noexcept + { + + m_index = x.m_index; + m_msg = std::move(x.m_msg); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x PrintRsp object to compare. + */ + eProsima_user_DllExport bool operator ==( + const PrintRsp& x) const + { + return (m_index == x.m_index && + m_msg == x.m_msg); + } + + /*! + * @brief Comparison operator. + * @param x PrintRsp object to compare. + */ + eProsima_user_DllExport bool operator !=( + const PrintRsp& x) const + { + return !(*this == x); + } + + /*! + * @brief This function sets a value in member index + * @param _index New value for member index + */ + eProsima_user_DllExport void index( + uint32_t _index) + { + m_index = _index; + } + + /*! + * @brief This function returns the value of member index + * @return Value of member index + */ + eProsima_user_DllExport uint32_t index() const + { + return m_index; + } + + /*! + * @brief This function returns a reference to member index + * @return Reference to member index + */ + eProsima_user_DllExport uint32_t& index() + { + return m_index; + } + + + /*! + * @brief This function copies the value in member msg + * @param _msg New value to be copied in member msg + */ + eProsima_user_DllExport void msg( + const std::string& _msg) + { + m_msg = _msg; + } + + /*! + * @brief This function moves the value in member msg + * @param _msg New value to be moved in member msg + */ + eProsima_user_DllExport void msg( + std::string&& _msg) + { + m_msg = std::move(_msg); + } + + /*! + * @brief This function returns a constant reference to member msg + * @return Constant reference to member msg + */ + eProsima_user_DllExport const std::string& msg() const + { + return m_msg; + } + + /*! + * @brief This function returns a reference to member msg + * @return Reference to member msg + */ + eProsima_user_DllExport std::string& msg() + { + return m_msg; + } + + + +private: + + uint32_t m_index{0}; + std::string m_msg; + +}; + +} // namespace WeighingSystem +namespace Queue { + +/*! + * @brief This class represents the structure QueueTrigger defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class QueueTrigger +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport QueueTrigger() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~QueueTrigger() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object QueueTrigger that will be copied. + */ + eProsima_user_DllExport QueueTrigger( + const QueueTrigger& x) + { + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_trigger_time = x.m_trigger_time; + + m_vehicle_number_snapshot = x.m_vehicle_number_snapshot; + + m_supplier_identity_id_snapshot = x.m_supplier_identity_id_snapshot; + + m_goods_id_snapshot = x.m_goods_id_snapshot; + + m_ship_net_weight_snapshot = x.m_ship_net_weight_snapshot; + + m_card_flow_no_snapshot = x.m_card_flow_no_snapshot; + + m_card_type_snapshot = x.m_card_type_snapshot; + + m_electronic_tag_snapshot = x.m_electronic_tag_snapshot; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object QueueTrigger that will be copied. + */ + eProsima_user_DllExport QueueTrigger( + QueueTrigger&& x) noexcept + { + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_trigger_time = std::move(x.m_trigger_time); + m_vehicle_number_snapshot = std::move(x.m_vehicle_number_snapshot); + m_supplier_identity_id_snapshot = x.m_supplier_identity_id_snapshot; + m_goods_id_snapshot = x.m_goods_id_snapshot; + m_ship_net_weight_snapshot = x.m_ship_net_weight_snapshot; + m_card_flow_no_snapshot = x.m_card_flow_no_snapshot; + m_card_type_snapshot = std::move(x.m_card_type_snapshot); + m_electronic_tag_snapshot = std::move(x.m_electronic_tag_snapshot); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object QueueTrigger that will be copied. + */ + eProsima_user_DllExport QueueTrigger& operator =( + const QueueTrigger& x) + { + + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_trigger_time = x.m_trigger_time; + + m_vehicle_number_snapshot = x.m_vehicle_number_snapshot; + + m_supplier_identity_id_snapshot = x.m_supplier_identity_id_snapshot; + + m_goods_id_snapshot = x.m_goods_id_snapshot; + + m_ship_net_weight_snapshot = x.m_ship_net_weight_snapshot; + + m_card_flow_no_snapshot = x.m_card_flow_no_snapshot; + + m_card_type_snapshot = x.m_card_type_snapshot; + + m_electronic_tag_snapshot = x.m_electronic_tag_snapshot; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object QueueTrigger that will be copied. + */ + eProsima_user_DllExport QueueTrigger& operator =( + QueueTrigger&& x) noexcept + { + + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_trigger_time = std::move(x.m_trigger_time); + m_vehicle_number_snapshot = std::move(x.m_vehicle_number_snapshot); + m_supplier_identity_id_snapshot = x.m_supplier_identity_id_snapshot; + m_goods_id_snapshot = x.m_goods_id_snapshot; + m_ship_net_weight_snapshot = x.m_ship_net_weight_snapshot; + m_card_flow_no_snapshot = x.m_card_flow_no_snapshot; + m_card_type_snapshot = std::move(x.m_card_type_snapshot); + m_electronic_tag_snapshot = std::move(x.m_electronic_tag_snapshot); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x QueueTrigger object to compare. + */ + eProsima_user_DllExport bool operator ==( + const QueueTrigger& x) const + { + return (m_message_id == x.m_message_id && + m_card_number == x.m_card_number && + m_device_id == x.m_device_id && + m_trigger_time == x.m_trigger_time && + m_vehicle_number_snapshot == x.m_vehicle_number_snapshot && + m_supplier_identity_id_snapshot == x.m_supplier_identity_id_snapshot && + m_goods_id_snapshot == x.m_goods_id_snapshot && + m_ship_net_weight_snapshot == x.m_ship_net_weight_snapshot && + m_card_flow_no_snapshot == x.m_card_flow_no_snapshot && + m_card_type_snapshot == x.m_card_type_snapshot && + m_electronic_tag_snapshot == x.m_electronic_tag_snapshot); + } + + /*! + * @brief Comparison operator. + * @param x QueueTrigger object to compare. + */ + eProsima_user_DllExport bool operator !=( + const QueueTrigger& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member message_id + * @param _message_id New value to be copied in member message_id + */ + eProsima_user_DllExport void message_id( + const std::string& _message_id) + { + m_message_id = _message_id; + } + + /*! + * @brief This function moves the value in member message_id + * @param _message_id New value to be moved in member message_id + */ + eProsima_user_DllExport void message_id( + std::string&& _message_id) + { + m_message_id = std::move(_message_id); + } + + /*! + * @brief This function returns a constant reference to member message_id + * @return Constant reference to member message_id + */ + eProsima_user_DllExport const std::string& message_id() const + { + return m_message_id; + } + + /*! + * @brief This function returns a reference to member message_id + * @return Reference to member message_id + */ + eProsima_user_DllExport std::string& message_id() + { + return m_message_id; + } + + + /*! + * @brief This function copies the value in member card_number + * @param _card_number New value to be copied in member card_number + */ + eProsima_user_DllExport void card_number( + const std::string& _card_number) + { + m_card_number = _card_number; + } + + /*! + * @brief This function moves the value in member card_number + * @param _card_number New value to be moved in member card_number + */ + eProsima_user_DllExport void card_number( + std::string&& _card_number) + { + m_card_number = std::move(_card_number); + } + + /*! + * @brief This function returns a constant reference to member card_number + * @return Constant reference to member card_number + */ + eProsima_user_DllExport const std::string& card_number() const + { + return m_card_number; + } + + /*! + * @brief This function returns a reference to member card_number + * @return Reference to member card_number + */ + eProsima_user_DllExport std::string& card_number() + { + return m_card_number; + } + + + /*! + * @brief This function copies the value in member device_id + * @param _device_id New value to be copied in member device_id + */ + eProsima_user_DllExport void device_id( + const std::string& _device_id) + { + m_device_id = _device_id; + } + + /*! + * @brief This function moves the value in member device_id + * @param _device_id New value to be moved in member device_id + */ + eProsima_user_DllExport void device_id( + std::string&& _device_id) + { + m_device_id = std::move(_device_id); + } + + /*! + * @brief This function returns a constant reference to member device_id + * @return Constant reference to member device_id + */ + eProsima_user_DllExport const std::string& device_id() const + { + return m_device_id; + } + + /*! + * @brief This function returns a reference to member device_id + * @return Reference to member device_id + */ + eProsima_user_DllExport std::string& device_id() + { + return m_device_id; + } + + + /*! + * @brief This function copies the value in member trigger_time + * @param _trigger_time New value to be copied in member trigger_time + */ + eProsima_user_DllExport void trigger_time( + const std::string& _trigger_time) + { + m_trigger_time = _trigger_time; + } + + /*! + * @brief This function moves the value in member trigger_time + * @param _trigger_time New value to be moved in member trigger_time + */ + eProsima_user_DllExport void trigger_time( + std::string&& _trigger_time) + { + m_trigger_time = std::move(_trigger_time); + } + + /*! + * @brief This function returns a constant reference to member trigger_time + * @return Constant reference to member trigger_time + */ + eProsima_user_DllExport const std::string& trigger_time() const + { + return m_trigger_time; + } + + /*! + * @brief This function returns a reference to member trigger_time + * @return Reference to member trigger_time + */ + eProsima_user_DllExport std::string& trigger_time() + { + return m_trigger_time; + } + + + /*! + * @brief This function copies the value in member vehicle_number_snapshot + * @param _vehicle_number_snapshot New value to be copied in member vehicle_number_snapshot + */ + eProsima_user_DllExport void vehicle_number_snapshot( + const std::string& _vehicle_number_snapshot) + { + m_vehicle_number_snapshot = _vehicle_number_snapshot; + } + + /*! + * @brief This function moves the value in member vehicle_number_snapshot + * @param _vehicle_number_snapshot New value to be moved in member vehicle_number_snapshot + */ + eProsima_user_DllExport void vehicle_number_snapshot( + std::string&& _vehicle_number_snapshot) + { + m_vehicle_number_snapshot = std::move(_vehicle_number_snapshot); + } + + /*! + * @brief This function returns a constant reference to member vehicle_number_snapshot + * @return Constant reference to member vehicle_number_snapshot + */ + eProsima_user_DllExport const std::string& vehicle_number_snapshot() const + { + return m_vehicle_number_snapshot; + } + + /*! + * @brief This function returns a reference to member vehicle_number_snapshot + * @return Reference to member vehicle_number_snapshot + */ + eProsima_user_DllExport std::string& vehicle_number_snapshot() + { + return m_vehicle_number_snapshot; + } + + + /*! + * @brief This function sets a value in member supplier_identity_id_snapshot + * @param _supplier_identity_id_snapshot New value for member supplier_identity_id_snapshot + */ + eProsima_user_DllExport void supplier_identity_id_snapshot( + int32_t _supplier_identity_id_snapshot) + { + m_supplier_identity_id_snapshot = _supplier_identity_id_snapshot; + } + + /*! + * @brief This function returns the value of member supplier_identity_id_snapshot + * @return Value of member supplier_identity_id_snapshot + */ + eProsima_user_DllExport int32_t supplier_identity_id_snapshot() const + { + return m_supplier_identity_id_snapshot; + } + + /*! + * @brief This function returns a reference to member supplier_identity_id_snapshot + * @return Reference to member supplier_identity_id_snapshot + */ + eProsima_user_DllExport int32_t& supplier_identity_id_snapshot() + { + return m_supplier_identity_id_snapshot; + } + + + /*! + * @brief This function sets a value in member goods_id_snapshot + * @param _goods_id_snapshot New value for member goods_id_snapshot + */ + eProsima_user_DllExport void goods_id_snapshot( + int32_t _goods_id_snapshot) + { + m_goods_id_snapshot = _goods_id_snapshot; + } + + /*! + * @brief This function returns the value of member goods_id_snapshot + * @return Value of member goods_id_snapshot + */ + eProsima_user_DllExport int32_t goods_id_snapshot() const + { + return m_goods_id_snapshot; + } + + /*! + * @brief This function returns a reference to member goods_id_snapshot + * @return Reference to member goods_id_snapshot + */ + eProsima_user_DllExport int32_t& goods_id_snapshot() + { + return m_goods_id_snapshot; + } + + + /*! + * @brief This function sets a value in member ship_net_weight_snapshot + * @param _ship_net_weight_snapshot New value for member ship_net_weight_snapshot + */ + eProsima_user_DllExport void ship_net_weight_snapshot( + float _ship_net_weight_snapshot) + { + m_ship_net_weight_snapshot = _ship_net_weight_snapshot; + } + + /*! + * @brief This function returns the value of member ship_net_weight_snapshot + * @return Value of member ship_net_weight_snapshot + */ + eProsima_user_DllExport float ship_net_weight_snapshot() const + { + return m_ship_net_weight_snapshot; + } + + /*! + * @brief This function returns a reference to member ship_net_weight_snapshot + * @return Reference to member ship_net_weight_snapshot + */ + eProsima_user_DllExport float& ship_net_weight_snapshot() + { + return m_ship_net_weight_snapshot; + } + + + /*! + * @brief This function sets a value in member card_flow_no_snapshot + * @param _card_flow_no_snapshot New value for member card_flow_no_snapshot + */ + eProsima_user_DllExport void card_flow_no_snapshot( + int32_t _card_flow_no_snapshot) + { + m_card_flow_no_snapshot = _card_flow_no_snapshot; + } + + /*! + * @brief This function returns the value of member card_flow_no_snapshot + * @return Value of member card_flow_no_snapshot + */ + eProsima_user_DllExport int32_t card_flow_no_snapshot() const + { + return m_card_flow_no_snapshot; + } + + /*! + * @brief This function returns a reference to member card_flow_no_snapshot + * @return Reference to member card_flow_no_snapshot + */ + eProsima_user_DllExport int32_t& card_flow_no_snapshot() + { + return m_card_flow_no_snapshot; + } + + + /*! + * @brief This function copies the value in member card_type_snapshot + * @param _card_type_snapshot New value to be copied in member card_type_snapshot + */ + eProsima_user_DllExport void card_type_snapshot( + const std::string& _card_type_snapshot) + { + m_card_type_snapshot = _card_type_snapshot; + } + + /*! + * @brief This function moves the value in member card_type_snapshot + * @param _card_type_snapshot New value to be moved in member card_type_snapshot + */ + eProsima_user_DllExport void card_type_snapshot( + std::string&& _card_type_snapshot) + { + m_card_type_snapshot = std::move(_card_type_snapshot); + } + + /*! + * @brief This function returns a constant reference to member card_type_snapshot + * @return Constant reference to member card_type_snapshot + */ + eProsima_user_DllExport const std::string& card_type_snapshot() const + { + return m_card_type_snapshot; + } + + /*! + * @brief This function returns a reference to member card_type_snapshot + * @return Reference to member card_type_snapshot + */ + eProsima_user_DllExport std::string& card_type_snapshot() + { + return m_card_type_snapshot; + } + + + /*! + * @brief This function copies the value in member electronic_tag_snapshot + * @param _electronic_tag_snapshot New value to be copied in member electronic_tag_snapshot + */ + eProsima_user_DllExport void electronic_tag_snapshot( + const std::string& _electronic_tag_snapshot) + { + m_electronic_tag_snapshot = _electronic_tag_snapshot; + } + + /*! + * @brief This function moves the value in member electronic_tag_snapshot + * @param _electronic_tag_snapshot New value to be moved in member electronic_tag_snapshot + */ + eProsima_user_DllExport void electronic_tag_snapshot( + std::string&& _electronic_tag_snapshot) + { + m_electronic_tag_snapshot = std::move(_electronic_tag_snapshot); + } + + /*! + * @brief This function returns a constant reference to member electronic_tag_snapshot + * @return Constant reference to member electronic_tag_snapshot + */ + eProsima_user_DllExport const std::string& electronic_tag_snapshot() const + { + return m_electronic_tag_snapshot; + } + + /*! + * @brief This function returns a reference to member electronic_tag_snapshot + * @return Reference to member electronic_tag_snapshot + */ + eProsima_user_DllExport std::string& electronic_tag_snapshot() + { + return m_electronic_tag_snapshot; + } + + + +private: + + std::string m_message_id; + std::string m_card_number; + std::string m_device_id; + std::string m_trigger_time; + std::string m_vehicle_number_snapshot; + int32_t m_supplier_identity_id_snapshot{0}; + int32_t m_goods_id_snapshot{0}; + float m_ship_net_weight_snapshot{0.0}; + int32_t m_card_flow_no_snapshot{0}; + std::string m_card_type_snapshot; + std::string m_electronic_tag_snapshot; + +}; +/*! + * @brief This class represents the structure QueueSuccess defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class QueueSuccess +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport QueueSuccess() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~QueueSuccess() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object QueueSuccess that will be copied. + */ + eProsima_user_DllExport QueueSuccess( + const QueueSuccess& x) + { + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_result_code = x.m_result_code; + + m_queue_record_id = x.m_queue_record_id; + + m_queue_number = x.m_queue_number; + + m_sample_machine = x.m_sample_machine; + + m_queue_time = x.m_queue_time; + + m_ticket_number = x.m_ticket_number; + + m_sample_code = x.m_sample_code; + + m_vehicle_number = x.m_vehicle_number; + + m_vehicle_self_no = x.m_vehicle_self_no; + + m_vehicle_type_id = x.m_vehicle_type_id; + + m_supplier_identity_id = x.m_supplier_identity_id; + + m_supplier_identity_name = x.m_supplier_identity_name; + + m_supplier_id = x.m_supplier_id; + + m_supplier_name = x.m_supplier_name; + + m_goods_id = x.m_goods_id; + + m_goods_name = x.m_goods_name; + + m_unit_id = x.m_unit_id; + + m_transport_company_id = x.m_transport_company_id; + + m_sample_type = x.m_sample_type; + + m_unloading_point_name = x.m_unloading_point_name; + + m_ship_gross_weight = x.m_ship_gross_weight; + + m_ship_tare_weight = x.m_ship_tare_weight; + + m_ship_net_weight = x.m_ship_net_weight; + + m_sample_machine_id = x.m_sample_machine_id; + + m_vehicle_lane = x.m_vehicle_lane; + + m_vehicle_lane_id = x.m_vehicle_lane_id; + + m_strategy_desc = x.m_strategy_desc; + + m_committed_at = x.m_committed_at; + + m_display_text = x.m_display_text; + + m_print_content = x.m_print_content; + + m_print_required = x.m_print_required; + + m_print_count = x.m_print_count; + + m_voice_id = x.m_voice_id; + + m_voice_text = x.m_voice_text; + + m_is_reprint = x.m_is_reprint; + + m_physical_card_state = x.m_physical_card_state; + + m_card_write_status = x.m_card_write_status; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object QueueSuccess that will be copied. + */ + eProsima_user_DllExport QueueSuccess( + QueueSuccess&& x) noexcept + { + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_result_code = x.m_result_code; + m_queue_record_id = x.m_queue_record_id; + m_queue_number = x.m_queue_number; + m_sample_machine = std::move(x.m_sample_machine); + m_queue_time = std::move(x.m_queue_time); + m_ticket_number = std::move(x.m_ticket_number); + m_sample_code = x.m_sample_code; + m_vehicle_number = std::move(x.m_vehicle_number); + m_vehicle_self_no = x.m_vehicle_self_no; + m_vehicle_type_id = x.m_vehicle_type_id; + m_supplier_identity_id = x.m_supplier_identity_id; + m_supplier_identity_name = std::move(x.m_supplier_identity_name); + m_supplier_id = x.m_supplier_id; + m_supplier_name = std::move(x.m_supplier_name); + m_goods_id = x.m_goods_id; + m_goods_name = std::move(x.m_goods_name); + m_unit_id = x.m_unit_id; + m_transport_company_id = x.m_transport_company_id; + m_sample_type = x.m_sample_type; + m_unloading_point_name = std::move(x.m_unloading_point_name); + m_ship_gross_weight = x.m_ship_gross_weight; + m_ship_tare_weight = x.m_ship_tare_weight; + m_ship_net_weight = x.m_ship_net_weight; + m_sample_machine_id = x.m_sample_machine_id; + m_vehicle_lane = std::move(x.m_vehicle_lane); + m_vehicle_lane_id = x.m_vehicle_lane_id; + m_strategy_desc = std::move(x.m_strategy_desc); + m_committed_at = std::move(x.m_committed_at); + m_display_text = std::move(x.m_display_text); + m_print_content = std::move(x.m_print_content); + m_print_required = x.m_print_required; + m_print_count = x.m_print_count; + m_voice_id = x.m_voice_id; + m_voice_text = std::move(x.m_voice_text); + m_is_reprint = x.m_is_reprint; + m_physical_card_state = std::move(x.m_physical_card_state); + m_card_write_status = std::move(x.m_card_write_status); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object QueueSuccess that will be copied. + */ + eProsima_user_DllExport QueueSuccess& operator =( + const QueueSuccess& x) + { + + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_result_code = x.m_result_code; + + m_queue_record_id = x.m_queue_record_id; + + m_queue_number = x.m_queue_number; + + m_sample_machine = x.m_sample_machine; + + m_queue_time = x.m_queue_time; + + m_ticket_number = x.m_ticket_number; + + m_sample_code = x.m_sample_code; + + m_vehicle_number = x.m_vehicle_number; + + m_vehicle_self_no = x.m_vehicle_self_no; + + m_vehicle_type_id = x.m_vehicle_type_id; + + m_supplier_identity_id = x.m_supplier_identity_id; + + m_supplier_identity_name = x.m_supplier_identity_name; + + m_supplier_id = x.m_supplier_id; + + m_supplier_name = x.m_supplier_name; + + m_goods_id = x.m_goods_id; + + m_goods_name = x.m_goods_name; + + m_unit_id = x.m_unit_id; + + m_transport_company_id = x.m_transport_company_id; + + m_sample_type = x.m_sample_type; + + m_unloading_point_name = x.m_unloading_point_name; + + m_ship_gross_weight = x.m_ship_gross_weight; + + m_ship_tare_weight = x.m_ship_tare_weight; + + m_ship_net_weight = x.m_ship_net_weight; + + m_sample_machine_id = x.m_sample_machine_id; + + m_vehicle_lane = x.m_vehicle_lane; + + m_vehicle_lane_id = x.m_vehicle_lane_id; + + m_strategy_desc = x.m_strategy_desc; + + m_committed_at = x.m_committed_at; + + m_display_text = x.m_display_text; + + m_print_content = x.m_print_content; + + m_print_required = x.m_print_required; + + m_print_count = x.m_print_count; + + m_voice_id = x.m_voice_id; + + m_voice_text = x.m_voice_text; + + m_is_reprint = x.m_is_reprint; + + m_physical_card_state = x.m_physical_card_state; + + m_card_write_status = x.m_card_write_status; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object QueueSuccess that will be copied. + */ + eProsima_user_DllExport QueueSuccess& operator =( + QueueSuccess&& x) noexcept + { + + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_result_code = x.m_result_code; + m_queue_record_id = x.m_queue_record_id; + m_queue_number = x.m_queue_number; + m_sample_machine = std::move(x.m_sample_machine); + m_queue_time = std::move(x.m_queue_time); + m_ticket_number = std::move(x.m_ticket_number); + m_sample_code = x.m_sample_code; + m_vehicle_number = std::move(x.m_vehicle_number); + m_vehicle_self_no = x.m_vehicle_self_no; + m_vehicle_type_id = x.m_vehicle_type_id; + m_supplier_identity_id = x.m_supplier_identity_id; + m_supplier_identity_name = std::move(x.m_supplier_identity_name); + m_supplier_id = x.m_supplier_id; + m_supplier_name = std::move(x.m_supplier_name); + m_goods_id = x.m_goods_id; + m_goods_name = std::move(x.m_goods_name); + m_unit_id = x.m_unit_id; + m_transport_company_id = x.m_transport_company_id; + m_sample_type = x.m_sample_type; + m_unloading_point_name = std::move(x.m_unloading_point_name); + m_ship_gross_weight = x.m_ship_gross_weight; + m_ship_tare_weight = x.m_ship_tare_weight; + m_ship_net_weight = x.m_ship_net_weight; + m_sample_machine_id = x.m_sample_machine_id; + m_vehicle_lane = std::move(x.m_vehicle_lane); + m_vehicle_lane_id = x.m_vehicle_lane_id; + m_strategy_desc = std::move(x.m_strategy_desc); + m_committed_at = std::move(x.m_committed_at); + m_display_text = std::move(x.m_display_text); + m_print_content = std::move(x.m_print_content); + m_print_required = x.m_print_required; + m_print_count = x.m_print_count; + m_voice_id = x.m_voice_id; + m_voice_text = std::move(x.m_voice_text); + m_is_reprint = x.m_is_reprint; + m_physical_card_state = std::move(x.m_physical_card_state); + m_card_write_status = std::move(x.m_card_write_status); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x QueueSuccess object to compare. + */ + eProsima_user_DllExport bool operator ==( + const QueueSuccess& x) const + { + return (m_message_id == x.m_message_id && + m_card_number == x.m_card_number && + m_device_id == x.m_device_id && + m_result_code == x.m_result_code && + m_queue_record_id == x.m_queue_record_id && + m_queue_number == x.m_queue_number && + m_sample_machine == x.m_sample_machine && + m_queue_time == x.m_queue_time && + m_ticket_number == x.m_ticket_number && + m_sample_code == x.m_sample_code && + m_vehicle_number == x.m_vehicle_number && + m_vehicle_self_no == x.m_vehicle_self_no && + m_vehicle_type_id == x.m_vehicle_type_id && + m_supplier_identity_id == x.m_supplier_identity_id && + m_supplier_identity_name == x.m_supplier_identity_name && + m_supplier_id == x.m_supplier_id && + m_supplier_name == x.m_supplier_name && + m_goods_id == x.m_goods_id && + m_goods_name == x.m_goods_name && + m_unit_id == x.m_unit_id && + m_transport_company_id == x.m_transport_company_id && + m_sample_type == x.m_sample_type && + m_unloading_point_name == x.m_unloading_point_name && + m_ship_gross_weight == x.m_ship_gross_weight && + m_ship_tare_weight == x.m_ship_tare_weight && + m_ship_net_weight == x.m_ship_net_weight && + m_sample_machine_id == x.m_sample_machine_id && + m_vehicle_lane == x.m_vehicle_lane && + m_vehicle_lane_id == x.m_vehicle_lane_id && + m_strategy_desc == x.m_strategy_desc && + m_committed_at == x.m_committed_at && + m_display_text == x.m_display_text && + m_print_content == x.m_print_content && + m_print_required == x.m_print_required && + m_print_count == x.m_print_count && + m_voice_id == x.m_voice_id && + m_voice_text == x.m_voice_text && + m_is_reprint == x.m_is_reprint && + m_physical_card_state == x.m_physical_card_state && + m_card_write_status == x.m_card_write_status); + } + + /*! + * @brief Comparison operator. + * @param x QueueSuccess object to compare. + */ + eProsima_user_DllExport bool operator !=( + const QueueSuccess& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member message_id + * @param _message_id New value to be copied in member message_id + */ + eProsima_user_DllExport void message_id( + const std::string& _message_id) + { + m_message_id = _message_id; + } + + /*! + * @brief This function moves the value in member message_id + * @param _message_id New value to be moved in member message_id + */ + eProsima_user_DllExport void message_id( + std::string&& _message_id) + { + m_message_id = std::move(_message_id); + } + + /*! + * @brief This function returns a constant reference to member message_id + * @return Constant reference to member message_id + */ + eProsima_user_DllExport const std::string& message_id() const + { + return m_message_id; + } + + /*! + * @brief This function returns a reference to member message_id + * @return Reference to member message_id + */ + eProsima_user_DllExport std::string& message_id() + { + return m_message_id; + } + + + /*! + * @brief This function copies the value in member card_number + * @param _card_number New value to be copied in member card_number + */ + eProsima_user_DllExport void card_number( + const std::string& _card_number) + { + m_card_number = _card_number; + } + + /*! + * @brief This function moves the value in member card_number + * @param _card_number New value to be moved in member card_number + */ + eProsima_user_DllExport void card_number( + std::string&& _card_number) + { + m_card_number = std::move(_card_number); + } + + /*! + * @brief This function returns a constant reference to member card_number + * @return Constant reference to member card_number + */ + eProsima_user_DllExport const std::string& card_number() const + { + return m_card_number; + } + + /*! + * @brief This function returns a reference to member card_number + * @return Reference to member card_number + */ + eProsima_user_DllExport std::string& card_number() + { + return m_card_number; + } + + + /*! + * @brief This function copies the value in member device_id + * @param _device_id New value to be copied in member device_id + */ + eProsima_user_DllExport void device_id( + const std::string& _device_id) + { + m_device_id = _device_id; + } + + /*! + * @brief This function moves the value in member device_id + * @param _device_id New value to be moved in member device_id + */ + eProsima_user_DllExport void device_id( + std::string&& _device_id) + { + m_device_id = std::move(_device_id); + } + + /*! + * @brief This function returns a constant reference to member device_id + * @return Constant reference to member device_id + */ + eProsima_user_DllExport const std::string& device_id() const + { + return m_device_id; + } + + /*! + * @brief This function returns a reference to member device_id + * @return Reference to member device_id + */ + eProsima_user_DllExport std::string& device_id() + { + return m_device_id; + } + + + /*! + * @brief This function sets a value in member result_code + * @param _result_code New value for member result_code + */ + eProsima_user_DllExport void result_code( + int32_t _result_code) + { + m_result_code = _result_code; + } + + /*! + * @brief This function returns the value of member result_code + * @return Value of member result_code + */ + eProsima_user_DllExport int32_t result_code() const + { + return m_result_code; + } + + /*! + * @brief This function returns a reference to member result_code + * @return Reference to member result_code + */ + eProsima_user_DllExport int32_t& result_code() + { + return m_result_code; + } + + + /*! + * @brief This function sets a value in member queue_record_id + * @param _queue_record_id New value for member queue_record_id + */ + eProsima_user_DllExport void queue_record_id( + int32_t _queue_record_id) + { + m_queue_record_id = _queue_record_id; + } + + /*! + * @brief This function returns the value of member queue_record_id + * @return Value of member queue_record_id + */ + eProsima_user_DllExport int32_t queue_record_id() const + { + return m_queue_record_id; + } + + /*! + * @brief This function returns a reference to member queue_record_id + * @return Reference to member queue_record_id + */ + eProsima_user_DllExport int32_t& queue_record_id() + { + return m_queue_record_id; + } + + + /*! + * @brief This function sets a value in member queue_number + * @param _queue_number New value for member queue_number + */ + eProsima_user_DllExport void queue_number( + int32_t _queue_number) + { + m_queue_number = _queue_number; + } + + /*! + * @brief This function returns the value of member queue_number + * @return Value of member queue_number + */ + eProsima_user_DllExport int32_t queue_number() const + { + return m_queue_number; + } + + /*! + * @brief This function returns a reference to member queue_number + * @return Reference to member queue_number + */ + eProsima_user_DllExport int32_t& queue_number() + { + return m_queue_number; + } + + + /*! + * @brief This function copies the value in member sample_machine + * @param _sample_machine New value to be copied in member sample_machine + */ + eProsima_user_DllExport void sample_machine( + const std::string& _sample_machine) + { + m_sample_machine = _sample_machine; + } + + /*! + * @brief This function moves the value in member sample_machine + * @param _sample_machine New value to be moved in member sample_machine + */ + eProsima_user_DllExport void sample_machine( + std::string&& _sample_machine) + { + m_sample_machine = std::move(_sample_machine); + } + + /*! + * @brief This function returns a constant reference to member sample_machine + * @return Constant reference to member sample_machine + */ + eProsima_user_DllExport const std::string& sample_machine() const + { + return m_sample_machine; + } + + /*! + * @brief This function returns a reference to member sample_machine + * @return Reference to member sample_machine + */ + eProsima_user_DllExport std::string& sample_machine() + { + return m_sample_machine; + } + + + /*! + * @brief This function copies the value in member queue_time + * @param _queue_time New value to be copied in member queue_time + */ + eProsima_user_DllExport void queue_time( + const std::string& _queue_time) + { + m_queue_time = _queue_time; + } + + /*! + * @brief This function moves the value in member queue_time + * @param _queue_time New value to be moved in member queue_time + */ + eProsima_user_DllExport void queue_time( + std::string&& _queue_time) + { + m_queue_time = std::move(_queue_time); + } + + /*! + * @brief This function returns a constant reference to member queue_time + * @return Constant reference to member queue_time + */ + eProsima_user_DllExport const std::string& queue_time() const + { + return m_queue_time; + } + + /*! + * @brief This function returns a reference to member queue_time + * @return Reference to member queue_time + */ + eProsima_user_DllExport std::string& queue_time() + { + return m_queue_time; + } + + + /*! + * @brief This function copies the value in member ticket_number + * @param _ticket_number New value to be copied in member ticket_number + */ + eProsima_user_DllExport void ticket_number( + const std::string& _ticket_number) + { + m_ticket_number = _ticket_number; + } + + /*! + * @brief This function moves the value in member ticket_number + * @param _ticket_number New value to be moved in member ticket_number + */ + eProsima_user_DllExport void ticket_number( + std::string&& _ticket_number) + { + m_ticket_number = std::move(_ticket_number); + } + + /*! + * @brief This function returns a constant reference to member ticket_number + * @return Constant reference to member ticket_number + */ + eProsima_user_DllExport const std::string& ticket_number() const + { + return m_ticket_number; + } + + /*! + * @brief This function returns a reference to member ticket_number + * @return Reference to member ticket_number + */ + eProsima_user_DllExport std::string& ticket_number() + { + return m_ticket_number; + } + + + /*! + * @brief This function sets a value in member sample_code + * @param _sample_code New value for member sample_code + */ + eProsima_user_DllExport void sample_code( + int32_t _sample_code) + { + m_sample_code = _sample_code; + } + + /*! + * @brief This function returns the value of member sample_code + * @return Value of member sample_code + */ + eProsima_user_DllExport int32_t sample_code() const + { + return m_sample_code; + } + + /*! + * @brief This function returns a reference to member sample_code + * @return Reference to member sample_code + */ + eProsima_user_DllExport int32_t& sample_code() + { + return m_sample_code; + } + + + /*! + * @brief This function copies the value in member vehicle_number + * @param _vehicle_number New value to be copied in member vehicle_number + */ + eProsima_user_DllExport void vehicle_number( + const std::string& _vehicle_number) + { + m_vehicle_number = _vehicle_number; + } + + /*! + * @brief This function moves the value in member vehicle_number + * @param _vehicle_number New value to be moved in member vehicle_number + */ + eProsima_user_DllExport void vehicle_number( + std::string&& _vehicle_number) + { + m_vehicle_number = std::move(_vehicle_number); + } + + /*! + * @brief This function returns a constant reference to member vehicle_number + * @return Constant reference to member vehicle_number + */ + eProsima_user_DllExport const std::string& vehicle_number() const + { + return m_vehicle_number; + } + + /*! + * @brief This function returns a reference to member vehicle_number + * @return Reference to member vehicle_number + */ + eProsima_user_DllExport std::string& vehicle_number() + { + return m_vehicle_number; + } + + + /*! + * @brief This function sets a value in member vehicle_self_no + * @param _vehicle_self_no New value for member vehicle_self_no + */ + eProsima_user_DllExport void vehicle_self_no( + int32_t _vehicle_self_no) + { + m_vehicle_self_no = _vehicle_self_no; + } + + /*! + * @brief This function returns the value of member vehicle_self_no + * @return Value of member vehicle_self_no + */ + eProsima_user_DllExport int32_t vehicle_self_no() const + { + return m_vehicle_self_no; + } + + /*! + * @brief This function returns a reference to member vehicle_self_no + * @return Reference to member vehicle_self_no + */ + eProsima_user_DllExport int32_t& vehicle_self_no() + { + return m_vehicle_self_no; + } + + + /*! + * @brief This function sets a value in member vehicle_type_id + * @param _vehicle_type_id New value for member vehicle_type_id + */ + eProsima_user_DllExport void vehicle_type_id( + int32_t _vehicle_type_id) + { + m_vehicle_type_id = _vehicle_type_id; + } + + /*! + * @brief This function returns the value of member vehicle_type_id + * @return Value of member vehicle_type_id + */ + eProsima_user_DllExport int32_t vehicle_type_id() const + { + return m_vehicle_type_id; + } + + /*! + * @brief This function returns a reference to member vehicle_type_id + * @return Reference to member vehicle_type_id + */ + eProsima_user_DllExport int32_t& vehicle_type_id() + { + return m_vehicle_type_id; + } + + + /*! + * @brief This function sets a value in member supplier_identity_id + * @param _supplier_identity_id New value for member supplier_identity_id + */ + eProsima_user_DllExport void supplier_identity_id( + int32_t _supplier_identity_id) + { + m_supplier_identity_id = _supplier_identity_id; + } + + /*! + * @brief This function returns the value of member supplier_identity_id + * @return Value of member supplier_identity_id + */ + eProsima_user_DllExport int32_t supplier_identity_id() const + { + return m_supplier_identity_id; + } + + /*! + * @brief This function returns a reference to member supplier_identity_id + * @return Reference to member supplier_identity_id + */ + eProsima_user_DllExport int32_t& supplier_identity_id() + { + return m_supplier_identity_id; + } + + + /*! + * @brief This function copies the value in member supplier_identity_name + * @param _supplier_identity_name New value to be copied in member supplier_identity_name + */ + eProsima_user_DllExport void supplier_identity_name( + const std::string& _supplier_identity_name) + { + m_supplier_identity_name = _supplier_identity_name; + } + + /*! + * @brief This function moves the value in member supplier_identity_name + * @param _supplier_identity_name New value to be moved in member supplier_identity_name + */ + eProsima_user_DllExport void supplier_identity_name( + std::string&& _supplier_identity_name) + { + m_supplier_identity_name = std::move(_supplier_identity_name); + } + + /*! + * @brief This function returns a constant reference to member supplier_identity_name + * @return Constant reference to member supplier_identity_name + */ + eProsima_user_DllExport const std::string& supplier_identity_name() const + { + return m_supplier_identity_name; + } + + /*! + * @brief This function returns a reference to member supplier_identity_name + * @return Reference to member supplier_identity_name + */ + eProsima_user_DllExport std::string& supplier_identity_name() + { + return m_supplier_identity_name; + } + + + /*! + * @brief This function sets a value in member supplier_id + * @param _supplier_id New value for member supplier_id + */ + eProsima_user_DllExport void supplier_id( + int32_t _supplier_id) + { + m_supplier_id = _supplier_id; + } + + /*! + * @brief This function returns the value of member supplier_id + * @return Value of member supplier_id + */ + eProsima_user_DllExport int32_t supplier_id() const + { + return m_supplier_id; + } + + /*! + * @brief This function returns a reference to member supplier_id + * @return Reference to member supplier_id + */ + eProsima_user_DllExport int32_t& supplier_id() + { + return m_supplier_id; + } + + + /*! + * @brief This function copies the value in member supplier_name + * @param _supplier_name New value to be copied in member supplier_name + */ + eProsima_user_DllExport void supplier_name( + const std::string& _supplier_name) + { + m_supplier_name = _supplier_name; + } + + /*! + * @brief This function moves the value in member supplier_name + * @param _supplier_name New value to be moved in member supplier_name + */ + eProsima_user_DllExport void supplier_name( + std::string&& _supplier_name) + { + m_supplier_name = std::move(_supplier_name); + } + + /*! + * @brief This function returns a constant reference to member supplier_name + * @return Constant reference to member supplier_name + */ + eProsima_user_DllExport const std::string& supplier_name() const + { + return m_supplier_name; + } + + /*! + * @brief This function returns a reference to member supplier_name + * @return Reference to member supplier_name + */ + eProsima_user_DllExport std::string& supplier_name() + { + return m_supplier_name; + } + + + /*! + * @brief This function sets a value in member goods_id + * @param _goods_id New value for member goods_id + */ + eProsima_user_DllExport void goods_id( + int32_t _goods_id) + { + m_goods_id = _goods_id; + } + + /*! + * @brief This function returns the value of member goods_id + * @return Value of member goods_id + */ + eProsima_user_DllExport int32_t goods_id() const + { + return m_goods_id; + } + + /*! + * @brief This function returns a reference to member goods_id + * @return Reference to member goods_id + */ + eProsima_user_DllExport int32_t& goods_id() + { + return m_goods_id; + } + + + /*! + * @brief This function copies the value in member goods_name + * @param _goods_name New value to be copied in member goods_name + */ + eProsima_user_DllExport void goods_name( + const std::string& _goods_name) + { + m_goods_name = _goods_name; + } + + /*! + * @brief This function moves the value in member goods_name + * @param _goods_name New value to be moved in member goods_name + */ + eProsima_user_DllExport void goods_name( + std::string&& _goods_name) + { + m_goods_name = std::move(_goods_name); + } + + /*! + * @brief This function returns a constant reference to member goods_name + * @return Constant reference to member goods_name + */ + eProsima_user_DllExport const std::string& goods_name() const + { + return m_goods_name; + } + + /*! + * @brief This function returns a reference to member goods_name + * @return Reference to member goods_name + */ + eProsima_user_DllExport std::string& goods_name() + { + return m_goods_name; + } + + + /*! + * @brief This function sets a value in member unit_id + * @param _unit_id New value for member unit_id + */ + eProsima_user_DllExport void unit_id( + int32_t _unit_id) + { + m_unit_id = _unit_id; + } + + /*! + * @brief This function returns the value of member unit_id + * @return Value of member unit_id + */ + eProsima_user_DllExport int32_t unit_id() const + { + return m_unit_id; + } + + /*! + * @brief This function returns a reference to member unit_id + * @return Reference to member unit_id + */ + eProsima_user_DllExport int32_t& unit_id() + { + return m_unit_id; + } + + + /*! + * @brief This function sets a value in member transport_company_id + * @param _transport_company_id New value for member transport_company_id + */ + eProsima_user_DllExport void transport_company_id( + int32_t _transport_company_id) + { + m_transport_company_id = _transport_company_id; + } + + /*! + * @brief This function returns the value of member transport_company_id + * @return Value of member transport_company_id + */ + eProsima_user_DllExport int32_t transport_company_id() const + { + return m_transport_company_id; + } + + /*! + * @brief This function returns a reference to member transport_company_id + * @return Reference to member transport_company_id + */ + eProsima_user_DllExport int32_t& transport_company_id() + { + return m_transport_company_id; + } + + + /*! + * @brief This function sets a value in member sample_type + * @param _sample_type New value for member sample_type + */ + eProsima_user_DllExport void sample_type( + int32_t _sample_type) + { + m_sample_type = _sample_type; + } + + /*! + * @brief This function returns the value of member sample_type + * @return Value of member sample_type + */ + eProsima_user_DllExport int32_t sample_type() const + { + return m_sample_type; + } + + /*! + * @brief This function returns a reference to member sample_type + * @return Reference to member sample_type + */ + eProsima_user_DllExport int32_t& sample_type() + { + return m_sample_type; + } + + + /*! + * @brief This function copies the value in member unloading_point_name + * @param _unloading_point_name New value to be copied in member unloading_point_name + */ + eProsima_user_DllExport void unloading_point_name( + const std::string& _unloading_point_name) + { + m_unloading_point_name = _unloading_point_name; + } + + /*! + * @brief This function moves the value in member unloading_point_name + * @param _unloading_point_name New value to be moved in member unloading_point_name + */ + eProsima_user_DllExport void unloading_point_name( + std::string&& _unloading_point_name) + { + m_unloading_point_name = std::move(_unloading_point_name); + } + + /*! + * @brief This function returns a constant reference to member unloading_point_name + * @return Constant reference to member unloading_point_name + */ + eProsima_user_DllExport const std::string& unloading_point_name() const + { + return m_unloading_point_name; + } + + /*! + * @brief This function returns a reference to member unloading_point_name + * @return Reference to member unloading_point_name + */ + eProsima_user_DllExport std::string& unloading_point_name() + { + return m_unloading_point_name; + } + + + /*! + * @brief This function sets a value in member ship_gross_weight + * @param _ship_gross_weight New value for member ship_gross_weight + */ + eProsima_user_DllExport void ship_gross_weight( + float _ship_gross_weight) + { + m_ship_gross_weight = _ship_gross_weight; + } + + /*! + * @brief This function returns the value of member ship_gross_weight + * @return Value of member ship_gross_weight + */ + eProsima_user_DllExport float ship_gross_weight() const + { + return m_ship_gross_weight; + } + + /*! + * @brief This function returns a reference to member ship_gross_weight + * @return Reference to member ship_gross_weight + */ + eProsima_user_DllExport float& ship_gross_weight() + { + return m_ship_gross_weight; + } + + + /*! + * @brief This function sets a value in member ship_tare_weight + * @param _ship_tare_weight New value for member ship_tare_weight + */ + eProsima_user_DllExport void ship_tare_weight( + float _ship_tare_weight) + { + m_ship_tare_weight = _ship_tare_weight; + } + + /*! + * @brief This function returns the value of member ship_tare_weight + * @return Value of member ship_tare_weight + */ + eProsima_user_DllExport float ship_tare_weight() const + { + return m_ship_tare_weight; + } + + /*! + * @brief This function returns a reference to member ship_tare_weight + * @return Reference to member ship_tare_weight + */ + eProsima_user_DllExport float& ship_tare_weight() + { + return m_ship_tare_weight; + } + + + /*! + * @brief This function sets a value in member ship_net_weight + * @param _ship_net_weight New value for member ship_net_weight + */ + eProsima_user_DllExport void ship_net_weight( + float _ship_net_weight) + { + m_ship_net_weight = _ship_net_weight; + } + + /*! + * @brief This function returns the value of member ship_net_weight + * @return Value of member ship_net_weight + */ + eProsima_user_DllExport float ship_net_weight() const + { + return m_ship_net_weight; + } + + /*! + * @brief This function returns a reference to member ship_net_weight + * @return Reference to member ship_net_weight + */ + eProsima_user_DllExport float& ship_net_weight() + { + return m_ship_net_weight; + } + + + /*! + * @brief This function sets a value in member sample_machine_id + * @param _sample_machine_id New value for member sample_machine_id + */ + eProsima_user_DllExport void sample_machine_id( + int32_t _sample_machine_id) + { + m_sample_machine_id = _sample_machine_id; + } + + /*! + * @brief This function returns the value of member sample_machine_id + * @return Value of member sample_machine_id + */ + eProsima_user_DllExport int32_t sample_machine_id() const + { + return m_sample_machine_id; + } + + /*! + * @brief This function returns a reference to member sample_machine_id + * @return Reference to member sample_machine_id + */ + eProsima_user_DllExport int32_t& sample_machine_id() + { + return m_sample_machine_id; + } + + + /*! + * @brief This function copies the value in member vehicle_lane + * @param _vehicle_lane New value to be copied in member vehicle_lane + */ + eProsima_user_DllExport void vehicle_lane( + const std::string& _vehicle_lane) + { + m_vehicle_lane = _vehicle_lane; + } + + /*! + * @brief This function moves the value in member vehicle_lane + * @param _vehicle_lane New value to be moved in member vehicle_lane + */ + eProsima_user_DllExport void vehicle_lane( + std::string&& _vehicle_lane) + { + m_vehicle_lane = std::move(_vehicle_lane); + } + + /*! + * @brief This function returns a constant reference to member vehicle_lane + * @return Constant reference to member vehicle_lane + */ + eProsima_user_DllExport const std::string& vehicle_lane() const + { + return m_vehicle_lane; + } + + /*! + * @brief This function returns a reference to member vehicle_lane + * @return Reference to member vehicle_lane + */ + eProsima_user_DllExport std::string& vehicle_lane() + { + return m_vehicle_lane; + } + + + /*! + * @brief This function sets a value in member vehicle_lane_id + * @param _vehicle_lane_id New value for member vehicle_lane_id + */ + eProsima_user_DllExport void vehicle_lane_id( + int32_t _vehicle_lane_id) + { + m_vehicle_lane_id = _vehicle_lane_id; + } + + /*! + * @brief This function returns the value of member vehicle_lane_id + * @return Value of member vehicle_lane_id + */ + eProsima_user_DllExport int32_t vehicle_lane_id() const + { + return m_vehicle_lane_id; + } + + /*! + * @brief This function returns a reference to member vehicle_lane_id + * @return Reference to member vehicle_lane_id + */ + eProsima_user_DllExport int32_t& vehicle_lane_id() + { + return m_vehicle_lane_id; + } + + + /*! + * @brief This function copies the value in member strategy_desc + * @param _strategy_desc New value to be copied in member strategy_desc + */ + eProsima_user_DllExport void strategy_desc( + const std::string& _strategy_desc) + { + m_strategy_desc = _strategy_desc; + } + + /*! + * @brief This function moves the value in member strategy_desc + * @param _strategy_desc New value to be moved in member strategy_desc + */ + eProsima_user_DllExport void strategy_desc( + std::string&& _strategy_desc) + { + m_strategy_desc = std::move(_strategy_desc); + } + + /*! + * @brief This function returns a constant reference to member strategy_desc + * @return Constant reference to member strategy_desc + */ + eProsima_user_DllExport const std::string& strategy_desc() const + { + return m_strategy_desc; + } + + /*! + * @brief This function returns a reference to member strategy_desc + * @return Reference to member strategy_desc + */ + eProsima_user_DllExport std::string& strategy_desc() + { + return m_strategy_desc; + } + + + /*! + * @brief This function copies the value in member committed_at + * @param _committed_at New value to be copied in member committed_at + */ + eProsima_user_DllExport void committed_at( + const std::string& _committed_at) + { + m_committed_at = _committed_at; + } + + /*! + * @brief This function moves the value in member committed_at + * @param _committed_at New value to be moved in member committed_at + */ + eProsima_user_DllExport void committed_at( + std::string&& _committed_at) + { + m_committed_at = std::move(_committed_at); + } + + /*! + * @brief This function returns a constant reference to member committed_at + * @return Constant reference to member committed_at + */ + eProsima_user_DllExport const std::string& committed_at() const + { + return m_committed_at; + } + + /*! + * @brief This function returns a reference to member committed_at + * @return Reference to member committed_at + */ + eProsima_user_DllExport std::string& committed_at() + { + return m_committed_at; + } + + + /*! + * @brief This function copies the value in member display_text + * @param _display_text New value to be copied in member display_text + */ + eProsima_user_DllExport void display_text( + const std::string& _display_text) + { + m_display_text = _display_text; + } + + /*! + * @brief This function moves the value in member display_text + * @param _display_text New value to be moved in member display_text + */ + eProsima_user_DllExport void display_text( + std::string&& _display_text) + { + m_display_text = std::move(_display_text); + } + + /*! + * @brief This function returns a constant reference to member display_text + * @return Constant reference to member display_text + */ + eProsima_user_DllExport const std::string& display_text() const + { + return m_display_text; + } + + /*! + * @brief This function returns a reference to member display_text + * @return Reference to member display_text + */ + eProsima_user_DllExport std::string& display_text() + { + return m_display_text; + } + + + /*! + * @brief This function copies the value in member print_content + * @param _print_content New value to be copied in member print_content + */ + eProsima_user_DllExport void print_content( + const std::string& _print_content) + { + m_print_content = _print_content; + } + + /*! + * @brief This function moves the value in member print_content + * @param _print_content New value to be moved in member print_content + */ + eProsima_user_DllExport void print_content( + std::string&& _print_content) + { + m_print_content = std::move(_print_content); + } + + /*! + * @brief This function returns a constant reference to member print_content + * @return Constant reference to member print_content + */ + eProsima_user_DllExport const std::string& print_content() const + { + return m_print_content; + } + + /*! + * @brief This function returns a reference to member print_content + * @return Reference to member print_content + */ + eProsima_user_DllExport std::string& print_content() + { + return m_print_content; + } + + + /*! + * @brief This function sets a value in member print_required + * @param _print_required New value for member print_required + */ + eProsima_user_DllExport void print_required( + bool _print_required) + { + m_print_required = _print_required; + } + + /*! + * @brief This function returns the value of member print_required + * @return Value of member print_required + */ + eProsima_user_DllExport bool print_required() const + { + return m_print_required; + } + + /*! + * @brief This function returns a reference to member print_required + * @return Reference to member print_required + */ + eProsima_user_DllExport bool& print_required() + { + return m_print_required; + } + + + /*! + * @brief This function sets a value in member print_count + * @param _print_count New value for member print_count + */ + eProsima_user_DllExport void print_count( + int32_t _print_count) + { + m_print_count = _print_count; + } + + /*! + * @brief This function returns the value of member print_count + * @return Value of member print_count + */ + eProsima_user_DllExport int32_t print_count() const + { + return m_print_count; + } + + /*! + * @brief This function returns a reference to member print_count + * @return Reference to member print_count + */ + eProsima_user_DllExport int32_t& print_count() + { + return m_print_count; + } + + + /*! + * @brief This function sets a value in member voice_id + * @param _voice_id New value for member voice_id + */ + eProsima_user_DllExport void voice_id( + int32_t _voice_id) + { + m_voice_id = _voice_id; + } + + /*! + * @brief This function returns the value of member voice_id + * @return Value of member voice_id + */ + eProsima_user_DllExport int32_t voice_id() const + { + return m_voice_id; + } + + /*! + * @brief This function returns a reference to member voice_id + * @return Reference to member voice_id + */ + eProsima_user_DllExport int32_t& voice_id() + { + return m_voice_id; + } + + + /*! + * @brief This function copies the value in member voice_text + * @param _voice_text New value to be copied in member voice_text + */ + eProsima_user_DllExport void voice_text( + const std::string& _voice_text) + { + m_voice_text = _voice_text; + } + + /*! + * @brief This function moves the value in member voice_text + * @param _voice_text New value to be moved in member voice_text + */ + eProsima_user_DllExport void voice_text( + std::string&& _voice_text) + { + m_voice_text = std::move(_voice_text); + } + + /*! + * @brief This function returns a constant reference to member voice_text + * @return Constant reference to member voice_text + */ + eProsima_user_DllExport const std::string& voice_text() const + { + return m_voice_text; + } + + /*! + * @brief This function returns a reference to member voice_text + * @return Reference to member voice_text + */ + eProsima_user_DllExport std::string& voice_text() + { + return m_voice_text; + } + + + /*! + * @brief This function sets a value in member is_reprint + * @param _is_reprint New value for member is_reprint + */ + eProsima_user_DllExport void is_reprint( + bool _is_reprint) + { + m_is_reprint = _is_reprint; + } + + /*! + * @brief This function returns the value of member is_reprint + * @return Value of member is_reprint + */ + eProsima_user_DllExport bool is_reprint() const + { + return m_is_reprint; + } + + /*! + * @brief This function returns a reference to member is_reprint + * @return Reference to member is_reprint + */ + eProsima_user_DllExport bool& is_reprint() + { + return m_is_reprint; + } + + + /*! + * @brief This function copies the value in member physical_card_state + * @param _physical_card_state New value to be copied in member physical_card_state + */ + eProsima_user_DllExport void physical_card_state( + const std::string& _physical_card_state) + { + m_physical_card_state = _physical_card_state; + } + + /*! + * @brief This function moves the value in member physical_card_state + * @param _physical_card_state New value to be moved in member physical_card_state + */ + eProsima_user_DllExport void physical_card_state( + std::string&& _physical_card_state) + { + m_physical_card_state = std::move(_physical_card_state); + } + + /*! + * @brief This function returns a constant reference to member physical_card_state + * @return Constant reference to member physical_card_state + */ + eProsima_user_DllExport const std::string& physical_card_state() const + { + return m_physical_card_state; + } + + /*! + * @brief This function returns a reference to member physical_card_state + * @return Reference to member physical_card_state + */ + eProsima_user_DllExport std::string& physical_card_state() + { + return m_physical_card_state; + } + + + /*! + * @brief This function copies the value in member card_write_status + * @param _card_write_status New value to be copied in member card_write_status + */ + eProsima_user_DllExport void card_write_status( + const std::string& _card_write_status) + { + m_card_write_status = _card_write_status; + } + + /*! + * @brief This function moves the value in member card_write_status + * @param _card_write_status New value to be moved in member card_write_status + */ + eProsima_user_DllExport void card_write_status( + std::string&& _card_write_status) + { + m_card_write_status = std::move(_card_write_status); + } + + /*! + * @brief This function returns a constant reference to member card_write_status + * @return Constant reference to member card_write_status + */ + eProsima_user_DllExport const std::string& card_write_status() const + { + return m_card_write_status; + } + + /*! + * @brief This function returns a reference to member card_write_status + * @return Reference to member card_write_status + */ + eProsima_user_DllExport std::string& card_write_status() + { + return m_card_write_status; + } + + + +private: + + std::string m_message_id; + std::string m_card_number; + std::string m_device_id; + int32_t m_result_code{0}; + int32_t m_queue_record_id{0}; + int32_t m_queue_number{0}; + std::string m_sample_machine; + std::string m_queue_time; + std::string m_ticket_number; + int32_t m_sample_code{0}; + std::string m_vehicle_number; + int32_t m_vehicle_self_no{0}; + int32_t m_vehicle_type_id{0}; + int32_t m_supplier_identity_id{0}; + std::string m_supplier_identity_name; + int32_t m_supplier_id{0}; + std::string m_supplier_name; + int32_t m_goods_id{0}; + std::string m_goods_name; + int32_t m_unit_id{0}; + int32_t m_transport_company_id{0}; + int32_t m_sample_type{0}; + std::string m_unloading_point_name; + float m_ship_gross_weight{0.0}; + float m_ship_tare_weight{0.0}; + float m_ship_net_weight{0.0}; + int32_t m_sample_machine_id{0}; + std::string m_vehicle_lane; + int32_t m_vehicle_lane_id{0}; + std::string m_strategy_desc; + std::string m_committed_at; + std::string m_display_text; + std::string m_print_content; + bool m_print_required{false}; + int32_t m_print_count{0}; + int32_t m_voice_id{0}; + std::string m_voice_text; + bool m_is_reprint{false}; + std::string m_physical_card_state; + std::string m_card_write_status; + +}; +/*! + * @brief This class represents the structure QueueFailure defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ +class QueueFailure +{ +public: + + /*! + * @brief Default constructor. + */ + eProsima_user_DllExport QueueFailure() + { + } + + /*! + * @brief Default destructor. + */ + eProsima_user_DllExport ~QueueFailure() + { + } + + /*! + * @brief Copy constructor. + * @param x Reference to the object QueueFailure that will be copied. + */ + eProsima_user_DllExport QueueFailure( + const QueueFailure& x) + { + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_error_code = x.m_error_code; + + m_failed_step = x.m_failed_step; + + m_message = x.m_message; + + m_vehicle_number = x.m_vehicle_number; + + m_queue_record_id = x.m_queue_record_id; + + m_queue_number = x.m_queue_number; + + m_sample_machine = x.m_sample_machine; + + m_ticket_number = x.m_ticket_number; + + m_existing_queue_record_id = x.m_existing_queue_record_id; + + m_existing_queue_number = x.m_existing_queue_number; + + m_existing_sample_machine = x.m_existing_sample_machine; + + m_cache_state = x.m_cache_state; + + m_database_state = x.m_database_state; + + m_physical_card_state = x.m_physical_card_state; + + m_retryable = x.m_retryable; + + m_retry_after_ms = x.m_retry_after_ms; + + m_voice_id = x.m_voice_id; + + m_voice_text = x.m_voice_text; + + m_card_write_status = x.m_card_write_status; + + } + + /*! + * @brief Move constructor. + * @param x Reference to the object QueueFailure that will be copied. + */ + eProsima_user_DllExport QueueFailure( + QueueFailure&& x) noexcept + { + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_error_code = std::move(x.m_error_code); + m_failed_step = std::move(x.m_failed_step); + m_message = std::move(x.m_message); + m_vehicle_number = std::move(x.m_vehicle_number); + m_queue_record_id = x.m_queue_record_id; + m_queue_number = x.m_queue_number; + m_sample_machine = std::move(x.m_sample_machine); + m_ticket_number = std::move(x.m_ticket_number); + m_existing_queue_record_id = x.m_existing_queue_record_id; + m_existing_queue_number = x.m_existing_queue_number; + m_existing_sample_machine = std::move(x.m_existing_sample_machine); + m_cache_state = std::move(x.m_cache_state); + m_database_state = std::move(x.m_database_state); + m_physical_card_state = std::move(x.m_physical_card_state); + m_retryable = x.m_retryable; + m_retry_after_ms = x.m_retry_after_ms; + m_voice_id = x.m_voice_id; + m_voice_text = std::move(x.m_voice_text); + m_card_write_status = std::move(x.m_card_write_status); + } + + /*! + * @brief Copy assignment. + * @param x Reference to the object QueueFailure that will be copied. + */ + eProsima_user_DllExport QueueFailure& operator =( + const QueueFailure& x) + { + + m_message_id = x.m_message_id; + + m_card_number = x.m_card_number; + + m_device_id = x.m_device_id; + + m_error_code = x.m_error_code; + + m_failed_step = x.m_failed_step; + + m_message = x.m_message; + + m_vehicle_number = x.m_vehicle_number; + + m_queue_record_id = x.m_queue_record_id; + + m_queue_number = x.m_queue_number; + + m_sample_machine = x.m_sample_machine; + + m_ticket_number = x.m_ticket_number; + + m_existing_queue_record_id = x.m_existing_queue_record_id; + + m_existing_queue_number = x.m_existing_queue_number; + + m_existing_sample_machine = x.m_existing_sample_machine; + + m_cache_state = x.m_cache_state; + + m_database_state = x.m_database_state; + + m_physical_card_state = x.m_physical_card_state; + + m_retryable = x.m_retryable; + + m_retry_after_ms = x.m_retry_after_ms; + + m_voice_id = x.m_voice_id; + + m_voice_text = x.m_voice_text; + + m_card_write_status = x.m_card_write_status; + + return *this; + } + + /*! + * @brief Move assignment. + * @param x Reference to the object QueueFailure that will be copied. + */ + eProsima_user_DllExport QueueFailure& operator =( + QueueFailure&& x) noexcept + { + + m_message_id = std::move(x.m_message_id); + m_card_number = std::move(x.m_card_number); + m_device_id = std::move(x.m_device_id); + m_error_code = std::move(x.m_error_code); + m_failed_step = std::move(x.m_failed_step); + m_message = std::move(x.m_message); + m_vehicle_number = std::move(x.m_vehicle_number); + m_queue_record_id = x.m_queue_record_id; + m_queue_number = x.m_queue_number; + m_sample_machine = std::move(x.m_sample_machine); + m_ticket_number = std::move(x.m_ticket_number); + m_existing_queue_record_id = x.m_existing_queue_record_id; + m_existing_queue_number = x.m_existing_queue_number; + m_existing_sample_machine = std::move(x.m_existing_sample_machine); + m_cache_state = std::move(x.m_cache_state); + m_database_state = std::move(x.m_database_state); + m_physical_card_state = std::move(x.m_physical_card_state); + m_retryable = x.m_retryable; + m_retry_after_ms = x.m_retry_after_ms; + m_voice_id = x.m_voice_id; + m_voice_text = std::move(x.m_voice_text); + m_card_write_status = std::move(x.m_card_write_status); + return *this; + } + + /*! + * @brief Comparison operator. + * @param x QueueFailure object to compare. + */ + eProsima_user_DllExport bool operator ==( + const QueueFailure& x) const + { + return (m_message_id == x.m_message_id && + m_card_number == x.m_card_number && + m_device_id == x.m_device_id && + m_error_code == x.m_error_code && + m_failed_step == x.m_failed_step && + m_message == x.m_message && + m_vehicle_number == x.m_vehicle_number && + m_queue_record_id == x.m_queue_record_id && + m_queue_number == x.m_queue_number && + m_sample_machine == x.m_sample_machine && + m_ticket_number == x.m_ticket_number && + m_existing_queue_record_id == x.m_existing_queue_record_id && + m_existing_queue_number == x.m_existing_queue_number && + m_existing_sample_machine == x.m_existing_sample_machine && + m_cache_state == x.m_cache_state && + m_database_state == x.m_database_state && + m_physical_card_state == x.m_physical_card_state && + m_retryable == x.m_retryable && + m_retry_after_ms == x.m_retry_after_ms && + m_voice_id == x.m_voice_id && + m_voice_text == x.m_voice_text && + m_card_write_status == x.m_card_write_status); + } + + /*! + * @brief Comparison operator. + * @param x QueueFailure object to compare. + */ + eProsima_user_DllExport bool operator !=( + const QueueFailure& x) const + { + return !(*this == x); + } + + /*! + * @brief This function copies the value in member message_id + * @param _message_id New value to be copied in member message_id + */ + eProsima_user_DllExport void message_id( + const std::string& _message_id) + { + m_message_id = _message_id; + } + + /*! + * @brief This function moves the value in member message_id + * @param _message_id New value to be moved in member message_id + */ + eProsima_user_DllExport void message_id( + std::string&& _message_id) + { + m_message_id = std::move(_message_id); + } + + /*! + * @brief This function returns a constant reference to member message_id + * @return Constant reference to member message_id + */ + eProsima_user_DllExport const std::string& message_id() const + { + return m_message_id; + } + + /*! + * @brief This function returns a reference to member message_id + * @return Reference to member message_id + */ + eProsima_user_DllExport std::string& message_id() + { + return m_message_id; + } + + + /*! + * @brief This function copies the value in member card_number + * @param _card_number New value to be copied in member card_number + */ + eProsima_user_DllExport void card_number( + const std::string& _card_number) + { + m_card_number = _card_number; + } + + /*! + * @brief This function moves the value in member card_number + * @param _card_number New value to be moved in member card_number + */ + eProsima_user_DllExport void card_number( + std::string&& _card_number) + { + m_card_number = std::move(_card_number); + } + + /*! + * @brief This function returns a constant reference to member card_number + * @return Constant reference to member card_number + */ + eProsima_user_DllExport const std::string& card_number() const + { + return m_card_number; + } + + /*! + * @brief This function returns a reference to member card_number + * @return Reference to member card_number + */ + eProsima_user_DllExport std::string& card_number() + { + return m_card_number; + } + + + /*! + * @brief This function copies the value in member device_id + * @param _device_id New value to be copied in member device_id + */ + eProsima_user_DllExport void device_id( + const std::string& _device_id) + { + m_device_id = _device_id; + } + + /*! + * @brief This function moves the value in member device_id + * @param _device_id New value to be moved in member device_id + */ + eProsima_user_DllExport void device_id( + std::string&& _device_id) + { + m_device_id = std::move(_device_id); + } + + /*! + * @brief This function returns a constant reference to member device_id + * @return Constant reference to member device_id + */ + eProsima_user_DllExport const std::string& device_id() const + { + return m_device_id; + } + + /*! + * @brief This function returns a reference to member device_id + * @return Reference to member device_id + */ + eProsima_user_DllExport std::string& device_id() + { + return m_device_id; + } + + + /*! + * @brief This function copies the value in member error_code + * @param _error_code New value to be copied in member error_code + */ + eProsima_user_DllExport void error_code( + const std::string& _error_code) + { + m_error_code = _error_code; + } + + /*! + * @brief This function moves the value in member error_code + * @param _error_code New value to be moved in member error_code + */ + eProsima_user_DllExport void error_code( + std::string&& _error_code) + { + m_error_code = std::move(_error_code); + } + + /*! + * @brief This function returns a constant reference to member error_code + * @return Constant reference to member error_code + */ + eProsima_user_DllExport const std::string& error_code() const + { + return m_error_code; + } + + /*! + * @brief This function returns a reference to member error_code + * @return Reference to member error_code + */ + eProsima_user_DllExport std::string& error_code() + { + return m_error_code; + } + + + /*! + * @brief This function copies the value in member failed_step + * @param _failed_step New value to be copied in member failed_step + */ + eProsima_user_DllExport void failed_step( + const std::string& _failed_step) + { + m_failed_step = _failed_step; + } + + /*! + * @brief This function moves the value in member failed_step + * @param _failed_step New value to be moved in member failed_step + */ + eProsima_user_DllExport void failed_step( + std::string&& _failed_step) + { + m_failed_step = std::move(_failed_step); + } + + /*! + * @brief This function returns a constant reference to member failed_step + * @return Constant reference to member failed_step + */ + eProsima_user_DllExport const std::string& failed_step() const + { + return m_failed_step; + } + + /*! + * @brief This function returns a reference to member failed_step + * @return Reference to member failed_step + */ + eProsima_user_DllExport std::string& failed_step() + { + return m_failed_step; + } + + + /*! + * @brief This function copies the value in member message + * @param _message New value to be copied in member message + */ + eProsima_user_DllExport void message( + const std::string& _message) + { + m_message = _message; + } + + /*! + * @brief This function moves the value in member message + * @param _message New value to be moved in member message + */ + eProsima_user_DllExport void message( + std::string&& _message) + { + m_message = std::move(_message); + } + + /*! + * @brief This function returns a constant reference to member message + * @return Constant reference to member message + */ + eProsima_user_DllExport const std::string& message() const + { + return m_message; + } + + /*! + * @brief This function returns a reference to member message + * @return Reference to member message + */ + eProsima_user_DllExport std::string& message() + { + return m_message; + } + + + /*! + * @brief This function copies the value in member vehicle_number + * @param _vehicle_number New value to be copied in member vehicle_number + */ + eProsima_user_DllExport void vehicle_number( + const std::string& _vehicle_number) + { + m_vehicle_number = _vehicle_number; + } + + /*! + * @brief This function moves the value in member vehicle_number + * @param _vehicle_number New value to be moved in member vehicle_number + */ + eProsima_user_DllExport void vehicle_number( + std::string&& _vehicle_number) + { + m_vehicle_number = std::move(_vehicle_number); + } + + /*! + * @brief This function returns a constant reference to member vehicle_number + * @return Constant reference to member vehicle_number + */ + eProsima_user_DllExport const std::string& vehicle_number() const + { + return m_vehicle_number; + } + + /*! + * @brief This function returns a reference to member vehicle_number + * @return Reference to member vehicle_number + */ + eProsima_user_DllExport std::string& vehicle_number() + { + return m_vehicle_number; + } + + + /*! + * @brief This function sets a value in member queue_record_id + * @param _queue_record_id New value for member queue_record_id + */ + eProsima_user_DllExport void queue_record_id( + int32_t _queue_record_id) + { + m_queue_record_id = _queue_record_id; + } + + /*! + * @brief This function returns the value of member queue_record_id + * @return Value of member queue_record_id + */ + eProsima_user_DllExport int32_t queue_record_id() const + { + return m_queue_record_id; + } + + /*! + * @brief This function returns a reference to member queue_record_id + * @return Reference to member queue_record_id + */ + eProsima_user_DllExport int32_t& queue_record_id() + { + return m_queue_record_id; + } + + + /*! + * @brief This function sets a value in member queue_number + * @param _queue_number New value for member queue_number + */ + eProsima_user_DllExport void queue_number( + int32_t _queue_number) + { + m_queue_number = _queue_number; + } + + /*! + * @brief This function returns the value of member queue_number + * @return Value of member queue_number + */ + eProsima_user_DllExport int32_t queue_number() const + { + return m_queue_number; + } + + /*! + * @brief This function returns a reference to member queue_number + * @return Reference to member queue_number + */ + eProsima_user_DllExport int32_t& queue_number() + { + return m_queue_number; + } + + + /*! + * @brief This function copies the value in member sample_machine + * @param _sample_machine New value to be copied in member sample_machine + */ + eProsima_user_DllExport void sample_machine( + const std::string& _sample_machine) + { + m_sample_machine = _sample_machine; + } + + /*! + * @brief This function moves the value in member sample_machine + * @param _sample_machine New value to be moved in member sample_machine + */ + eProsima_user_DllExport void sample_machine( + std::string&& _sample_machine) + { + m_sample_machine = std::move(_sample_machine); + } + + /*! + * @brief This function returns a constant reference to member sample_machine + * @return Constant reference to member sample_machine + */ + eProsima_user_DllExport const std::string& sample_machine() const + { + return m_sample_machine; + } + + /*! + * @brief This function returns a reference to member sample_machine + * @return Reference to member sample_machine + */ + eProsima_user_DllExport std::string& sample_machine() + { + return m_sample_machine; + } + + + /*! + * @brief This function copies the value in member ticket_number + * @param _ticket_number New value to be copied in member ticket_number + */ + eProsima_user_DllExport void ticket_number( + const std::string& _ticket_number) + { + m_ticket_number = _ticket_number; + } + + /*! + * @brief This function moves the value in member ticket_number + * @param _ticket_number New value to be moved in member ticket_number + */ + eProsima_user_DllExport void ticket_number( + std::string&& _ticket_number) + { + m_ticket_number = std::move(_ticket_number); + } + + /*! + * @brief This function returns a constant reference to member ticket_number + * @return Constant reference to member ticket_number + */ + eProsima_user_DllExport const std::string& ticket_number() const + { + return m_ticket_number; + } + + /*! + * @brief This function returns a reference to member ticket_number + * @return Reference to member ticket_number + */ + eProsima_user_DllExport std::string& ticket_number() + { + return m_ticket_number; + } + + + /*! + * @brief This function sets a value in member existing_queue_record_id + * @param _existing_queue_record_id New value for member existing_queue_record_id + */ + eProsima_user_DllExport void existing_queue_record_id( + int32_t _existing_queue_record_id) + { + m_existing_queue_record_id = _existing_queue_record_id; + } + + /*! + * @brief This function returns the value of member existing_queue_record_id + * @return Value of member existing_queue_record_id + */ + eProsima_user_DllExport int32_t existing_queue_record_id() const + { + return m_existing_queue_record_id; + } + + /*! + * @brief This function returns a reference to member existing_queue_record_id + * @return Reference to member existing_queue_record_id + */ + eProsima_user_DllExport int32_t& existing_queue_record_id() + { + return m_existing_queue_record_id; + } + + + /*! + * @brief This function sets a value in member existing_queue_number + * @param _existing_queue_number New value for member existing_queue_number + */ + eProsima_user_DllExport void existing_queue_number( + int32_t _existing_queue_number) + { + m_existing_queue_number = _existing_queue_number; + } + + /*! + * @brief This function returns the value of member existing_queue_number + * @return Value of member existing_queue_number + */ + eProsima_user_DllExport int32_t existing_queue_number() const + { + return m_existing_queue_number; + } + + /*! + * @brief This function returns a reference to member existing_queue_number + * @return Reference to member existing_queue_number + */ + eProsima_user_DllExport int32_t& existing_queue_number() + { + return m_existing_queue_number; + } + + + /*! + * @brief This function copies the value in member existing_sample_machine + * @param _existing_sample_machine New value to be copied in member existing_sample_machine + */ + eProsima_user_DllExport void existing_sample_machine( + const std::string& _existing_sample_machine) + { + m_existing_sample_machine = _existing_sample_machine; + } + + /*! + * @brief This function moves the value in member existing_sample_machine + * @param _existing_sample_machine New value to be moved in member existing_sample_machine + */ + eProsima_user_DllExport void existing_sample_machine( + std::string&& _existing_sample_machine) + { + m_existing_sample_machine = std::move(_existing_sample_machine); + } + + /*! + * @brief This function returns a constant reference to member existing_sample_machine + * @return Constant reference to member existing_sample_machine + */ + eProsima_user_DllExport const std::string& existing_sample_machine() const + { + return m_existing_sample_machine; + } + + /*! + * @brief This function returns a reference to member existing_sample_machine + * @return Reference to member existing_sample_machine + */ + eProsima_user_DllExport std::string& existing_sample_machine() + { + return m_existing_sample_machine; + } + + + /*! + * @brief This function copies the value in member cache_state + * @param _cache_state New value to be copied in member cache_state + */ + eProsima_user_DllExport void cache_state( + const std::string& _cache_state) + { + m_cache_state = _cache_state; + } + + /*! + * @brief This function moves the value in member cache_state + * @param _cache_state New value to be moved in member cache_state + */ + eProsima_user_DllExport void cache_state( + std::string&& _cache_state) + { + m_cache_state = std::move(_cache_state); + } + + /*! + * @brief This function returns a constant reference to member cache_state + * @return Constant reference to member cache_state + */ + eProsima_user_DllExport const std::string& cache_state() const + { + return m_cache_state; + } + + /*! + * @brief This function returns a reference to member cache_state + * @return Reference to member cache_state + */ + eProsima_user_DllExport std::string& cache_state() + { + return m_cache_state; + } + + + /*! + * @brief This function copies the value in member database_state + * @param _database_state New value to be copied in member database_state + */ + eProsima_user_DllExport void database_state( + const std::string& _database_state) + { + m_database_state = _database_state; + } + + /*! + * @brief This function moves the value in member database_state + * @param _database_state New value to be moved in member database_state + */ + eProsima_user_DllExport void database_state( + std::string&& _database_state) + { + m_database_state = std::move(_database_state); + } + + /*! + * @brief This function returns a constant reference to member database_state + * @return Constant reference to member database_state + */ + eProsima_user_DllExport const std::string& database_state() const + { + return m_database_state; + } + + /*! + * @brief This function returns a reference to member database_state + * @return Reference to member database_state + */ + eProsima_user_DllExport std::string& database_state() + { + return m_database_state; + } + + + /*! + * @brief This function copies the value in member physical_card_state + * @param _physical_card_state New value to be copied in member physical_card_state + */ + eProsima_user_DllExport void physical_card_state( + const std::string& _physical_card_state) + { + m_physical_card_state = _physical_card_state; + } + + /*! + * @brief This function moves the value in member physical_card_state + * @param _physical_card_state New value to be moved in member physical_card_state + */ + eProsima_user_DllExport void physical_card_state( + std::string&& _physical_card_state) + { + m_physical_card_state = std::move(_physical_card_state); + } + + /*! + * @brief This function returns a constant reference to member physical_card_state + * @return Constant reference to member physical_card_state + */ + eProsima_user_DllExport const std::string& physical_card_state() const + { + return m_physical_card_state; + } + + /*! + * @brief This function returns a reference to member physical_card_state + * @return Reference to member physical_card_state + */ + eProsima_user_DllExport std::string& physical_card_state() + { + return m_physical_card_state; + } + + + /*! + * @brief This function sets a value in member retryable + * @param _retryable New value for member retryable + */ + eProsima_user_DllExport void retryable( + bool _retryable) + { + m_retryable = _retryable; + } + + /*! + * @brief This function returns the value of member retryable + * @return Value of member retryable + */ + eProsima_user_DllExport bool retryable() const + { + return m_retryable; + } + + /*! + * @brief This function returns a reference to member retryable + * @return Reference to member retryable + */ + eProsima_user_DllExport bool& retryable() + { + return m_retryable; + } + + + /*! + * @brief This function sets a value in member retry_after_ms + * @param _retry_after_ms New value for member retry_after_ms + */ + eProsima_user_DllExport void retry_after_ms( + int32_t _retry_after_ms) + { + m_retry_after_ms = _retry_after_ms; + } + + /*! + * @brief This function returns the value of member retry_after_ms + * @return Value of member retry_after_ms + */ + eProsima_user_DllExport int32_t retry_after_ms() const + { + return m_retry_after_ms; + } + + /*! + * @brief This function returns a reference to member retry_after_ms + * @return Reference to member retry_after_ms + */ + eProsima_user_DllExport int32_t& retry_after_ms() + { + return m_retry_after_ms; + } + + + /*! + * @brief This function sets a value in member voice_id + * @param _voice_id New value for member voice_id + */ + eProsima_user_DllExport void voice_id( + int32_t _voice_id) + { + m_voice_id = _voice_id; + } + + /*! + * @brief This function returns the value of member voice_id + * @return Value of member voice_id + */ + eProsima_user_DllExport int32_t voice_id() const + { + return m_voice_id; + } + + /*! + * @brief This function returns a reference to member voice_id + * @return Reference to member voice_id + */ + eProsima_user_DllExport int32_t& voice_id() + { + return m_voice_id; + } + + + /*! + * @brief This function copies the value in member voice_text + * @param _voice_text New value to be copied in member voice_text + */ + eProsima_user_DllExport void voice_text( + const std::string& _voice_text) + { + m_voice_text = _voice_text; + } + + /*! + * @brief This function moves the value in member voice_text + * @param _voice_text New value to be moved in member voice_text + */ + eProsima_user_DllExport void voice_text( + std::string&& _voice_text) + { + m_voice_text = std::move(_voice_text); + } + + /*! + * @brief This function returns a constant reference to member voice_text + * @return Constant reference to member voice_text + */ + eProsima_user_DllExport const std::string& voice_text() const + { + return m_voice_text; + } + + /*! + * @brief This function returns a reference to member voice_text + * @return Reference to member voice_text + */ + eProsima_user_DllExport std::string& voice_text() + { + return m_voice_text; + } + + + /*! + * @brief This function copies the value in member card_write_status + * @param _card_write_status New value to be copied in member card_write_status + */ + eProsima_user_DllExport void card_write_status( + const std::string& _card_write_status) + { + m_card_write_status = _card_write_status; + } + + /*! + * @brief This function moves the value in member card_write_status + * @param _card_write_status New value to be moved in member card_write_status + */ + eProsima_user_DllExport void card_write_status( + std::string&& _card_write_status) + { + m_card_write_status = std::move(_card_write_status); + } + + /*! + * @brief This function returns a constant reference to member card_write_status + * @return Constant reference to member card_write_status + */ + eProsima_user_DllExport const std::string& card_write_status() const + { + return m_card_write_status; + } + + /*! + * @brief This function returns a reference to member card_write_status + * @return Reference to member card_write_status + */ + eProsima_user_DllExport std::string& card_write_status() + { + return m_card_write_status; + } + + + +private: + + std::string m_message_id; + std::string m_card_number; + std::string m_device_id; + std::string m_error_code; + std::string m_failed_step; + std::string m_message; + std::string m_vehicle_number; + int32_t m_queue_record_id{0}; + int32_t m_queue_number{0}; + std::string m_sample_machine; + std::string m_ticket_number; + int32_t m_existing_queue_record_id{0}; + int32_t m_existing_queue_number{0}; + std::string m_existing_sample_machine; + std::string m_cache_state; + std::string m_database_state; + std::string m_physical_card_state; + bool m_retryable{false}; + int32_t m_retry_after_ms{0}; + int32_t m_voice_id{0}; + std::string m_voice_text; + std::string m_card_write_status; + +}; + +} // namespace Queue + +#endif // _FAST_DDS_GENERATED_QUEUE_WEIGHINGDDSTYPE_HPP_ + + diff --git a/lib/System.idl b/lib/WeighingDDSType.idl similarity index 51% rename from lib/System.idl rename to lib/WeighingDDSType.idl index 590d581..e8920c7 100644 --- a/lib/System.idl +++ b/lib/WeighingDDSType.idl @@ -73,6 +73,12 @@ module WeighingSystem { // 打印磅单相关 string TicketType; // 磅单类型 1:一次称重 2:二次称重 boolean IsPrintTicker; // 是否打印磅单 + + // 绥阳铁合金称重成功扩展属性 + string OrderNumber; // 订单号 + string VehicleAndVesselNumber; // 车船号 + string ReceiveCompany; // 收货单位 + string TransportCompany; // 运输单位 }; // ============================================ @@ -193,34 +199,153 @@ module WeighingSystem { // 称重类 // ============================================ struct SummaryUpdate { - string License; // 车牌号 - float StableValue; // 稳定重量 + string License; // 五彩湾为车牌号;绥阳铁合金为刷卡卡号 + float StableValue; // 稳定重量;绥阳铁合金按吨传输 }; -}; -module InternalSystem -{ - struct PrintReq + // ============================================ + // Topic: ReadCardReq <-- 订阅 Topic (设备驱动侧) + // 类型: ReadCardReq + // 发布者: Core + // 订阅者: ReadCard + // 载荷: map> + // 协议键: "find" / "stop" / "read" / "write" / "beep" / "reset" + // ============================================ + struct ReadCardReq { unsigned long index; - map msg; + map > msg; }; - struct PrintRsp + // ============================================ + // Topic: ReadCardRsp <-- 发布 Topic (设备驱动侧) + // 类型: ReadCardRsp + // 发布者: ReadCard + // 订阅者: Core / MqttDds + // 载荷: map> + // 协议键: "find" / "read" / "write" / "stop" / "beep" + // ============================================ + struct ReadCardRsp { unsigned long index; - string msg; + map > msg; }; - struct IoCtrlReq + // ============================================ + // Topic: PrintReq <-- 发布 Topic (Core → Print) + // 类型: PrintReq + // 发布者: Core + // 订阅者: Print + // 载荷: map + // ============================================ + struct PrintReq { unsigned long index; map msg; }; - struct IoCtrlRsp + // ============================================ + // Topic: PrintRsp <-- 发布 Topic (Print → Core) + // 类型: PrintRsp + // 发布者: Print + // 订阅者: Core + // 载荷: string + // ============================================ + struct PrintRsp { unsigned long index; - map msg; + string msg; + }; +}; + +// ============================================ +// 通用排队服务消息 +// 排队设备通过 QueueTrigger 触发服务,服务发布 Success/Failure 结果。 +// ============================================ +module Queue { + + // 排队机刷卡触发。只表达设备刷到的卡,不携带服务内部缓存定位字段。 + struct QueueTrigger { + string message_id; // 可选技术消息号;重发时保持不变 + string card_number; // 必填;刷卡得到的卡号 + string device_id; // 必填;排队机/读卡器统一设备编号 + string trigger_time; // 可选;ISO-8601时间,仅用于审计和去重 + string vehicle_number_snapshot; // 可选;控件车牌快照,仅用于一致性校验 + long supplier_identity_id_snapshot;// 可选;0表示未提供 + long goods_id_snapshot; // 可选;0表示未提供 + float ship_net_weight_snapshot; // 可选;0表示未提供 + long card_flow_no_snapshot; // 可选;0表示未提供 + string card_type_snapshot; // 可选;卡类型快照 + string electronic_tag_snapshot; // 可选;电子标签由排队设备读取后传递 + }; + + // 排队成功或活动记录补打成功结果。 + struct QueueSuccess { + string message_id; // 可选;技术消息号 + string card_number; // 必填;触发卡号 + string device_id; // 必填;结果目标设备 + long result_code; // 必填:0新排队,1补打 + long queue_record_id; // 排队_列表主键 + long queue_number; // 排队序号 + string sample_machine; // 采样机名称 + string queue_time; // 排入时间 + string ticket_number; // 进煤表票据号 + long sample_code; // 采样编码 + string vehicle_number; // 正式车牌 + long vehicle_self_no; // 车辆自编号 + long vehicle_type_id; // 车型编号 + long supplier_identity_id; // 供应识别号 + string supplier_identity_name; // 供应识别名称 + long supplier_id; // 供应商主键 + string supplier_name; // 供应商名称 + long goods_id; // 品种编号 + string goods_name; // 品种名称 + long unit_id; // 单位编号 + long transport_company_id; // 运输公司编号 + long sample_type; // 采样类型 + string unloading_point_name; // 卸煤点名称 + float ship_gross_weight; // 矿发毛重 + float ship_tare_weight; // 矿发皮重 + float ship_net_weight; // 矿发净重 + long sample_machine_id; // 采样机编号,无值为0 + string vehicle_lane; // 车道名称 + long vehicle_lane_id; // 车道编号,无值为0 + string strategy_desc; // 排队策略说明 + string committed_at; // 数据库提交时间 + string display_text; // 显示文本 + string print_content; // 打印内容 + boolean print_required; // 是否打印 + long print_count; // 打印份数 + long voice_id; // 语音资源编号 + string voice_text; // 语音播报文本 + boolean is_reprint; // 是否补打 + string physical_card_state; // NOT_ATTEMPTED/CHANGED/PARTIAL + string card_write_status; // DISABLED/SUCCEEDED/FAILED/PARTIAL }; -}; \ No newline at end of file + + // 排队失败结果。数据库已提交但事务外动作失败时仍携带已生成的业务编号。 + struct QueueFailure { + string message_id; // 可选;技术消息号 + string card_number; // 可解析时的卡号 + string device_id; // 可识别时的设备编号 + string error_code; // 必填;机器可判定错误码 + string failed_step; // 必填;失败步骤 + string message; // 必填;显示/告警文本 + string vehicle_number; // 缓存车牌(可选) + long queue_record_id; // 已提交排队记录主键,无记录为0 + long queue_number; // 已生成排队号,无记录为0 + string sample_machine; // 已分配采样机 + string ticket_number; // 已生成票据号 + long existing_queue_record_id; // 活动排队记录主键 + long existing_queue_number; // 活动排队号 + string existing_sample_machine; // 活动采样机 + string cache_state; // 缓存状态 + string database_state; // NOT_ATTEMPTED/COMMITTED/ROLLED_BACK/UNKNOWN + string physical_card_state; // NOT_ATTEMPTED/CHANGED/UNCHANGED/PARTIAL/UNKNOWN + boolean retryable; // 是否允许同一触发重试 + long retry_after_ms; // 建议重试等待时间 + long voice_id; // 语音资源编号 + string voice_text; // 语音播报文本 + string card_write_status; // DISABLED/SUCCEEDED/FAILED/PARTIAL + }; +}; diff --git a/lib/SystemCdrAux.hpp b/lib/WeighingDDSTypeCdrAux.hpp similarity index 73% rename from lib/SystemCdrAux.hpp rename to lib/WeighingDDSTypeCdrAux.hpp index 0aed01e..54532b5 100644 --- a/lib/SystemCdrAux.hpp +++ b/lib/WeighingDDSTypeCdrAux.hpp @@ -13,68 +13,77 @@ // limitations under the License. /*! - * @file SystemCdrAux.hpp + * @file WeighingDDSTypeCdrAux.hpp * This source file contains some definitions of CDR related functions. * * This file was generated by the tool fastddsgen. */ -#ifndef FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_HPP -#define FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_HPP +#ifndef FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_HPP +#define FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_HPP -#include "System.hpp" +#include "WeighingDDSType.hpp" + +constexpr uint32_t WeighingSystem_PrintRsp_max_cdr_typesize {268UL}; +constexpr uint32_t WeighingSystem_PrintRsp_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_SummaryUpdate_max_cdr_typesize {268UL}; constexpr uint32_t WeighingSystem_SummaryUpdate_max_key_cdr_typesize {0UL}; +constexpr uint32_t Queue_QueueFailure_max_cdr_typesize {3932UL}; +constexpr uint32_t Queue_QueueFailure_max_key_cdr_typesize {0UL}; + constexpr uint32_t WeighingSystem_LightsUpdate_max_cdr_typesize {12UL}; constexpr uint32_t WeighingSystem_LightsUpdate_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_InfraredUpdate_max_cdr_typesize {12UL}; constexpr uint32_t WeighingSystem_InfraredUpdate_max_key_cdr_typesize {0UL}; -constexpr uint32_t InternalSystem_PrintReq_max_cdr_typesize {16UL}; -constexpr uint32_t InternalSystem_PrintReq_max_key_cdr_typesize {0UL}; +constexpr uint32_t WeighingSystem_ReadCardRsp_max_cdr_typesize {16UL}; +constexpr uint32_t WeighingSystem_ReadCardRsp_max_key_cdr_typesize {0UL}; + +constexpr uint32_t Queue_QueueSuccess_max_cdr_typesize {5028UL}; +constexpr uint32_t Queue_QueueSuccess_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_WeightInfoError_max_cdr_typesize {524UL}; constexpr uint32_t WeighingSystem_WeightInfoError_max_key_cdr_typesize {0UL}; -constexpr uint32_t WeighingSystem_WeightInfoOk_max_cdr_typesize {4977UL}; +constexpr uint32_t WeighingSystem_WeightInfoOk_max_cdr_typesize {6020UL}; constexpr uint32_t WeighingSystem_WeightInfoOk_max_key_cdr_typesize {0UL}; -constexpr uint32_t InternalSystem_IoCtrlRsp_max_cdr_typesize {16UL}; -constexpr uint32_t InternalSystem_IoCtrlRsp_max_key_cdr_typesize {0UL}; - constexpr uint32_t WeighingSystem_InfraredCommandUpdate_max_cdr_typesize {17UL}; constexpr uint32_t WeighingSystem_InfraredCommandUpdate_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_LightsCommandUpdate_max_cdr_typesize {20UL}; constexpr uint32_t WeighingSystem_LightsCommandUpdate_max_key_cdr_typesize {0UL}; +constexpr uint32_t WeighingSystem_ReadCardReq_max_cdr_typesize {16UL}; +constexpr uint32_t WeighingSystem_ReadCardReq_max_key_cdr_typesize {0UL}; + +constexpr uint32_t WeighingSystem_PrintReq_max_cdr_typesize {16UL}; +constexpr uint32_t WeighingSystem_PrintReq_max_key_cdr_typesize {0UL}; + constexpr uint32_t WeighingSystem_LicenseSnapUpdate_max_cdr_typesize {268UL}; constexpr uint32_t WeighingSystem_LicenseSnapUpdate_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_ScaleInfo_max_cdr_typesize {16UL}; constexpr uint32_t WeighingSystem_ScaleInfo_max_key_cdr_typesize {0UL}; -constexpr uint32_t InternalSystem_PrintRsp_max_cdr_typesize {268UL}; -constexpr uint32_t InternalSystem_PrintRsp_max_key_cdr_typesize {0UL}; - constexpr uint32_t WeighingSystem_Voice_max_cdr_typesize {268UL}; constexpr uint32_t WeighingSystem_Voice_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_BarCommandUpdate_max_cdr_typesize {25UL}; constexpr uint32_t WeighingSystem_BarCommandUpdate_max_key_cdr_typesize {0UL}; +constexpr uint32_t Queue_QueueTrigger_max_cdr_typesize {1840UL}; +constexpr uint32_t Queue_QueueTrigger_max_key_cdr_typesize {0UL}; + constexpr uint32_t WeighingSystem_ScaleCommand_max_cdr_typesize {12UL}; constexpr uint32_t WeighingSystem_ScaleCommand_max_key_cdr_typesize {0UL}; constexpr uint32_t WeighingSystem_BarUpdate_max_cdr_typesize {12UL}; constexpr uint32_t WeighingSystem_BarUpdate_max_key_cdr_typesize {0UL}; -constexpr uint32_t InternalSystem_IoCtrlReq_max_cdr_typesize {16UL}; -constexpr uint32_t InternalSystem_IoCtrlReq_max_key_cdr_typesize {0UL}; - namespace eprosima { namespace fastcdr { @@ -136,23 +145,35 @@ eProsima_user_DllExport void serialize_key( eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintReq& data); + const WeighingSystem::ReadCardReq& data); + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const WeighingSystem::ReadCardRsp& data); + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const WeighingSystem::PrintReq& data); + +eProsima_user_DllExport void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const WeighingSystem::PrintRsp& data); eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintRsp& data); + const Queue::QueueTrigger& data); eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlReq& data); + const Queue::QueueSuccess& data); eProsima_user_DllExport void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlRsp& data); + const Queue::QueueFailure& data); } // namespace fastcdr } // namespace eprosima -#endif // FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_HPP +#endif // FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_HPP diff --git a/lib/SystemCdrAux.ipp b/lib/WeighingDDSTypeCdrAux.ipp similarity index 62% rename from lib/SystemCdrAux.ipp rename to lib/WeighingDDSTypeCdrAux.ipp index 3318cf5..5201112 100644 --- a/lib/SystemCdrAux.ipp +++ b/lib/WeighingDDSTypeCdrAux.ipp @@ -13,16 +13,16 @@ // limitations under the License. /*! - * @file SystemCdrAux.ipp + * @file WeighingDDSTypeCdrAux.ipp * This source file contains some declarations of CDR related functions. * * This file was generated by the tool fastddsgen. */ -#ifndef FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_IPP -#define FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_IPP +#ifndef FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_IPP +#define FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_IPP -#include "SystemCdrAux.hpp" +#include "WeighingDDSTypeCdrAux.hpp" #include #include @@ -358,6 +358,18 @@ eProsima_user_DllExport size_t calculate_serialized_size( calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(27), data.IsPrintTicker(), current_alignment); + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(28), + data.OrderNumber(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(29), + data.VehicleAndVesselNumber(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(30), + data.ReceiveCompany(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(31), + data.TransportCompany(), current_alignment); + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); @@ -406,6 +418,10 @@ eProsima_user_DllExport void serialize( << eprosima::fastcdr::MemberId(25) << data.Tips() << eprosima::fastcdr::MemberId(26) << data.TicketType() << eprosima::fastcdr::MemberId(27) << data.IsPrintTicker() + << eprosima::fastcdr::MemberId(28) << data.OrderNumber() + << eprosima::fastcdr::MemberId(29) << data.VehicleAndVesselNumber() + << eprosima::fastcdr::MemberId(30) << data.ReceiveCompany() + << eprosima::fastcdr::MemberId(31) << data.TransportCompany() ; scdr.end_serialize_type(current_state); } @@ -537,6 +553,22 @@ eProsima_user_DllExport void deserialize( dcdr >> data.IsPrintTicker(); break; + case 28: + dcdr >> data.OrderNumber(); + break; + + case 29: + dcdr >> data.VehicleAndVesselNumber(); + break; + + case 30: + dcdr >> data.ReceiveCompany(); + break; + + case 31: + dcdr >> data.TransportCompany(); + break; + default: ret_value = false; break; @@ -609,6 +641,14 @@ void serialize_key( scdr << data.IsPrintTicker(); + scdr << data.OrderNumber(); + + scdr << data.VehicleAndVesselNumber(); + + scdr << data.ReceiveCompany(); + + scdr << data.TransportCompany(); + } @@ -1655,10 +1695,10 @@ void serialize_key( template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, - const InternalSystem::PrintReq& data, + const WeighingSystem::ReadCardReq& data, size_t& current_alignment) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(data); @@ -1685,9 +1725,9 @@ eProsima_user_DllExport size_t calculate_serialized_size( template<> eProsima_user_DllExport void serialize( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintReq& data) + const WeighingSystem::ReadCardReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; eprosima::fastcdr::Cdr::state current_state(scdr); scdr.begin_serialize_type(current_state, @@ -1705,9 +1745,9 @@ eProsima_user_DllExport void serialize( template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, - InternalSystem::PrintReq& data) + WeighingSystem::ReadCardReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : @@ -1735,9 +1775,9 @@ eProsima_user_DllExport void deserialize( void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintReq& data) + const WeighingSystem::ReadCardReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(scdr); static_cast(data); @@ -1751,10 +1791,10 @@ void serialize_key( template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, - const InternalSystem::PrintRsp& data, + const WeighingSystem::ReadCardRsp& data, size_t& current_alignment) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(data); @@ -1781,9 +1821,9 @@ eProsima_user_DllExport size_t calculate_serialized_size( template<> eProsima_user_DllExport void serialize( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintRsp& data) + const WeighingSystem::ReadCardRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; eprosima::fastcdr::Cdr::state current_state(scdr); scdr.begin_serialize_type(current_state, @@ -1801,9 +1841,9 @@ eProsima_user_DllExport void serialize( template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, - InternalSystem::PrintRsp& data) + WeighingSystem::ReadCardRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : @@ -1831,9 +1871,9 @@ eProsima_user_DllExport void deserialize( void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::PrintRsp& data) + const WeighingSystem::ReadCardRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(scdr); static_cast(data); @@ -1847,10 +1887,10 @@ void serialize_key( template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, - const InternalSystem::IoCtrlReq& data, + const WeighingSystem::PrintReq& data, size_t& current_alignment) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(data); @@ -1877,9 +1917,9 @@ eProsima_user_DllExport size_t calculate_serialized_size( template<> eProsima_user_DllExport void serialize( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlReq& data) + const WeighingSystem::PrintReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; eprosima::fastcdr::Cdr::state current_state(scdr); scdr.begin_serialize_type(current_state, @@ -1897,9 +1937,9 @@ eProsima_user_DllExport void serialize( template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, - InternalSystem::IoCtrlReq& data) + WeighingSystem::PrintReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : @@ -1927,9 +1967,9 @@ eProsima_user_DllExport void deserialize( void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlReq& data) + const WeighingSystem::PrintReq& data) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(scdr); static_cast(data); @@ -1943,10 +1983,10 @@ void serialize_key( template<> eProsima_user_DllExport size_t calculate_serialized_size( eprosima::fastcdr::CdrSizeCalculator& calculator, - const InternalSystem::IoCtrlRsp& data, + const WeighingSystem::PrintRsp& data, size_t& current_alignment) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(data); @@ -1973,9 +2013,9 @@ eProsima_user_DllExport size_t calculate_serialized_size( template<> eProsima_user_DllExport void serialize( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlRsp& data) + const WeighingSystem::PrintRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; eprosima::fastcdr::Cdr::state current_state(scdr); scdr.begin_serialize_type(current_state, @@ -1993,9 +2033,9 @@ eProsima_user_DllExport void serialize( template<> eProsima_user_DllExport void deserialize( eprosima::fastcdr::Cdr& cdr, - InternalSystem::IoCtrlRsp& data) + WeighingSystem::PrintRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : @@ -2023,9 +2063,9 @@ eProsima_user_DllExport void deserialize( void serialize_key( eprosima::fastcdr::Cdr& scdr, - const InternalSystem::IoCtrlRsp& data) + const WeighingSystem::PrintRsp& data) { - using namespace InternalSystem; + using namespace WeighingSystem; static_cast(scdr); static_cast(data); @@ -2036,9 +2076,967 @@ void serialize_key( } +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const Queue::QueueTrigger& data, + size_t& current_alignment) +{ + using namespace Queue; + + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.message_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.card_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(2), + data.device_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(3), + data.trigger_time(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(4), + data.vehicle_number_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(5), + data.supplier_identity_id_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(6), + data.goods_id_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(7), + data.ship_net_weight_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(8), + data.card_flow_no_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(9), + data.card_type_snapshot(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(10), + data.electronic_tag_snapshot(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueTrigger& data) +{ + using namespace Queue; + + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.message_id() + << eprosima::fastcdr::MemberId(1) << data.card_number() + << eprosima::fastcdr::MemberId(2) << data.device_id() + << eprosima::fastcdr::MemberId(3) << data.trigger_time() + << eprosima::fastcdr::MemberId(4) << data.vehicle_number_snapshot() + << eprosima::fastcdr::MemberId(5) << data.supplier_identity_id_snapshot() + << eprosima::fastcdr::MemberId(6) << data.goods_id_snapshot() + << eprosima::fastcdr::MemberId(7) << data.ship_net_weight_snapshot() + << eprosima::fastcdr::MemberId(8) << data.card_flow_no_snapshot() + << eprosima::fastcdr::MemberId(9) << data.card_type_snapshot() + << eprosima::fastcdr::MemberId(10) << data.electronic_tag_snapshot() +; + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + Queue::QueueTrigger& data) +{ + using namespace Queue; + + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.message_id(); + break; + + case 1: + dcdr >> data.card_number(); + break; + + case 2: + dcdr >> data.device_id(); + break; + + case 3: + dcdr >> data.trigger_time(); + break; + + case 4: + dcdr >> data.vehicle_number_snapshot(); + break; + + case 5: + dcdr >> data.supplier_identity_id_snapshot(); + break; + + case 6: + dcdr >> data.goods_id_snapshot(); + break; + + case 7: + dcdr >> data.ship_net_weight_snapshot(); + break; + + case 8: + dcdr >> data.card_flow_no_snapshot(); + break; + + case 9: + dcdr >> data.card_type_snapshot(); + break; + + case 10: + dcdr >> data.electronic_tag_snapshot(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueTrigger& data) +{ + using namespace Queue; + + static_cast(scdr); + static_cast(data); + scdr << data.message_id(); + + scdr << data.card_number(); + + scdr << data.device_id(); + + scdr << data.trigger_time(); + + scdr << data.vehicle_number_snapshot(); + + scdr << data.supplier_identity_id_snapshot(); + + scdr << data.goods_id_snapshot(); + + scdr << data.ship_net_weight_snapshot(); + + scdr << data.card_flow_no_snapshot(); + + scdr << data.card_type_snapshot(); + + scdr << data.electronic_tag_snapshot(); + +} + + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const Queue::QueueSuccess& data, + size_t& current_alignment) +{ + using namespace Queue; + + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.message_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.card_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(2), + data.device_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(3), + data.result_code(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(4), + data.queue_record_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(5), + data.queue_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(6), + data.sample_machine(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(7), + data.queue_time(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(8), + data.ticket_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(9), + data.sample_code(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(10), + data.vehicle_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(11), + data.vehicle_self_no(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(12), + data.vehicle_type_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(13), + data.supplier_identity_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(14), + data.supplier_identity_name(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(15), + data.supplier_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(16), + data.supplier_name(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(17), + data.goods_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(18), + data.goods_name(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(19), + data.unit_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(20), + data.transport_company_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(21), + data.sample_type(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(22), + data.unloading_point_name(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(23), + data.ship_gross_weight(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(24), + data.ship_tare_weight(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(25), + data.ship_net_weight(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(26), + data.sample_machine_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(27), + data.vehicle_lane(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(28), + data.vehicle_lane_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(29), + data.strategy_desc(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(30), + data.committed_at(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(31), + data.display_text(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(32), + data.print_content(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(33), + data.print_required(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(34), + data.print_count(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(35), + data.voice_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(36), + data.voice_text(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(37), + data.is_reprint(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(38), + data.physical_card_state(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(39), + data.card_write_status(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueSuccess& data) +{ + using namespace Queue; + + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.message_id() + << eprosima::fastcdr::MemberId(1) << data.card_number() + << eprosima::fastcdr::MemberId(2) << data.device_id() + << eprosima::fastcdr::MemberId(3) << data.result_code() + << eprosima::fastcdr::MemberId(4) << data.queue_record_id() + << eprosima::fastcdr::MemberId(5) << data.queue_number() + << eprosima::fastcdr::MemberId(6) << data.sample_machine() + << eprosima::fastcdr::MemberId(7) << data.queue_time() + << eprosima::fastcdr::MemberId(8) << data.ticket_number() + << eprosima::fastcdr::MemberId(9) << data.sample_code() + << eprosima::fastcdr::MemberId(10) << data.vehicle_number() + << eprosima::fastcdr::MemberId(11) << data.vehicle_self_no() + << eprosima::fastcdr::MemberId(12) << data.vehicle_type_id() + << eprosima::fastcdr::MemberId(13) << data.supplier_identity_id() + << eprosima::fastcdr::MemberId(14) << data.supplier_identity_name() + << eprosima::fastcdr::MemberId(15) << data.supplier_id() + << eprosima::fastcdr::MemberId(16) << data.supplier_name() + << eprosima::fastcdr::MemberId(17) << data.goods_id() + << eprosima::fastcdr::MemberId(18) << data.goods_name() + << eprosima::fastcdr::MemberId(19) << data.unit_id() + << eprosima::fastcdr::MemberId(20) << data.transport_company_id() + << eprosima::fastcdr::MemberId(21) << data.sample_type() + << eprosima::fastcdr::MemberId(22) << data.unloading_point_name() + << eprosima::fastcdr::MemberId(23) << data.ship_gross_weight() + << eprosima::fastcdr::MemberId(24) << data.ship_tare_weight() + << eprosima::fastcdr::MemberId(25) << data.ship_net_weight() + << eprosima::fastcdr::MemberId(26) << data.sample_machine_id() + << eprosima::fastcdr::MemberId(27) << data.vehicle_lane() + << eprosima::fastcdr::MemberId(28) << data.vehicle_lane_id() + << eprosima::fastcdr::MemberId(29) << data.strategy_desc() + << eprosima::fastcdr::MemberId(30) << data.committed_at() + << eprosima::fastcdr::MemberId(31) << data.display_text() + << eprosima::fastcdr::MemberId(32) << data.print_content() + << eprosima::fastcdr::MemberId(33) << data.print_required() + << eprosima::fastcdr::MemberId(34) << data.print_count() + << eprosima::fastcdr::MemberId(35) << data.voice_id() + << eprosima::fastcdr::MemberId(36) << data.voice_text() + << eprosima::fastcdr::MemberId(37) << data.is_reprint() + << eprosima::fastcdr::MemberId(38) << data.physical_card_state() + << eprosima::fastcdr::MemberId(39) << data.card_write_status() +; + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + Queue::QueueSuccess& data) +{ + using namespace Queue; + + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.message_id(); + break; + + case 1: + dcdr >> data.card_number(); + break; + + case 2: + dcdr >> data.device_id(); + break; + + case 3: + dcdr >> data.result_code(); + break; + + case 4: + dcdr >> data.queue_record_id(); + break; + + case 5: + dcdr >> data.queue_number(); + break; + + case 6: + dcdr >> data.sample_machine(); + break; + + case 7: + dcdr >> data.queue_time(); + break; + + case 8: + dcdr >> data.ticket_number(); + break; + + case 9: + dcdr >> data.sample_code(); + break; + + case 10: + dcdr >> data.vehicle_number(); + break; + + case 11: + dcdr >> data.vehicle_self_no(); + break; + + case 12: + dcdr >> data.vehicle_type_id(); + break; + + case 13: + dcdr >> data.supplier_identity_id(); + break; + + case 14: + dcdr >> data.supplier_identity_name(); + break; + + case 15: + dcdr >> data.supplier_id(); + break; + + case 16: + dcdr >> data.supplier_name(); + break; + + case 17: + dcdr >> data.goods_id(); + break; + + case 18: + dcdr >> data.goods_name(); + break; + + case 19: + dcdr >> data.unit_id(); + break; + + case 20: + dcdr >> data.transport_company_id(); + break; + + case 21: + dcdr >> data.sample_type(); + break; + + case 22: + dcdr >> data.unloading_point_name(); + break; + + case 23: + dcdr >> data.ship_gross_weight(); + break; + + case 24: + dcdr >> data.ship_tare_weight(); + break; + + case 25: + dcdr >> data.ship_net_weight(); + break; + + case 26: + dcdr >> data.sample_machine_id(); + break; + + case 27: + dcdr >> data.vehicle_lane(); + break; + + case 28: + dcdr >> data.vehicle_lane_id(); + break; + + case 29: + dcdr >> data.strategy_desc(); + break; + + case 30: + dcdr >> data.committed_at(); + break; + + case 31: + dcdr >> data.display_text(); + break; + + case 32: + dcdr >> data.print_content(); + break; + + case 33: + dcdr >> data.print_required(); + break; + + case 34: + dcdr >> data.print_count(); + break; + + case 35: + dcdr >> data.voice_id(); + break; + + case 36: + dcdr >> data.voice_text(); + break; + + case 37: + dcdr >> data.is_reprint(); + break; + + case 38: + dcdr >> data.physical_card_state(); + break; + + case 39: + dcdr >> data.card_write_status(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueSuccess& data) +{ + using namespace Queue; + + static_cast(scdr); + static_cast(data); + scdr << data.message_id(); + + scdr << data.card_number(); + + scdr << data.device_id(); + + scdr << data.result_code(); + + scdr << data.queue_record_id(); + + scdr << data.queue_number(); + + scdr << data.sample_machine(); + + scdr << data.queue_time(); + + scdr << data.ticket_number(); + + scdr << data.sample_code(); + + scdr << data.vehicle_number(); + + scdr << data.vehicle_self_no(); + + scdr << data.vehicle_type_id(); + + scdr << data.supplier_identity_id(); + + scdr << data.supplier_identity_name(); + + scdr << data.supplier_id(); + + scdr << data.supplier_name(); + + scdr << data.goods_id(); + + scdr << data.goods_name(); + + scdr << data.unit_id(); + + scdr << data.transport_company_id(); + + scdr << data.sample_type(); + + scdr << data.unloading_point_name(); + + scdr << data.ship_gross_weight(); + + scdr << data.ship_tare_weight(); + + scdr << data.ship_net_weight(); + + scdr << data.sample_machine_id(); + + scdr << data.vehicle_lane(); + + scdr << data.vehicle_lane_id(); + + scdr << data.strategy_desc(); + + scdr << data.committed_at(); + + scdr << data.display_text(); + + scdr << data.print_content(); + + scdr << data.print_required(); + + scdr << data.print_count(); + + scdr << data.voice_id(); + + scdr << data.voice_text(); + + scdr << data.is_reprint(); + + scdr << data.physical_card_state(); + + scdr << data.card_write_status(); + +} + + +template<> +eProsima_user_DllExport size_t calculate_serialized_size( + eprosima::fastcdr::CdrSizeCalculator& calculator, + const Queue::QueueFailure& data, + size_t& current_alignment) +{ + using namespace Queue; + + static_cast(data); + + eprosima::fastcdr::EncodingAlgorithmFlag previous_encoding = calculator.get_encoding(); + size_t calculated_size {calculator.begin_calculate_type_serialized_size( + eprosima::fastcdr::CdrVersion::XCDRv2 == calculator.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + current_alignment)}; + + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(0), + data.message_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(1), + data.card_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(2), + data.device_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(3), + data.error_code(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(4), + data.failed_step(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(5), + data.message(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(6), + data.vehicle_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(7), + data.queue_record_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(8), + data.queue_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(9), + data.sample_machine(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(10), + data.ticket_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(11), + data.existing_queue_record_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(12), + data.existing_queue_number(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(13), + data.existing_sample_machine(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(14), + data.cache_state(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(15), + data.database_state(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(16), + data.physical_card_state(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(17), + data.retryable(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(18), + data.retry_after_ms(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(19), + data.voice_id(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(20), + data.voice_text(), current_alignment); + + calculated_size += calculator.calculate_member_serialized_size(eprosima::fastcdr::MemberId(21), + data.card_write_status(), current_alignment); + + + calculated_size += calculator.end_calculate_type_serialized_size(previous_encoding, current_alignment); + + return calculated_size; +} + +template<> +eProsima_user_DllExport void serialize( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueFailure& data) +{ + using namespace Queue; + + eprosima::fastcdr::Cdr::state current_state(scdr); + scdr.begin_serialize_type(current_state, + eprosima::fastcdr::CdrVersion::XCDRv2 == scdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR); + + scdr + << eprosima::fastcdr::MemberId(0) << data.message_id() + << eprosima::fastcdr::MemberId(1) << data.card_number() + << eprosima::fastcdr::MemberId(2) << data.device_id() + << eprosima::fastcdr::MemberId(3) << data.error_code() + << eprosima::fastcdr::MemberId(4) << data.failed_step() + << eprosima::fastcdr::MemberId(5) << data.message() + << eprosima::fastcdr::MemberId(6) << data.vehicle_number() + << eprosima::fastcdr::MemberId(7) << data.queue_record_id() + << eprosima::fastcdr::MemberId(8) << data.queue_number() + << eprosima::fastcdr::MemberId(9) << data.sample_machine() + << eprosima::fastcdr::MemberId(10) << data.ticket_number() + << eprosima::fastcdr::MemberId(11) << data.existing_queue_record_id() + << eprosima::fastcdr::MemberId(12) << data.existing_queue_number() + << eprosima::fastcdr::MemberId(13) << data.existing_sample_machine() + << eprosima::fastcdr::MemberId(14) << data.cache_state() + << eprosima::fastcdr::MemberId(15) << data.database_state() + << eprosima::fastcdr::MemberId(16) << data.physical_card_state() + << eprosima::fastcdr::MemberId(17) << data.retryable() + << eprosima::fastcdr::MemberId(18) << data.retry_after_ms() + << eprosima::fastcdr::MemberId(19) << data.voice_id() + << eprosima::fastcdr::MemberId(20) << data.voice_text() + << eprosima::fastcdr::MemberId(21) << data.card_write_status() +; + scdr.end_serialize_type(current_state); +} + +template<> +eProsima_user_DllExport void deserialize( + eprosima::fastcdr::Cdr& cdr, + Queue::QueueFailure& data) +{ + using namespace Queue; + + cdr.deserialize_type(eprosima::fastcdr::CdrVersion::XCDRv2 == cdr.get_cdr_version() ? + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2 : + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR, + [&data](eprosima::fastcdr::Cdr& dcdr, const eprosima::fastcdr::MemberId& mid) -> bool + { + bool ret_value = true; + switch (mid.id) + { + case 0: + dcdr >> data.message_id(); + break; + + case 1: + dcdr >> data.card_number(); + break; + + case 2: + dcdr >> data.device_id(); + break; + + case 3: + dcdr >> data.error_code(); + break; + + case 4: + dcdr >> data.failed_step(); + break; + + case 5: + dcdr >> data.message(); + break; + + case 6: + dcdr >> data.vehicle_number(); + break; + + case 7: + dcdr >> data.queue_record_id(); + break; + + case 8: + dcdr >> data.queue_number(); + break; + + case 9: + dcdr >> data.sample_machine(); + break; + + case 10: + dcdr >> data.ticket_number(); + break; + + case 11: + dcdr >> data.existing_queue_record_id(); + break; + + case 12: + dcdr >> data.existing_queue_number(); + break; + + case 13: + dcdr >> data.existing_sample_machine(); + break; + + case 14: + dcdr >> data.cache_state(); + break; + + case 15: + dcdr >> data.database_state(); + break; + + case 16: + dcdr >> data.physical_card_state(); + break; + + case 17: + dcdr >> data.retryable(); + break; + + case 18: + dcdr >> data.retry_after_ms(); + break; + + case 19: + dcdr >> data.voice_id(); + break; + + case 20: + dcdr >> data.voice_text(); + break; + + case 21: + dcdr >> data.card_write_status(); + break; + + default: + ret_value = false; + break; + } + return ret_value; + }); +} + +void serialize_key( + eprosima::fastcdr::Cdr& scdr, + const Queue::QueueFailure& data) +{ + using namespace Queue; + + static_cast(scdr); + static_cast(data); + scdr << data.message_id(); + + scdr << data.card_number(); + + scdr << data.device_id(); + + scdr << data.error_code(); + + scdr << data.failed_step(); + + scdr << data.message(); + + scdr << data.vehicle_number(); + + scdr << data.queue_record_id(); + + scdr << data.queue_number(); + + scdr << data.sample_machine(); + + scdr << data.ticket_number(); + + scdr << data.existing_queue_record_id(); + + scdr << data.existing_queue_number(); + + scdr << data.existing_sample_machine(); + + scdr << data.cache_state(); + + scdr << data.database_state(); + + scdr << data.physical_card_state(); + + scdr << data.retryable(); + + scdr << data.retry_after_ms(); + + scdr << data.voice_id(); + + scdr << data.voice_text(); + + scdr << data.card_write_status(); + +} + + } // namespace fastcdr } // namespace eprosima -#endif // FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEMCDRAUX_IPP +#endif // FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPECDRAUX_IPP diff --git a/lib/SystemPubSubTypes.cxx b/lib/WeighingDDSTypePubSubTypes.cxx similarity index 82% rename from lib/SystemPubSubTypes.cxx rename to lib/WeighingDDSTypePubSubTypes.cxx index e74e590..d2d295f 100644 --- a/lib/SystemPubSubTypes.cxx +++ b/lib/WeighingDDSTypePubSubTypes.cxx @@ -13,19 +13,19 @@ // limitations under the License. /*! - * @file SystemPubSubTypes.cpp + * @file WeighingDDSTypePubSubTypes.cpp * This header file contains the implementation of the serialization functions. * * This file was generated by the tool fastddsgen. */ -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include #include -#include "SystemCdrAux.hpp" -#include "SystemTypeObjectSupport.hpp" +#include "WeighingDDSTypeCdrAux.hpp" +#include "WeighingDDSTypeTypeObjectSupport.hpp" using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t; using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t; @@ -2398,17 +2398,378 @@ namespace WeighingSystem { register_SummaryUpdate_type_identifier(type_identifiers_); } -} // namespace WeighingSystem + ReadCardReqPubSubType::ReadCardReqPubSubType() + { + set_name("WeighingSystem::ReadCardReq"); + uint32_t type_size = WeighingSystem_ReadCardReq_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = WeighingSystem_ReadCardReq_max_key_cdr_typesize > 16 ? WeighingSystem_ReadCardReq_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); + } + + ReadCardReqPubSubType::~ReadCardReqPubSubType() + { + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } + } + + bool ReadCardReqPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) + { + const ReadCardReq* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; + } + + bool ReadCardReqPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) + { + try + { + // Convert DATA to pointer of your type + ReadCardReq* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; + } + + uint32_t ReadCardReqPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) + { + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } + } + + void* ReadCardReqPubSubType::create_data() + { + return reinterpret_cast(new ReadCardReq()); + } + + void ReadCardReqPubSubType::delete_data( + void* data) + { + delete(reinterpret_cast(data)); + } + + bool ReadCardReqPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + ReadCardReq data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; + } + + bool ReadCardReqPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + const ReadCardReq* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + WeighingSystem_ReadCardReq_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || WeighingSystem_ReadCardReq_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; + } + + void ReadCardReqPubSubType::register_type_object_representation() + { + register_ReadCardReq_type_identifier(type_identifiers_); + } + + ReadCardRspPubSubType::ReadCardRspPubSubType() + { + set_name("WeighingSystem::ReadCardRsp"); + uint32_t type_size = WeighingSystem_ReadCardRsp_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = WeighingSystem_ReadCardRsp_max_key_cdr_typesize > 16 ? WeighingSystem_ReadCardRsp_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); + } + + ReadCardRspPubSubType::~ReadCardRspPubSubType() + { + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } + } + + bool ReadCardRspPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) + { + const ReadCardRsp* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; + } + + bool ReadCardRspPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) + { + try + { + // Convert DATA to pointer of your type + ReadCardRsp* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; + } + + uint32_t ReadCardRspPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) + { + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } + } + + void* ReadCardRspPubSubType::create_data() + { + return reinterpret_cast(new ReadCardRsp()); + } + + void ReadCardRspPubSubType::delete_data( + void* data) + { + delete(reinterpret_cast(data)); + } + + bool ReadCardRspPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + ReadCardRsp data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; + } + + bool ReadCardRspPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + const ReadCardRsp* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + WeighingSystem_ReadCardRsp_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || WeighingSystem_ReadCardRsp_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; + } + + void ReadCardRspPubSubType::register_type_object_representation() + { + register_ReadCardRsp_type_identifier(type_identifiers_); + } -namespace InternalSystem { PrintReqPubSubType::PrintReqPubSubType() { - set_name("InternalSystem::PrintReq"); - uint32_t type_size = InternalSystem_PrintReq_max_cdr_typesize; + set_name("WeighingSystem::PrintReq"); + uint32_t type_size = WeighingSystem_PrintReq_max_cdr_typesize; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; - uint32_t key_length = InternalSystem_PrintReq_max_key_cdr_typesize > 16 ? InternalSystem_PrintReq_max_key_cdr_typesize : 16; + uint32_t key_length = WeighingSystem_PrintReq_max_key_cdr_typesize > 16 ? WeighingSystem_PrintReq_max_key_cdr_typesize : 16; key_buffer_ = reinterpret_cast(malloc(key_length)); memset(key_buffer_, 0, key_length); } @@ -2552,13 +2913,13 @@ namespace InternalSystem { // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), - InternalSystem_PrintReq_max_key_cdr_typesize); + WeighingSystem_PrintReq_max_key_cdr_typesize); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); eprosima::fastcdr::serialize_key(ser, *p_type); - if (force_md5 || InternalSystem_PrintReq_max_key_cdr_typesize > 16) + if (force_md5 || WeighingSystem_PrintReq_max_key_cdr_typesize > 16) { md5_.init(); md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); @@ -2585,12 +2946,12 @@ namespace InternalSystem { PrintRspPubSubType::PrintRspPubSubType() { - set_name("InternalSystem::PrintRsp"); - uint32_t type_size = InternalSystem_PrintRsp_max_cdr_typesize; + set_name("WeighingSystem::PrintRsp"); + uint32_t type_size = WeighingSystem_PrintRsp_max_cdr_typesize; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; - uint32_t key_length = InternalSystem_PrintRsp_max_key_cdr_typesize > 16 ? InternalSystem_PrintRsp_max_key_cdr_typesize : 16; + uint32_t key_length = WeighingSystem_PrintRsp_max_key_cdr_typesize > 16 ? WeighingSystem_PrintRsp_max_key_cdr_typesize : 16; key_buffer_ = reinterpret_cast(malloc(key_length)); memset(key_buffer_, 0, key_length); } @@ -2734,13 +3095,13 @@ namespace InternalSystem { // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), - InternalSystem_PrintRsp_max_key_cdr_typesize); + WeighingSystem_PrintRsp_max_key_cdr_typesize); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); eprosima::fastcdr::serialize_key(ser, *p_type); - if (force_md5 || InternalSystem_PrintRsp_max_key_cdr_typesize > 16) + if (force_md5 || WeighingSystem_PrintRsp_max_key_cdr_typesize > 16) { md5_.init(); md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); @@ -2765,19 +3126,204 @@ namespace InternalSystem { register_PrintRsp_type_identifier(type_identifiers_); } - IoCtrlReqPubSubType::IoCtrlReqPubSubType() +} // namespace WeighingSystem + +namespace Queue { + QueueTriggerPubSubType::QueueTriggerPubSubType() + { + set_name("Queue::QueueTrigger"); + uint32_t type_size = Queue_QueueTrigger_max_cdr_typesize; + type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ + max_serialized_type_size = type_size + 4; /*encapsulation*/ + is_compute_key_provided = false; + uint32_t key_length = Queue_QueueTrigger_max_key_cdr_typesize > 16 ? Queue_QueueTrigger_max_key_cdr_typesize : 16; + key_buffer_ = reinterpret_cast(malloc(key_length)); + memset(key_buffer_, 0, key_length); + } + + QueueTriggerPubSubType::~QueueTriggerPubSubType() + { + if (key_buffer_ != nullptr) + { + free(key_buffer_); + } + } + + bool QueueTriggerPubSubType::serialize( + const void* const data, + SerializedPayload_t& payload, + DataRepresentationId_t data_representation) + { + const QueueTrigger* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2); + payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + ser.set_encoding_flag( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR : + eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2); + + try + { + // Serialize encapsulation + ser.serialize_encapsulation(); + // Serialize the object. + ser << *p_type; + ser.set_dds_cdr_options({0,0}); + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + // Get the serialized length + payload.length = static_cast(ser.get_serialized_data_length()); + return true; + } + + bool QueueTriggerPubSubType::deserialize( + SerializedPayload_t& payload, + void* data) + { + try + { + // Convert DATA to pointer of your type + QueueTrigger* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); + + // Object that deserializes the data. + eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN); + + // Deserialize encapsulation. + deser.read_encapsulation(); + payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE; + + // Deserialize the object. + deser >> *p_type; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return false; + } + + return true; + } + + uint32_t QueueTriggerPubSubType::calculate_serialized_size( + const void* const data, + DataRepresentationId_t data_representation) + { + try + { + eprosima::fastcdr::CdrSizeCalculator calculator( + data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ? + eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); + size_t current_alignment {0}; + return static_cast(calculator.calculate_serialized_size( + *static_cast(data), current_alignment)) + + 4u /*encapsulation*/; + } + catch (eprosima::fastcdr::exception::Exception& /*exception*/) + { + return 0; + } + } + + void* QueueTriggerPubSubType::create_data() + { + return reinterpret_cast(new QueueTrigger()); + } + + void QueueTriggerPubSubType::delete_data( + void* data) + { + delete(reinterpret_cast(data)); + } + + bool QueueTriggerPubSubType::compute_key( + SerializedPayload_t& payload, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + QueueTrigger data; + if (deserialize(payload, static_cast(&data))) + { + return compute_key(static_cast(&data), handle, force_md5); + } + + return false; + } + + bool QueueTriggerPubSubType::compute_key( + const void* const data, + InstanceHandle_t& handle, + bool force_md5) + { + if (!is_compute_key_provided) + { + return false; + } + + const QueueTrigger* p_type = static_cast(data); + + // Object that manages the raw buffer. + eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), + Queue_QueueTrigger_max_key_cdr_typesize); + + // Object that serializes the data. + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); + eprosima::fastcdr::serialize_key(ser, *p_type); + if (force_md5 || Queue_QueueTrigger_max_key_cdr_typesize > 16) + { + md5_.init(); + md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); + md5_.finalize(); + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = md5_.digest[i]; + } + } + else + { + for (uint8_t i = 0; i < 16; ++i) + { + handle.value[i] = key_buffer_[i]; + } + } + return true; + } + + void QueueTriggerPubSubType::register_type_object_representation() + { + register_QueueTrigger_type_identifier(type_identifiers_); + } + + QueueSuccessPubSubType::QueueSuccessPubSubType() { - set_name("InternalSystem::IoCtrlReq"); - uint32_t type_size = InternalSystem_IoCtrlReq_max_cdr_typesize; + set_name("Queue::QueueSuccess"); + uint32_t type_size = Queue_QueueSuccess_max_cdr_typesize; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; - uint32_t key_length = InternalSystem_IoCtrlReq_max_key_cdr_typesize > 16 ? InternalSystem_IoCtrlReq_max_key_cdr_typesize : 16; + uint32_t key_length = Queue_QueueSuccess_max_key_cdr_typesize > 16 ? Queue_QueueSuccess_max_key_cdr_typesize : 16; key_buffer_ = reinterpret_cast(malloc(key_length)); memset(key_buffer_, 0, key_length); } - IoCtrlReqPubSubType::~IoCtrlReqPubSubType() + QueueSuccessPubSubType::~QueueSuccessPubSubType() { if (key_buffer_ != nullptr) { @@ -2785,12 +3331,12 @@ namespace InternalSystem { } } - bool IoCtrlReqPubSubType::serialize( + bool QueueSuccessPubSubType::serialize( const void* const data, SerializedPayload_t& payload, DataRepresentationId_t data_representation) { - const IoCtrlReq* p_type = static_cast(data); + const QueueSuccess* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); @@ -2822,14 +3368,14 @@ namespace InternalSystem { return true; } - bool IoCtrlReqPubSubType::deserialize( + bool QueueSuccessPubSubType::deserialize( SerializedPayload_t& payload, void* data) { try { // Convert DATA to pointer of your type - IoCtrlReq* p_type = static_cast(data); + QueueSuccess* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); @@ -2852,7 +3398,7 @@ namespace InternalSystem { return true; } - uint32_t IoCtrlReqPubSubType::calculate_serialized_size( + uint32_t QueueSuccessPubSubType::calculate_serialized_size( const void* const data, DataRepresentationId_t data_representation) { @@ -2863,7 +3409,7 @@ namespace InternalSystem { eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); size_t current_alignment {0}; return static_cast(calculator.calculate_serialized_size( - *static_cast(data), current_alignment)) + + *static_cast(data), current_alignment)) + 4u /*encapsulation*/; } catch (eprosima::fastcdr::exception::Exception& /*exception*/) @@ -2872,18 +3418,18 @@ namespace InternalSystem { } } - void* IoCtrlReqPubSubType::create_data() + void* QueueSuccessPubSubType::create_data() { - return reinterpret_cast(new IoCtrlReq()); + return reinterpret_cast(new QueueSuccess()); } - void IoCtrlReqPubSubType::delete_data( + void QueueSuccessPubSubType::delete_data( void* data) { - delete(reinterpret_cast(data)); + delete(reinterpret_cast(data)); } - bool IoCtrlReqPubSubType::compute_key( + bool QueueSuccessPubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, bool force_md5) @@ -2893,7 +3439,7 @@ namespace InternalSystem { return false; } - IoCtrlReq data; + QueueSuccess data; if (deserialize(payload, static_cast(&data))) { return compute_key(static_cast(&data), handle, force_md5); @@ -2902,7 +3448,7 @@ namespace InternalSystem { return false; } - bool IoCtrlReqPubSubType::compute_key( + bool QueueSuccessPubSubType::compute_key( const void* const data, InstanceHandle_t& handle, bool force_md5) @@ -2912,17 +3458,17 @@ namespace InternalSystem { return false; } - const IoCtrlReq* p_type = static_cast(data); + const QueueSuccess* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), - InternalSystem_IoCtrlReq_max_key_cdr_typesize); + Queue_QueueSuccess_max_key_cdr_typesize); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); eprosima::fastcdr::serialize_key(ser, *p_type); - if (force_md5 || InternalSystem_IoCtrlReq_max_key_cdr_typesize > 16) + if (force_md5 || Queue_QueueSuccess_max_key_cdr_typesize > 16) { md5_.init(); md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); @@ -2942,24 +3488,24 @@ namespace InternalSystem { return true; } - void IoCtrlReqPubSubType::register_type_object_representation() + void QueueSuccessPubSubType::register_type_object_representation() { - register_IoCtrlReq_type_identifier(type_identifiers_); + register_QueueSuccess_type_identifier(type_identifiers_); } - IoCtrlRspPubSubType::IoCtrlRspPubSubType() + QueueFailurePubSubType::QueueFailurePubSubType() { - set_name("InternalSystem::IoCtrlRsp"); - uint32_t type_size = InternalSystem_IoCtrlRsp_max_cdr_typesize; + set_name("Queue::QueueFailure"); + uint32_t type_size = Queue_QueueFailure_max_cdr_typesize; type_size += static_cast(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */ max_serialized_type_size = type_size + 4; /*encapsulation*/ is_compute_key_provided = false; - uint32_t key_length = InternalSystem_IoCtrlRsp_max_key_cdr_typesize > 16 ? InternalSystem_IoCtrlRsp_max_key_cdr_typesize : 16; + uint32_t key_length = Queue_QueueFailure_max_key_cdr_typesize > 16 ? Queue_QueueFailure_max_key_cdr_typesize : 16; key_buffer_ = reinterpret_cast(malloc(key_length)); memset(key_buffer_, 0, key_length); } - IoCtrlRspPubSubType::~IoCtrlRspPubSubType() + QueueFailurePubSubType::~QueueFailurePubSubType() { if (key_buffer_ != nullptr) { @@ -2967,12 +3513,12 @@ namespace InternalSystem { } } - bool IoCtrlRspPubSubType::serialize( + bool QueueFailurePubSubType::serialize( const void* const data, SerializedPayload_t& payload, DataRepresentationId_t data_representation) { - const IoCtrlRsp* p_type = static_cast(data); + const QueueFailure* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.max_size); @@ -3004,14 +3550,14 @@ namespace InternalSystem { return true; } - bool IoCtrlRspPubSubType::deserialize( + bool QueueFailurePubSubType::deserialize( SerializedPayload_t& payload, void* data) { try { // Convert DATA to pointer of your type - IoCtrlRsp* p_type = static_cast(data); + QueueFailure* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(payload.data), payload.length); @@ -3034,7 +3580,7 @@ namespace InternalSystem { return true; } - uint32_t IoCtrlRspPubSubType::calculate_serialized_size( + uint32_t QueueFailurePubSubType::calculate_serialized_size( const void* const data, DataRepresentationId_t data_representation) { @@ -3045,7 +3591,7 @@ namespace InternalSystem { eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2); size_t current_alignment {0}; return static_cast(calculator.calculate_serialized_size( - *static_cast(data), current_alignment)) + + *static_cast(data), current_alignment)) + 4u /*encapsulation*/; } catch (eprosima::fastcdr::exception::Exception& /*exception*/) @@ -3054,18 +3600,18 @@ namespace InternalSystem { } } - void* IoCtrlRspPubSubType::create_data() + void* QueueFailurePubSubType::create_data() { - return reinterpret_cast(new IoCtrlRsp()); + return reinterpret_cast(new QueueFailure()); } - void IoCtrlRspPubSubType::delete_data( + void QueueFailurePubSubType::delete_data( void* data) { - delete(reinterpret_cast(data)); + delete(reinterpret_cast(data)); } - bool IoCtrlRspPubSubType::compute_key( + bool QueueFailurePubSubType::compute_key( SerializedPayload_t& payload, InstanceHandle_t& handle, bool force_md5) @@ -3075,7 +3621,7 @@ namespace InternalSystem { return false; } - IoCtrlRsp data; + QueueFailure data; if (deserialize(payload, static_cast(&data))) { return compute_key(static_cast(&data), handle, force_md5); @@ -3084,7 +3630,7 @@ namespace InternalSystem { return false; } - bool IoCtrlRspPubSubType::compute_key( + bool QueueFailurePubSubType::compute_key( const void* const data, InstanceHandle_t& handle, bool force_md5) @@ -3094,17 +3640,17 @@ namespace InternalSystem { return false; } - const IoCtrlRsp* p_type = static_cast(data); + const QueueFailure* p_type = static_cast(data); // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast(key_buffer_), - InternalSystem_IoCtrlRsp_max_key_cdr_typesize); + Queue_QueueFailure_max_key_cdr_typesize); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); eprosima::fastcdr::serialize_key(ser, *p_type); - if (force_md5 || InternalSystem_IoCtrlRsp_max_key_cdr_typesize > 16) + if (force_md5 || Queue_QueueFailure_max_key_cdr_typesize > 16) { md5_.init(); md5_.update(key_buffer_, static_cast(ser.get_serialized_data_length())); @@ -3124,13 +3670,13 @@ namespace InternalSystem { return true; } - void IoCtrlRspPubSubType::register_type_object_representation() + void QueueFailurePubSubType::register_type_object_representation() { - register_IoCtrlRsp_type_identifier(type_identifiers_); + register_QueueFailure_type_identifier(type_identifiers_); } -} // namespace InternalSystem +} // namespace Queue // Include auxiliary functions like for serializing/deserializing. -#include "SystemCdrAux.ipp" +#include "WeighingDDSTypeCdrAux.ipp" diff --git a/lib/SystemPubSubTypes.hpp b/lib/WeighingDDSTypePubSubTypes.hpp similarity index 82% rename from lib/SystemPubSubTypes.hpp rename to lib/WeighingDDSTypePubSubTypes.hpp index b0e4835..0c5f8e3 100644 --- a/lib/SystemPubSubTypes.hpp +++ b/lib/WeighingDDSTypePubSubTypes.hpp @@ -13,15 +13,15 @@ // limitations under the License. /*! - * @file SystemPubSubTypes.hpp + * @file WeighingDDSTypePubSubTypes.hpp * This header file contains the declaration of the serialization functions. * * This file was generated by the tool fastddsgen. */ -#ifndef FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_PUBSUBTYPES_HPP -#define FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_PUBSUBTYPES_HPP +#ifndef FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_PUBSUBTYPES_HPP +#define FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_PUBSUBTYPES_HPP #include #include @@ -29,12 +29,12 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" #if !defined(FASTDDS_GEN_API_VER) || (FASTDDS_GEN_API_VER != 3) #error \ - Generated System is not compatible with current installed Fast DDS. Please, regenerate it with fastddsgen. + Generated WeighingDDSType is not compatible with current installed Fast DDS. Please, regenerate it with fastddsgen. #endif // FASTDDS_GEN_API_VER namespace WeighingSystem @@ -42,7 +42,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type ScaleInfo defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class ScaleInfoPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -123,7 +123,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type ScaleCommand defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class ScaleCommandPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -204,7 +204,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type WeightInfoOk defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class WeightInfoOkPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -285,7 +285,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type WeightInfoError defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class WeightInfoErrorPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -366,7 +366,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type BarCommandUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class BarCommandUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -447,7 +447,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type LightsCommandUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class LightsCommandUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -528,7 +528,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type InfraredCommandUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class InfraredCommandUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -609,7 +609,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type BarUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class BarUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -690,7 +690,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type LightsUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class LightsUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -771,7 +771,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type InfraredUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class InfraredUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -852,7 +852,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type LicenseSnapUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class LicenseSnapUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -933,7 +933,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type Voice defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class VoicePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -1014,7 +1014,7 @@ namespace WeighingSystem /*! * @brief This class represents the TopicDataType of the type SummaryUpdate defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class SummaryUpdatePubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -1092,13 +1092,172 @@ namespace WeighingSystem unsigned char* key_buffer_; }; -} // namespace WeighingSystem -namespace InternalSystem -{ + + /*! + * @brief This class represents the TopicDataType of the type ReadCardReq defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ + class ReadCardReqPubSubType : public eprosima::fastdds::dds::TopicDataType + { + public: + + typedef ReadCardReq type; + + eProsima_user_DllExport ReadCardReqPubSubType(); + + eProsima_user_DllExport ~ReadCardReqPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport inline bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + static_cast(memory); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + + private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + + }; + + /*! + * @brief This class represents the TopicDataType of the type ReadCardRsp defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ + class ReadCardRspPubSubType : public eprosima::fastdds::dds::TopicDataType + { + public: + + typedef ReadCardRsp type; + + eProsima_user_DllExport ReadCardRspPubSubType(); + + eProsima_user_DllExport ~ReadCardRspPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport inline bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + static_cast(memory); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + + private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + + }; /*! * @brief This class represents the TopicDataType of the type PrintReq defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class PrintReqPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -1179,7 +1338,7 @@ namespace InternalSystem /*! * @brief This class represents the TopicDataType of the type PrintRsp defined by the user in the IDL file. - * @ingroup System + * @ingroup WeighingDDSType */ class PrintRspPubSubType : public eprosima::fastdds::dds::TopicDataType { @@ -1257,20 +1416,104 @@ namespace InternalSystem unsigned char* key_buffer_; }; +} // namespace WeighingSystem +namespace Queue +{ + + /*! + * @brief This class represents the TopicDataType of the type QueueTrigger defined by the user in the IDL file. + * @ingroup WeighingDDSType + */ + class QueueTriggerPubSubType : public eprosima::fastdds::dds::TopicDataType + { + public: + + typedef QueueTrigger type; + + eProsima_user_DllExport QueueTriggerPubSubType(); + + eProsima_user_DllExport ~QueueTriggerPubSubType() override; + + eProsima_user_DllExport bool serialize( + const void* const data, + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool deserialize( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + void* data) override; + + eProsima_user_DllExport uint32_t calculate_serialized_size( + const void* const data, + eprosima::fastdds::dds::DataRepresentationId_t data_representation) override; + + eProsima_user_DllExport bool compute_key( + eprosima::fastdds::rtps::SerializedPayload_t& payload, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport bool compute_key( + const void* const data, + eprosima::fastdds::rtps::InstanceHandle_t& ihandle, + bool force_md5 = false) override; + + eProsima_user_DllExport void* create_data() override; + + eProsima_user_DllExport void delete_data( + void* data) override; + + //Register TypeObject representation in Fast DDS TypeObjectRegistry + eProsima_user_DllExport void register_type_object_representation() override; + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + eProsima_user_DllExport inline bool is_bounded() const override + { + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED + + #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + eProsima_user_DllExport inline bool is_plain( + eprosima::fastdds::dds::DataRepresentationId_t data_representation) const override + { + static_cast(data_representation); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN + + #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + eProsima_user_DllExport inline bool construct_sample( + void* memory) const override + { + static_cast(memory); + return false; + } + + #endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE + + private: + + eprosima::fastdds::MD5 md5_; + unsigned char* key_buffer_; + + }; /*! - * @brief This class represents the TopicDataType of the type IoCtrlReq defined by the user in the IDL file. - * @ingroup System + * @brief This class represents the TopicDataType of the type QueueSuccess defined by the user in the IDL file. + * @ingroup WeighingDDSType */ - class IoCtrlReqPubSubType : public eprosima::fastdds::dds::TopicDataType + class QueueSuccessPubSubType : public eprosima::fastdds::dds::TopicDataType { public: - typedef IoCtrlReq type; + typedef QueueSuccess type; - eProsima_user_DllExport IoCtrlReqPubSubType(); + eProsima_user_DllExport QueueSuccessPubSubType(); - eProsima_user_DllExport ~IoCtrlReqPubSubType() override; + eProsima_user_DllExport ~QueueSuccessPubSubType() override; eProsima_user_DllExport bool serialize( const void* const data, @@ -1340,18 +1583,18 @@ namespace InternalSystem }; /*! - * @brief This class represents the TopicDataType of the type IoCtrlRsp defined by the user in the IDL file. - * @ingroup System + * @brief This class represents the TopicDataType of the type QueueFailure defined by the user in the IDL file. + * @ingroup WeighingDDSType */ - class IoCtrlRspPubSubType : public eprosima::fastdds::dds::TopicDataType + class QueueFailurePubSubType : public eprosima::fastdds::dds::TopicDataType { public: - typedef IoCtrlRsp type; + typedef QueueFailure type; - eProsima_user_DllExport IoCtrlRspPubSubType(); + eProsima_user_DllExport QueueFailurePubSubType(); - eProsima_user_DllExport ~IoCtrlRspPubSubType() override; + eProsima_user_DllExport ~QueueFailurePubSubType() override; eProsima_user_DllExport bool serialize( const void* const data, @@ -1419,7 +1662,7 @@ namespace InternalSystem unsigned char* key_buffer_; }; -} // namespace InternalSystem +} // namespace Queue -#endif // FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_PUBSUBTYPES_HPP +#endif // FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_PUBSUBTYPES_HPP diff --git a/lib/WeighingDDSTypeTypeObjectSupport.cxx b/lib/WeighingDDSTypeTypeObjectSupport.cxx new file mode 100644 index 0000000..8ed2a89 --- /dev/null +++ b/lib/WeighingDDSTypeTypeObjectSupport.cxx @@ -0,0 +1,5900 @@ +// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/*! + * @file WeighingDDSTypeTypeObjectSupport.cxx + * Source file containing the implementation to register the TypeObject representation of the described types in the IDL file + * + * This file was generated by the tool fastddsgen. + */ + +#include "WeighingDDSTypeTypeObjectSupport.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "WeighingDDSType.hpp" + + +using namespace eprosima::fastdds::dds::xtypes; + +namespace WeighingSystem { +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ScaleInfo_type_identifier( + TypeIdentifierPair& type_ids_ScaleInfo) +{ + + ReturnCode_t return_code_ScaleInfo {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ScaleInfo = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::ScaleInfo", type_ids_ScaleInfo); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ScaleInfo) + { + StructTypeFlag struct_flags_ScaleInfo = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ScaleInfo = "WeighingSystem::ScaleInfo"; + eprosima::fastcdr::optional type_ann_builtin_ScaleInfo; + eprosima::fastcdr::optional ann_custom_ScaleInfo; + CompleteTypeDetail detail_ScaleInfo = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ScaleInfo, ann_custom_ScaleInfo, type_name_ScaleInfo.to_string()); + CompleteStructHeader header_ScaleInfo; + header_ScaleInfo = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ScaleInfo); + CompleteStructMemberSeq member_seq_ScaleInfo; + { + TypeIdentifierPair type_ids_HasVehicle; + ReturnCode_t return_code_HasVehicle {eprosima::fastdds::dds::RETCODE_OK}; + return_code_HasVehicle = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_HasVehicle); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_HasVehicle) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "HasVehicle Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_HasVehicle = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_HasVehicle = 0x00000000; + bool common_HasVehicle_ec {false}; + CommonStructMember common_HasVehicle {TypeObjectUtils::build_common_struct_member(member_id_HasVehicle, member_flags_HasVehicle, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_HasVehicle, common_HasVehicle_ec))}; + if (!common_HasVehicle_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure HasVehicle member TypeIdentifier inconsistent."); + return; + } + MemberName name_HasVehicle = "HasVehicle"; + eprosima::fastcdr::optional member_ann_builtin_HasVehicle; + ann_custom_ScaleInfo.reset(); + CompleteMemberDetail detail_HasVehicle = TypeObjectUtils::build_complete_member_detail(name_HasVehicle, member_ann_builtin_HasVehicle, ann_custom_ScaleInfo); + CompleteStructMember member_HasVehicle = TypeObjectUtils::build_complete_struct_member(common_HasVehicle, detail_HasVehicle); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_HasVehicle); + } + { + TypeIdentifierPair type_ids_WeightOK; + ReturnCode_t return_code_WeightOK {eprosima::fastdds::dds::RETCODE_OK}; + return_code_WeightOK = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_WeightOK); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightOK) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeightOK Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_WeightOK = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_WeightOK = 0x00000001; + bool common_WeightOK_ec {false}; + CommonStructMember common_WeightOK {TypeObjectUtils::build_common_struct_member(member_id_WeightOK, member_flags_WeightOK, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_WeightOK, common_WeightOK_ec))}; + if (!common_WeightOK_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure WeightOK member TypeIdentifier inconsistent."); + return; + } + MemberName name_WeightOK = "WeightOK"; + eprosima::fastcdr::optional member_ann_builtin_WeightOK; + ann_custom_ScaleInfo.reset(); + CompleteMemberDetail detail_WeightOK = TypeObjectUtils::build_complete_member_detail(name_WeightOK, member_ann_builtin_WeightOK, ann_custom_ScaleInfo); + CompleteStructMember member_WeightOK = TypeObjectUtils::build_complete_struct_member(common_WeightOK, detail_WeightOK); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_WeightOK); + } + { + TypeIdentifierPair type_ids_State; + ReturnCode_t return_code_State {eprosima::fastdds::dds::RETCODE_OK}; + return_code_State = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_State); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_State) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "State Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_State = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_State = 0x00000002; + bool common_State_ec {false}; + CommonStructMember common_State {TypeObjectUtils::build_common_struct_member(member_id_State, member_flags_State, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_State, common_State_ec))}; + if (!common_State_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure State member TypeIdentifier inconsistent."); + return; + } + MemberName name_State = "State"; + eprosima::fastcdr::optional member_ann_builtin_State; + ann_custom_ScaleInfo.reset(); + CompleteMemberDetail detail_State = TypeObjectUtils::build_complete_member_detail(name_State, member_ann_builtin_State, ann_custom_ScaleInfo); + CompleteStructMember member_State = TypeObjectUtils::build_complete_struct_member(common_State, detail_State); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_State); + } + { + TypeIdentifierPair type_ids_Value; + ReturnCode_t return_code_Value {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Value = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_Value); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Value) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Value Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_Value = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Value = 0x00000003; + bool common_Value_ec {false}; + CommonStructMember common_Value {TypeObjectUtils::build_common_struct_member(member_id_Value, member_flags_Value, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Value, common_Value_ec))}; + if (!common_Value_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Value member TypeIdentifier inconsistent."); + return; + } + MemberName name_Value = "Value"; + eprosima::fastcdr::optional member_ann_builtin_Value; + ann_custom_ScaleInfo.reset(); + CompleteMemberDetail detail_Value = TypeObjectUtils::build_complete_member_detail(name_Value, member_ann_builtin_Value, ann_custom_ScaleInfo); + CompleteStructMember member_Value = TypeObjectUtils::build_complete_struct_member(common_Value, detail_Value); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_Value); + } + { + TypeIdentifierPair type_ids_StableValue; + ReturnCode_t return_code_StableValue {eprosima::fastdds::dds::RETCODE_OK}; + return_code_StableValue = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_StableValue); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_StableValue) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "StableValue Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_StableValue = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_StableValue = 0x00000004; + bool common_StableValue_ec {false}; + CommonStructMember common_StableValue {TypeObjectUtils::build_common_struct_member(member_id_StableValue, member_flags_StableValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_StableValue, common_StableValue_ec))}; + if (!common_StableValue_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure StableValue member TypeIdentifier inconsistent."); + return; + } + MemberName name_StableValue = "StableValue"; + eprosima::fastcdr::optional member_ann_builtin_StableValue; + ann_custom_ScaleInfo.reset(); + CompleteMemberDetail detail_StableValue = TypeObjectUtils::build_complete_member_detail(name_StableValue, member_ann_builtin_StableValue, ann_custom_ScaleInfo); + CompleteStructMember member_StableValue = TypeObjectUtils::build_complete_struct_member(common_StableValue, detail_StableValue); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleInfo, member_StableValue); + } + CompleteStructType struct_type_ScaleInfo = TypeObjectUtils::build_complete_struct_type(struct_flags_ScaleInfo, header_ScaleInfo, member_seq_ScaleInfo); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ScaleInfo, type_name_ScaleInfo.to_string(), type_ids_ScaleInfo)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::ScaleInfo already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ScaleCommand_type_identifier( + TypeIdentifierPair& type_ids_ScaleCommand) +{ + + ReturnCode_t return_code_ScaleCommand {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ScaleCommand = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::ScaleCommand", type_ids_ScaleCommand); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ScaleCommand) + { + StructTypeFlag struct_flags_ScaleCommand = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ScaleCommand = "WeighingSystem::ScaleCommand"; + eprosima::fastcdr::optional type_ann_builtin_ScaleCommand; + eprosima::fastcdr::optional ann_custom_ScaleCommand; + CompleteTypeDetail detail_ScaleCommand = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ScaleCommand, ann_custom_ScaleCommand, type_name_ScaleCommand.to_string()); + CompleteStructHeader header_ScaleCommand; + header_ScaleCommand = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ScaleCommand); + CompleteStructMemberSeq member_seq_ScaleCommand; + { + TypeIdentifierPair type_ids_Enable; + ReturnCode_t return_code_Enable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Enable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_Enable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Enable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Enable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_Enable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Enable = 0x00000000; + bool common_Enable_ec {false}; + CommonStructMember common_Enable {TypeObjectUtils::build_common_struct_member(member_id_Enable, member_flags_Enable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Enable, common_Enable_ec))}; + if (!common_Enable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Enable member TypeIdentifier inconsistent."); + return; + } + MemberName name_Enable = "Enable"; + eprosima::fastcdr::optional member_ann_builtin_Enable; + ann_custom_ScaleCommand.reset(); + CompleteMemberDetail detail_Enable = TypeObjectUtils::build_complete_member_detail(name_Enable, member_ann_builtin_Enable, ann_custom_ScaleCommand); + CompleteStructMember member_Enable = TypeObjectUtils::build_complete_struct_member(common_Enable, detail_Enable); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleCommand, member_Enable); + } + { + TypeIdentifierPair type_ids_ResetZero; + ReturnCode_t return_code_ResetZero {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ResetZero = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_ResetZero); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ResetZero) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ResetZero Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_ResetZero = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ResetZero = 0x00000001; + bool common_ResetZero_ec {false}; + CommonStructMember common_ResetZero {TypeObjectUtils::build_common_struct_member(member_id_ResetZero, member_flags_ResetZero, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ResetZero, common_ResetZero_ec))}; + if (!common_ResetZero_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ResetZero member TypeIdentifier inconsistent."); + return; + } + MemberName name_ResetZero = "ResetZero"; + eprosima::fastcdr::optional member_ann_builtin_ResetZero; + ann_custom_ScaleCommand.reset(); + CompleteMemberDetail detail_ResetZero = TypeObjectUtils::build_complete_member_detail(name_ResetZero, member_ann_builtin_ResetZero, ann_custom_ScaleCommand); + CompleteStructMember member_ResetZero = TypeObjectUtils::build_complete_struct_member(common_ResetZero, detail_ResetZero); + TypeObjectUtils::add_complete_struct_member(member_seq_ScaleCommand, member_ResetZero); + } + CompleteStructType struct_type_ScaleCommand = TypeObjectUtils::build_complete_struct_type(struct_flags_ScaleCommand, header_ScaleCommand, member_seq_ScaleCommand); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ScaleCommand, type_name_ScaleCommand.to_string(), type_ids_ScaleCommand)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::ScaleCommand already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_WeightInfoOk_type_identifier( + TypeIdentifierPair& type_ids_WeightInfoOk) +{ + + ReturnCode_t return_code_WeightInfoOk {eprosima::fastdds::dds::RETCODE_OK}; + return_code_WeightInfoOk = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::WeightInfoOk", type_ids_WeightInfoOk); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightInfoOk) + { + StructTypeFlag struct_flags_WeightInfoOk = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_WeightInfoOk = "WeighingSystem::WeightInfoOk"; + eprosima::fastcdr::optional type_ann_builtin_WeightInfoOk; + eprosima::fastcdr::optional ann_custom_WeightInfoOk; + CompleteTypeDetail detail_WeightInfoOk = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_WeightInfoOk, ann_custom_WeightInfoOk, type_name_WeightInfoOk.to_string()); + CompleteStructHeader header_WeightInfoOk; + header_WeightInfoOk = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_WeightInfoOk); + CompleteStructMemberSeq member_seq_WeightInfoOk; + { + TypeIdentifierPair type_ids_GrossDeviceID; + ReturnCode_t return_code_GrossDeviceID {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossDeviceID = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_GrossDeviceID); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceID) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "GrossDeviceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_GrossDeviceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossDeviceID = 0x00000000; + bool common_GrossDeviceID_ec {false}; + CommonStructMember common_GrossDeviceID {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceID, member_flags_GrossDeviceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceID, common_GrossDeviceID_ec))}; + if (!common_GrossDeviceID_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceID member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossDeviceID = "GrossDeviceID"; + eprosima::fastcdr::optional member_ann_builtin_GrossDeviceID; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossDeviceID = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceID, member_ann_builtin_GrossDeviceID, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossDeviceID = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceID, detail_GrossDeviceID); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceID); + } + { + TypeIdentifierPair type_ids_GrossDeviceName; + ReturnCode_t return_code_GrossDeviceName {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossDeviceName = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_GrossDeviceName); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceName) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_GrossDeviceName)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_GrossDeviceName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossDeviceName = 0x00000001; + bool common_GrossDeviceName_ec {false}; + CommonStructMember common_GrossDeviceName {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceName, member_flags_GrossDeviceName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceName, common_GrossDeviceName_ec))}; + if (!common_GrossDeviceName_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceName member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossDeviceName = "GrossDeviceName"; + eprosima::fastcdr::optional member_ann_builtin_GrossDeviceName; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossDeviceName = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceName, member_ann_builtin_GrossDeviceName, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossDeviceName = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceName, detail_GrossDeviceName); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceName); + } + { + TypeIdentifierPair type_ids_GrossDeviceType; + ReturnCode_t return_code_GrossDeviceType {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossDeviceType = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_GrossDeviceType); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossDeviceType) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_GrossDeviceType)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_GrossDeviceType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossDeviceType = 0x00000002; + bool common_GrossDeviceType_ec {false}; + CommonStructMember common_GrossDeviceType {TypeObjectUtils::build_common_struct_member(member_id_GrossDeviceType, member_flags_GrossDeviceType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossDeviceType, common_GrossDeviceType_ec))}; + if (!common_GrossDeviceType_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossDeviceType member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossDeviceType = "GrossDeviceType"; + eprosima::fastcdr::optional member_ann_builtin_GrossDeviceType; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossDeviceType = TypeObjectUtils::build_complete_member_detail(name_GrossDeviceType, member_ann_builtin_GrossDeviceType, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossDeviceType = TypeObjectUtils::build_complete_struct_member(common_GrossDeviceType, detail_GrossDeviceType); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossDeviceType); + } + { + TypeIdentifierPair type_ids_TareDeviceID; + ReturnCode_t return_code_TareDeviceID {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TareDeviceID = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_TareDeviceID); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceID) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "TareDeviceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_TareDeviceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TareDeviceID = 0x00000003; + bool common_TareDeviceID_ec {false}; + CommonStructMember common_TareDeviceID {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceID, member_flags_TareDeviceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceID, common_TareDeviceID_ec))}; + if (!common_TareDeviceID_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceID member TypeIdentifier inconsistent."); + return; + } + MemberName name_TareDeviceID = "TareDeviceID"; + eprosima::fastcdr::optional member_ann_builtin_TareDeviceID; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TareDeviceID = TypeObjectUtils::build_complete_member_detail(name_TareDeviceID, member_ann_builtin_TareDeviceID, ann_custom_WeightInfoOk); + CompleteStructMember member_TareDeviceID = TypeObjectUtils::build_complete_struct_member(common_TareDeviceID, detail_TareDeviceID); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceID); + } + { + TypeIdentifierPair type_ids_TareDeviceName; + ReturnCode_t return_code_TareDeviceName {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TareDeviceName = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TareDeviceName); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceName) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TareDeviceName)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TareDeviceName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TareDeviceName = 0x00000004; + bool common_TareDeviceName_ec {false}; + CommonStructMember common_TareDeviceName {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceName, member_flags_TareDeviceName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceName, common_TareDeviceName_ec))}; + if (!common_TareDeviceName_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceName member TypeIdentifier inconsistent."); + return; + } + MemberName name_TareDeviceName = "TareDeviceName"; + eprosima::fastcdr::optional member_ann_builtin_TareDeviceName; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TareDeviceName = TypeObjectUtils::build_complete_member_detail(name_TareDeviceName, member_ann_builtin_TareDeviceName, ann_custom_WeightInfoOk); + CompleteStructMember member_TareDeviceName = TypeObjectUtils::build_complete_struct_member(common_TareDeviceName, detail_TareDeviceName); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceName); + } + { + TypeIdentifierPair type_ids_TareDeviceType; + ReturnCode_t return_code_TareDeviceType {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TareDeviceType = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TareDeviceType); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareDeviceType) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TareDeviceType)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TareDeviceType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TareDeviceType = 0x00000005; + bool common_TareDeviceType_ec {false}; + CommonStructMember common_TareDeviceType {TypeObjectUtils::build_common_struct_member(member_id_TareDeviceType, member_flags_TareDeviceType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareDeviceType, common_TareDeviceType_ec))}; + if (!common_TareDeviceType_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareDeviceType member TypeIdentifier inconsistent."); + return; + } + MemberName name_TareDeviceType = "TareDeviceType"; + eprosima::fastcdr::optional member_ann_builtin_TareDeviceType; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TareDeviceType = TypeObjectUtils::build_complete_member_detail(name_TareDeviceType, member_ann_builtin_TareDeviceType, ann_custom_WeightInfoOk); + CompleteStructMember member_TareDeviceType = TypeObjectUtils::build_complete_struct_member(common_TareDeviceType, detail_TareDeviceType); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareDeviceType); + } + { + TypeIdentifierPair type_ids_EnterpriseName; + ReturnCode_t return_code_EnterpriseName {eprosima::fastdds::dds::RETCODE_OK}; + return_code_EnterpriseName = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_EnterpriseName); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_EnterpriseName) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_EnterpriseName)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_EnterpriseName = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_EnterpriseName = 0x00000006; + bool common_EnterpriseName_ec {false}; + CommonStructMember common_EnterpriseName {TypeObjectUtils::build_common_struct_member(member_id_EnterpriseName, member_flags_EnterpriseName, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_EnterpriseName, common_EnterpriseName_ec))}; + if (!common_EnterpriseName_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure EnterpriseName member TypeIdentifier inconsistent."); + return; + } + MemberName name_EnterpriseName = "EnterpriseName"; + eprosima::fastcdr::optional member_ann_builtin_EnterpriseName; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_EnterpriseName = TypeObjectUtils::build_complete_member_detail(name_EnterpriseName, member_ann_builtin_EnterpriseName, ann_custom_WeightInfoOk); + CompleteStructMember member_EnterpriseName = TypeObjectUtils::build_complete_struct_member(common_EnterpriseName, detail_EnterpriseName); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_EnterpriseName); + } + { + TypeIdentifierPair type_ids_BillNumber; + ReturnCode_t return_code_BillNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BillNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_BillNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BillNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_BillNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_BillNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BillNumber = 0x00000007; + bool common_BillNumber_ec {false}; + CommonStructMember common_BillNumber {TypeObjectUtils::build_common_struct_member(member_id_BillNumber, member_flags_BillNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BillNumber, common_BillNumber_ec))}; + if (!common_BillNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BillNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_BillNumber = "BillNumber"; + eprosima::fastcdr::optional member_ann_builtin_BillNumber; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_BillNumber = TypeObjectUtils::build_complete_member_detail(name_BillNumber, member_ann_builtin_BillNumber, ann_custom_WeightInfoOk); + CompleteStructMember member_BillNumber = TypeObjectUtils::build_complete_struct_member(common_BillNumber, detail_BillNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_BillNumber); + } + { + TypeIdentifierPair type_ids_CarNumber; + ReturnCode_t return_code_CarNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_CarNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_CarNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_CarNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_CarNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_CarNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_CarNumber = 0x00000008; + bool common_CarNumber_ec {false}; + CommonStructMember common_CarNumber {TypeObjectUtils::build_common_struct_member(member_id_CarNumber, member_flags_CarNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_CarNumber, common_CarNumber_ec))}; + if (!common_CarNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure CarNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_CarNumber = "CarNumber"; + eprosima::fastcdr::optional member_ann_builtin_CarNumber; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_CarNumber = TypeObjectUtils::build_complete_member_detail(name_CarNumber, member_ann_builtin_CarNumber, ann_custom_WeightInfoOk); + CompleteStructMember member_CarNumber = TypeObjectUtils::build_complete_struct_member(common_CarNumber, detail_CarNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_CarNumber); + } + { + TypeIdentifierPair type_ids_Supplier; + ReturnCode_t return_code_Supplier {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Supplier = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_Supplier); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Supplier) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_Supplier)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_Supplier = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Supplier = 0x00000009; + bool common_Supplier_ec {false}; + CommonStructMember common_Supplier {TypeObjectUtils::build_common_struct_member(member_id_Supplier, member_flags_Supplier, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Supplier, common_Supplier_ec))}; + if (!common_Supplier_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Supplier member TypeIdentifier inconsistent."); + return; + } + MemberName name_Supplier = "Supplier"; + eprosima::fastcdr::optional member_ann_builtin_Supplier; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_Supplier = TypeObjectUtils::build_complete_member_detail(name_Supplier, member_ann_builtin_Supplier, ann_custom_WeightInfoOk); + CompleteStructMember member_Supplier = TypeObjectUtils::build_complete_struct_member(common_Supplier, detail_Supplier); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Supplier); + } + { + TypeIdentifierPair type_ids_GoodsType; + ReturnCode_t return_code_GoodsType {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GoodsType = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_GoodsType); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GoodsType) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_GoodsType)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_GoodsType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GoodsType = 0x0000000a; + bool common_GoodsType_ec {false}; + CommonStructMember common_GoodsType {TypeObjectUtils::build_common_struct_member(member_id_GoodsType, member_flags_GoodsType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GoodsType, common_GoodsType_ec))}; + if (!common_GoodsType_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GoodsType member TypeIdentifier inconsistent."); + return; + } + MemberName name_GoodsType = "GoodsType"; + eprosima::fastcdr::optional member_ann_builtin_GoodsType; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GoodsType = TypeObjectUtils::build_complete_member_detail(name_GoodsType, member_ann_builtin_GoodsType, ann_custom_WeightInfoOk); + CompleteStructMember member_GoodsType = TypeObjectUtils::build_complete_struct_member(common_GoodsType, detail_GoodsType); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GoodsType); + } + { + TypeIdentifierPair type_ids_GrossWeight; + ReturnCode_t return_code_GrossWeight {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossWeight = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_GrossWeight); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossWeight) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "GrossWeight Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_GrossWeight = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossWeight = 0x0000000b; + bool common_GrossWeight_ec {false}; + CommonStructMember common_GrossWeight {TypeObjectUtils::build_common_struct_member(member_id_GrossWeight, member_flags_GrossWeight, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossWeight, common_GrossWeight_ec))}; + if (!common_GrossWeight_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossWeight member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossWeight = "GrossWeight"; + eprosima::fastcdr::optional member_ann_builtin_GrossWeight; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossWeight = TypeObjectUtils::build_complete_member_detail(name_GrossWeight, member_ann_builtin_GrossWeight, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossWeight = TypeObjectUtils::build_complete_struct_member(common_GrossWeight, detail_GrossWeight); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossWeight); + } + { + TypeIdentifierPair type_ids_GrossTime; + ReturnCode_t return_code_GrossTime {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossTime = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_GrossTime); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossTime) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_GrossTime)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_GrossTime = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossTime = 0x0000000c; + bool common_GrossTime_ec {false}; + CommonStructMember common_GrossTime {TypeObjectUtils::build_common_struct_member(member_id_GrossTime, member_flags_GrossTime, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossTime, common_GrossTime_ec))}; + if (!common_GrossTime_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossTime member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossTime = "GrossTime"; + eprosima::fastcdr::optional member_ann_builtin_GrossTime; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossTime = TypeObjectUtils::build_complete_member_detail(name_GrossTime, member_ann_builtin_GrossTime, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossTime = TypeObjectUtils::build_complete_struct_member(common_GrossTime, detail_GrossTime); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossTime); + } + { + TypeIdentifierPair type_ids_GrossOperater; + ReturnCode_t return_code_GrossOperater {eprosima::fastdds::dds::RETCODE_OK}; + return_code_GrossOperater = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_GrossOperater); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_GrossOperater) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_GrossOperater)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_GrossOperater = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_GrossOperater = 0x0000000d; + bool common_GrossOperater_ec {false}; + CommonStructMember common_GrossOperater {TypeObjectUtils::build_common_struct_member(member_id_GrossOperater, member_flags_GrossOperater, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_GrossOperater, common_GrossOperater_ec))}; + if (!common_GrossOperater_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure GrossOperater member TypeIdentifier inconsistent."); + return; + } + MemberName name_GrossOperater = "GrossOperater"; + eprosima::fastcdr::optional member_ann_builtin_GrossOperater; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_GrossOperater = TypeObjectUtils::build_complete_member_detail(name_GrossOperater, member_ann_builtin_GrossOperater, ann_custom_WeightInfoOk); + CompleteStructMember member_GrossOperater = TypeObjectUtils::build_complete_struct_member(common_GrossOperater, detail_GrossOperater); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_GrossOperater); + } + { + TypeIdentifierPair type_ids_Tare; + ReturnCode_t return_code_Tare {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Tare = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_Tare); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Tare) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Tare Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_Tare = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Tare = 0x0000000e; + bool common_Tare_ec {false}; + CommonStructMember common_Tare {TypeObjectUtils::build_common_struct_member(member_id_Tare, member_flags_Tare, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Tare, common_Tare_ec))}; + if (!common_Tare_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Tare member TypeIdentifier inconsistent."); + return; + } + MemberName name_Tare = "Tare"; + eprosima::fastcdr::optional member_ann_builtin_Tare; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_Tare = TypeObjectUtils::build_complete_member_detail(name_Tare, member_ann_builtin_Tare, ann_custom_WeightInfoOk); + CompleteStructMember member_Tare = TypeObjectUtils::build_complete_struct_member(common_Tare, detail_Tare); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Tare); + } + { + TypeIdentifierPair type_ids_TareTime; + ReturnCode_t return_code_TareTime {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TareTime = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TareTime); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareTime) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TareTime)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TareTime = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TareTime = 0x0000000f; + bool common_TareTime_ec {false}; + CommonStructMember common_TareTime {TypeObjectUtils::build_common_struct_member(member_id_TareTime, member_flags_TareTime, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareTime, common_TareTime_ec))}; + if (!common_TareTime_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareTime member TypeIdentifier inconsistent."); + return; + } + MemberName name_TareTime = "TareTime"; + eprosima::fastcdr::optional member_ann_builtin_TareTime; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TareTime = TypeObjectUtils::build_complete_member_detail(name_TareTime, member_ann_builtin_TareTime, ann_custom_WeightInfoOk); + CompleteStructMember member_TareTime = TypeObjectUtils::build_complete_struct_member(common_TareTime, detail_TareTime); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareTime); + } + { + TypeIdentifierPair type_ids_TareOperater; + ReturnCode_t return_code_TareOperater {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TareOperater = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TareOperater); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TareOperater) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TareOperater)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TareOperater = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TareOperater = 0x00000010; + bool common_TareOperater_ec {false}; + CommonStructMember common_TareOperater {TypeObjectUtils::build_common_struct_member(member_id_TareOperater, member_flags_TareOperater, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TareOperater, common_TareOperater_ec))}; + if (!common_TareOperater_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TareOperater member TypeIdentifier inconsistent."); + return; + } + MemberName name_TareOperater = "TareOperater"; + eprosima::fastcdr::optional member_ann_builtin_TareOperater; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TareOperater = TypeObjectUtils::build_complete_member_detail(name_TareOperater, member_ann_builtin_TareOperater, ann_custom_WeightInfoOk); + CompleteStructMember member_TareOperater = TypeObjectUtils::build_complete_struct_member(common_TareOperater, detail_TareOperater); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TareOperater); + } + { + TypeIdentifierPair type_ids_Suttle; + ReturnCode_t return_code_Suttle {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Suttle = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_Suttle); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Suttle) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Suttle Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_Suttle = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Suttle = 0x00000011; + bool common_Suttle_ec {false}; + CommonStructMember common_Suttle {TypeObjectUtils::build_common_struct_member(member_id_Suttle, member_flags_Suttle, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Suttle, common_Suttle_ec))}; + if (!common_Suttle_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Suttle member TypeIdentifier inconsistent."); + return; + } + MemberName name_Suttle = "Suttle"; + eprosima::fastcdr::optional member_ann_builtin_Suttle; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_Suttle = TypeObjectUtils::build_complete_member_detail(name_Suttle, member_ann_builtin_Suttle, ann_custom_WeightInfoOk); + CompleteStructMember member_Suttle = TypeObjectUtils::build_complete_struct_member(common_Suttle, detail_Suttle); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Suttle); + } + { + TypeIdentifierPair type_ids_duduction1; + ReturnCode_t return_code_duduction1 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_duduction1 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_duduction1); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction1) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "duduction1 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_duduction1 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_duduction1 = 0x00000012; + bool common_duduction1_ec {false}; + CommonStructMember common_duduction1 {TypeObjectUtils::build_common_struct_member(member_id_duduction1, member_flags_duduction1, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction1, common_duduction1_ec))}; + if (!common_duduction1_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction1 member TypeIdentifier inconsistent."); + return; + } + MemberName name_duduction1 = "duduction1"; + eprosima::fastcdr::optional member_ann_builtin_duduction1; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_duduction1 = TypeObjectUtils::build_complete_member_detail(name_duduction1, member_ann_builtin_duduction1, ann_custom_WeightInfoOk); + CompleteStructMember member_duduction1 = TypeObjectUtils::build_complete_struct_member(common_duduction1, detail_duduction1); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction1); + } + { + TypeIdentifierPair type_ids_duduction2; + ReturnCode_t return_code_duduction2 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_duduction2 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_duduction2); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction2) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "duduction2 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_duduction2 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_duduction2 = 0x00000013; + bool common_duduction2_ec {false}; + CommonStructMember common_duduction2 {TypeObjectUtils::build_common_struct_member(member_id_duduction2, member_flags_duduction2, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction2, common_duduction2_ec))}; + if (!common_duduction2_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction2 member TypeIdentifier inconsistent."); + return; + } + MemberName name_duduction2 = "duduction2"; + eprosima::fastcdr::optional member_ann_builtin_duduction2; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_duduction2 = TypeObjectUtils::build_complete_member_detail(name_duduction2, member_ann_builtin_duduction2, ann_custom_WeightInfoOk); + CompleteStructMember member_duduction2 = TypeObjectUtils::build_complete_struct_member(common_duduction2, detail_duduction2); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction2); + } + { + TypeIdentifierPair type_ids_duduction3; + ReturnCode_t return_code_duduction3 {eprosima::fastdds::dds::RETCODE_OK}; + return_code_duduction3 = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_duduction3); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_duduction3) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "duduction3 Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_duduction3 = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_duduction3 = 0x00000014; + bool common_duduction3_ec {false}; + CommonStructMember common_duduction3 {TypeObjectUtils::build_common_struct_member(member_id_duduction3, member_flags_duduction3, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_duduction3, common_duduction3_ec))}; + if (!common_duduction3_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure duduction3 member TypeIdentifier inconsistent."); + return; + } + MemberName name_duduction3 = "duduction3"; + eprosima::fastcdr::optional member_ann_builtin_duduction3; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_duduction3 = TypeObjectUtils::build_complete_member_detail(name_duduction3, member_ann_builtin_duduction3, ann_custom_WeightInfoOk); + CompleteStructMember member_duduction3 = TypeObjectUtils::build_complete_struct_member(common_duduction3, detail_duduction3); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_duduction3); + } + { + TypeIdentifierPair type_ids_INCoalYard; + ReturnCode_t return_code_INCoalYard {eprosima::fastdds::dds::RETCODE_OK}; + return_code_INCoalYard = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_INCoalYard); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_INCoalYard) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_INCoalYard)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_INCoalYard = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_INCoalYard = 0x00000015; + bool common_INCoalYard_ec {false}; + CommonStructMember common_INCoalYard {TypeObjectUtils::build_common_struct_member(member_id_INCoalYard, member_flags_INCoalYard, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_INCoalYard, common_INCoalYard_ec))}; + if (!common_INCoalYard_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure INCoalYard member TypeIdentifier inconsistent."); + return; + } + MemberName name_INCoalYard = "INCoalYard"; + eprosima::fastcdr::optional member_ann_builtin_INCoalYard; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_INCoalYard = TypeObjectUtils::build_complete_member_detail(name_INCoalYard, member_ann_builtin_INCoalYard, ann_custom_WeightInfoOk); + CompleteStructMember member_INCoalYard = TypeObjectUtils::build_complete_struct_member(common_INCoalYard, detail_INCoalYard); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_INCoalYard); + } + { + TypeIdentifierPair type_ids_OutCoalYard; + ReturnCode_t return_code_OutCoalYard {eprosima::fastdds::dds::RETCODE_OK}; + return_code_OutCoalYard = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_OutCoalYard); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_OutCoalYard) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_OutCoalYard)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_OutCoalYard = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_OutCoalYard = 0x00000016; + bool common_OutCoalYard_ec {false}; + CommonStructMember common_OutCoalYard {TypeObjectUtils::build_common_struct_member(member_id_OutCoalYard, member_flags_OutCoalYard, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_OutCoalYard, common_OutCoalYard_ec))}; + if (!common_OutCoalYard_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure OutCoalYard member TypeIdentifier inconsistent."); + return; + } + MemberName name_OutCoalYard = "OutCoalYard"; + eprosima::fastcdr::optional member_ann_builtin_OutCoalYard; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_OutCoalYard = TypeObjectUtils::build_complete_member_detail(name_OutCoalYard, member_ann_builtin_OutCoalYard, ann_custom_WeightInfoOk); + CompleteStructMember member_OutCoalYard = TypeObjectUtils::build_complete_struct_member(common_OutCoalYard, detail_OutCoalYard); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_OutCoalYard); + } + { + TypeIdentifierPair type_ids_BatchNumber; + ReturnCode_t return_code_BatchNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BatchNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_BatchNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BatchNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_BatchNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_BatchNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BatchNumber = 0x00000017; + bool common_BatchNumber_ec {false}; + CommonStructMember common_BatchNumber {TypeObjectUtils::build_common_struct_member(member_id_BatchNumber, member_flags_BatchNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BatchNumber, common_BatchNumber_ec))}; + if (!common_BatchNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BatchNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_BatchNumber = "BatchNumber"; + eprosima::fastcdr::optional member_ann_builtin_BatchNumber; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_BatchNumber = TypeObjectUtils::build_complete_member_detail(name_BatchNumber, member_ann_builtin_BatchNumber, ann_custom_WeightInfoOk); + CompleteStructMember member_BatchNumber = TypeObjectUtils::build_complete_struct_member(common_BatchNumber, detail_BatchNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_BatchNumber); + } + { + TypeIdentifierPair type_ids_Warning; + ReturnCode_t return_code_Warning {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Warning = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_Warning); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Warning) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_Warning)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_Warning = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Warning = 0x00000018; + bool common_Warning_ec {false}; + CommonStructMember common_Warning {TypeObjectUtils::build_common_struct_member(member_id_Warning, member_flags_Warning, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Warning, common_Warning_ec))}; + if (!common_Warning_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Warning member TypeIdentifier inconsistent."); + return; + } + MemberName name_Warning = "Warning"; + eprosima::fastcdr::optional member_ann_builtin_Warning; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_Warning = TypeObjectUtils::build_complete_member_detail(name_Warning, member_ann_builtin_Warning, ann_custom_WeightInfoOk); + CompleteStructMember member_Warning = TypeObjectUtils::build_complete_struct_member(common_Warning, detail_Warning); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Warning); + } + { + TypeIdentifierPair type_ids_Tips; + ReturnCode_t return_code_Tips {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Tips = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_Tips); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Tips) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_Tips)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_Tips = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Tips = 0x00000019; + bool common_Tips_ec {false}; + CommonStructMember common_Tips {TypeObjectUtils::build_common_struct_member(member_id_Tips, member_flags_Tips, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Tips, common_Tips_ec))}; + if (!common_Tips_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Tips member TypeIdentifier inconsistent."); + return; + } + MemberName name_Tips = "Tips"; + eprosima::fastcdr::optional member_ann_builtin_Tips; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_Tips = TypeObjectUtils::build_complete_member_detail(name_Tips, member_ann_builtin_Tips, ann_custom_WeightInfoOk); + CompleteStructMember member_Tips = TypeObjectUtils::build_complete_struct_member(common_Tips, detail_Tips); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_Tips); + } + { + TypeIdentifierPair type_ids_TicketType; + ReturnCode_t return_code_TicketType {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TicketType = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TicketType); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TicketType) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TicketType)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TicketType = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TicketType = 0x0000001a; + bool common_TicketType_ec {false}; + CommonStructMember common_TicketType {TypeObjectUtils::build_common_struct_member(member_id_TicketType, member_flags_TicketType, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TicketType, common_TicketType_ec))}; + if (!common_TicketType_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TicketType member TypeIdentifier inconsistent."); + return; + } + MemberName name_TicketType = "TicketType"; + eprosima::fastcdr::optional member_ann_builtin_TicketType; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TicketType = TypeObjectUtils::build_complete_member_detail(name_TicketType, member_ann_builtin_TicketType, ann_custom_WeightInfoOk); + CompleteStructMember member_TicketType = TypeObjectUtils::build_complete_struct_member(common_TicketType, detail_TicketType); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TicketType); + } + { + TypeIdentifierPair type_ids_IsPrintTicker; + ReturnCode_t return_code_IsPrintTicker {eprosima::fastdds::dds::RETCODE_OK}; + return_code_IsPrintTicker = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_IsPrintTicker); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_IsPrintTicker) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "IsPrintTicker Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_IsPrintTicker = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_IsPrintTicker = 0x0000001b; + bool common_IsPrintTicker_ec {false}; + CommonStructMember common_IsPrintTicker {TypeObjectUtils::build_common_struct_member(member_id_IsPrintTicker, member_flags_IsPrintTicker, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_IsPrintTicker, common_IsPrintTicker_ec))}; + if (!common_IsPrintTicker_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure IsPrintTicker member TypeIdentifier inconsistent."); + return; + } + MemberName name_IsPrintTicker = "IsPrintTicker"; + eprosima::fastcdr::optional member_ann_builtin_IsPrintTicker; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_IsPrintTicker = TypeObjectUtils::build_complete_member_detail(name_IsPrintTicker, member_ann_builtin_IsPrintTicker, ann_custom_WeightInfoOk); + CompleteStructMember member_IsPrintTicker = TypeObjectUtils::build_complete_struct_member(common_IsPrintTicker, detail_IsPrintTicker); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_IsPrintTicker); + } + { + TypeIdentifierPair type_ids_OrderNumber; + ReturnCode_t return_code_OrderNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_OrderNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_OrderNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_OrderNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_OrderNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_OrderNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_OrderNumber = 0x0000001c; + bool common_OrderNumber_ec {false}; + CommonStructMember common_OrderNumber {TypeObjectUtils::build_common_struct_member(member_id_OrderNumber, member_flags_OrderNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_OrderNumber, common_OrderNumber_ec))}; + if (!common_OrderNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure OrderNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_OrderNumber = "OrderNumber"; + eprosima::fastcdr::optional member_ann_builtin_OrderNumber; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_OrderNumber = TypeObjectUtils::build_complete_member_detail(name_OrderNumber, member_ann_builtin_OrderNumber, ann_custom_WeightInfoOk); + CompleteStructMember member_OrderNumber = TypeObjectUtils::build_complete_struct_member(common_OrderNumber, detail_OrderNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_OrderNumber); + } + { + TypeIdentifierPair type_ids_VehicleAndVesselNumber; + ReturnCode_t return_code_VehicleAndVesselNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_VehicleAndVesselNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_VehicleAndVesselNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_VehicleAndVesselNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_VehicleAndVesselNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_VehicleAndVesselNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_VehicleAndVesselNumber = 0x0000001d; + bool common_VehicleAndVesselNumber_ec {false}; + CommonStructMember common_VehicleAndVesselNumber {TypeObjectUtils::build_common_struct_member(member_id_VehicleAndVesselNumber, member_flags_VehicleAndVesselNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_VehicleAndVesselNumber, common_VehicleAndVesselNumber_ec))}; + if (!common_VehicleAndVesselNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure VehicleAndVesselNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_VehicleAndVesselNumber = "VehicleAndVesselNumber"; + eprosima::fastcdr::optional member_ann_builtin_VehicleAndVesselNumber; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_VehicleAndVesselNumber = TypeObjectUtils::build_complete_member_detail(name_VehicleAndVesselNumber, member_ann_builtin_VehicleAndVesselNumber, ann_custom_WeightInfoOk); + CompleteStructMember member_VehicleAndVesselNumber = TypeObjectUtils::build_complete_struct_member(common_VehicleAndVesselNumber, detail_VehicleAndVesselNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_VehicleAndVesselNumber); + } + { + TypeIdentifierPair type_ids_ReceiveCompany; + ReturnCode_t return_code_ReceiveCompany {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ReceiveCompany = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_ReceiveCompany); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ReceiveCompany) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_ReceiveCompany)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_ReceiveCompany = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ReceiveCompany = 0x0000001e; + bool common_ReceiveCompany_ec {false}; + CommonStructMember common_ReceiveCompany {TypeObjectUtils::build_common_struct_member(member_id_ReceiveCompany, member_flags_ReceiveCompany, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ReceiveCompany, common_ReceiveCompany_ec))}; + if (!common_ReceiveCompany_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ReceiveCompany member TypeIdentifier inconsistent."); + return; + } + MemberName name_ReceiveCompany = "ReceiveCompany"; + eprosima::fastcdr::optional member_ann_builtin_ReceiveCompany; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_ReceiveCompany = TypeObjectUtils::build_complete_member_detail(name_ReceiveCompany, member_ann_builtin_ReceiveCompany, ann_custom_WeightInfoOk); + CompleteStructMember member_ReceiveCompany = TypeObjectUtils::build_complete_struct_member(common_ReceiveCompany, detail_ReceiveCompany); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_ReceiveCompany); + } + { + TypeIdentifierPair type_ids_TransportCompany; + ReturnCode_t return_code_TransportCompany {eprosima::fastdds::dds::RETCODE_OK}; + return_code_TransportCompany = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_TransportCompany); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_TransportCompany) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_TransportCompany)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_TransportCompany = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_TransportCompany = 0x0000001f; + bool common_TransportCompany_ec {false}; + CommonStructMember common_TransportCompany {TypeObjectUtils::build_common_struct_member(member_id_TransportCompany, member_flags_TransportCompany, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_TransportCompany, common_TransportCompany_ec))}; + if (!common_TransportCompany_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure TransportCompany member TypeIdentifier inconsistent."); + return; + } + MemberName name_TransportCompany = "TransportCompany"; + eprosima::fastcdr::optional member_ann_builtin_TransportCompany; + ann_custom_WeightInfoOk.reset(); + CompleteMemberDetail detail_TransportCompany = TypeObjectUtils::build_complete_member_detail(name_TransportCompany, member_ann_builtin_TransportCompany, ann_custom_WeightInfoOk); + CompleteStructMember member_TransportCompany = TypeObjectUtils::build_complete_struct_member(common_TransportCompany, detail_TransportCompany); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoOk, member_TransportCompany); + } + CompleteStructType struct_type_WeightInfoOk = TypeObjectUtils::build_complete_struct_type(struct_flags_WeightInfoOk, header_WeightInfoOk, member_seq_WeightInfoOk); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_WeightInfoOk, type_name_WeightInfoOk.to_string(), type_ids_WeightInfoOk)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::WeightInfoOk already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_WeightInfoError_type_identifier( + TypeIdentifierPair& type_ids_WeightInfoError) +{ + + ReturnCode_t return_code_WeightInfoError {eprosima::fastdds::dds::RETCODE_OK}; + return_code_WeightInfoError = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::WeightInfoError", type_ids_WeightInfoError); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_WeightInfoError) + { + StructTypeFlag struct_flags_WeightInfoError = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_WeightInfoError = "WeighingSystem::WeightInfoError"; + eprosima::fastcdr::optional type_ann_builtin_WeightInfoError; + eprosima::fastcdr::optional ann_custom_WeightInfoError; + CompleteTypeDetail detail_WeightInfoError = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_WeightInfoError, ann_custom_WeightInfoError, type_name_WeightInfoError.to_string()); + CompleteStructHeader header_WeightInfoError; + header_WeightInfoError = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_WeightInfoError); + CompleteStructMemberSeq member_seq_WeightInfoError; + { + TypeIdentifierPair type_ids_CarNumber; + ReturnCode_t return_code_CarNumber {eprosima::fastdds::dds::RETCODE_OK}; + return_code_CarNumber = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_CarNumber); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_CarNumber) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_CarNumber)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_CarNumber = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_CarNumber = 0x00000000; + bool common_CarNumber_ec {false}; + CommonStructMember common_CarNumber {TypeObjectUtils::build_common_struct_member(member_id_CarNumber, member_flags_CarNumber, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_CarNumber, common_CarNumber_ec))}; + if (!common_CarNumber_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure CarNumber member TypeIdentifier inconsistent."); + return; + } + MemberName name_CarNumber = "CarNumber"; + eprosima::fastcdr::optional member_ann_builtin_CarNumber; + ann_custom_WeightInfoError.reset(); + CompleteMemberDetail detail_CarNumber = TypeObjectUtils::build_complete_member_detail(name_CarNumber, member_ann_builtin_CarNumber, ann_custom_WeightInfoError); + CompleteStructMember member_CarNumber = TypeObjectUtils::build_complete_struct_member(common_CarNumber, detail_CarNumber); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoError, member_CarNumber); + } + { + TypeIdentifierPair type_ids_Warning; + ReturnCode_t return_code_Warning {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Warning = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_Warning); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Warning) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_Warning)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_Warning = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_Warning = 0x00000001; + bool common_Warning_ec {false}; + CommonStructMember common_Warning {TypeObjectUtils::build_common_struct_member(member_id_Warning, member_flags_Warning, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_Warning, common_Warning_ec))}; + if (!common_Warning_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure Warning member TypeIdentifier inconsistent."); + return; + } + MemberName name_Warning = "Warning"; + eprosima::fastcdr::optional member_ann_builtin_Warning; + ann_custom_WeightInfoError.reset(); + CompleteMemberDetail detail_Warning = TypeObjectUtils::build_complete_member_detail(name_Warning, member_ann_builtin_Warning, ann_custom_WeightInfoError); + CompleteStructMember member_Warning = TypeObjectUtils::build_complete_struct_member(common_Warning, detail_Warning); + TypeObjectUtils::add_complete_struct_member(member_seq_WeightInfoError, member_Warning); + } + CompleteStructType struct_type_WeightInfoError = TypeObjectUtils::build_complete_struct_type(struct_flags_WeightInfoError, header_WeightInfoError, member_seq_WeightInfoError); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_WeightInfoError, type_name_WeightInfoError.to_string(), type_ids_WeightInfoError)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::WeightInfoError already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_BarCommandUpdate_type_identifier( + TypeIdentifierPair& type_ids_BarCommandUpdate) +{ + + ReturnCode_t return_code_BarCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BarCommandUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::BarCommandUpdate", type_ids_BarCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BarCommandUpdate) + { + StructTypeFlag struct_flags_BarCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_BarCommandUpdate = "WeighingSystem::BarCommandUpdate"; + eprosima::fastcdr::optional type_ann_builtin_BarCommandUpdate; + eprosima::fastcdr::optional ann_custom_BarCommandUpdate; + CompleteTypeDetail detail_BarCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_BarCommandUpdate, ann_custom_BarCommandUpdate, type_name_BarCommandUpdate.to_string()); + CompleteStructHeader header_BarCommandUpdate; + header_BarCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_BarCommandUpdate); + CompleteStructMemberSeq member_seq_BarCommandUpdate; + { + TypeIdentifierPair type_ids_FrontBarSignalUp; + ReturnCode_t return_code_FrontBarSignalUp {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontBarSignalUp = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontBarSignalUp); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarSignalUp) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontBarSignalUp Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontBarSignalUp = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontBarSignalUp = 0x00000000; + bool common_FrontBarSignalUp_ec {false}; + CommonStructMember common_FrontBarSignalUp {TypeObjectUtils::build_common_struct_member(member_id_FrontBarSignalUp, member_flags_FrontBarSignalUp, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarSignalUp, common_FrontBarSignalUp_ec))}; + if (!common_FrontBarSignalUp_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarSignalUp member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontBarSignalUp = "FrontBarSignalUp"; + eprosima::fastcdr::optional member_ann_builtin_FrontBarSignalUp; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_FrontBarSignalUp = TypeObjectUtils::build_complete_member_detail(name_FrontBarSignalUp, member_ann_builtin_FrontBarSignalUp, ann_custom_BarCommandUpdate); + CompleteStructMember member_FrontBarSignalUp = TypeObjectUtils::build_complete_struct_member(common_FrontBarSignalUp, detail_FrontBarSignalUp); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarSignalUp); + } + { + TypeIdentifierPair type_ids_FrontBarSignalDown; + ReturnCode_t return_code_FrontBarSignalDown {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontBarSignalDown = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontBarSignalDown); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarSignalDown) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontBarSignalDown Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontBarSignalDown = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontBarSignalDown = 0x00000001; + bool common_FrontBarSignalDown_ec {false}; + CommonStructMember common_FrontBarSignalDown {TypeObjectUtils::build_common_struct_member(member_id_FrontBarSignalDown, member_flags_FrontBarSignalDown, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarSignalDown, common_FrontBarSignalDown_ec))}; + if (!common_FrontBarSignalDown_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarSignalDown member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontBarSignalDown = "FrontBarSignalDown"; + eprosima::fastcdr::optional member_ann_builtin_FrontBarSignalDown; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_FrontBarSignalDown = TypeObjectUtils::build_complete_member_detail(name_FrontBarSignalDown, member_ann_builtin_FrontBarSignalDown, ann_custom_BarCommandUpdate); + CompleteStructMember member_FrontBarSignalDown = TypeObjectUtils::build_complete_struct_member(common_FrontBarSignalDown, detail_FrontBarSignalDown); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarSignalDown); + } + { + TypeIdentifierPair type_ids_FrontBarEnable; + ReturnCode_t return_code_FrontBarEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontBarEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_FrontBarEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontBarEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontBarEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontBarEnable = 0x00000002; + bool common_FrontBarEnable_ec {false}; + CommonStructMember common_FrontBarEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontBarEnable, member_flags_FrontBarEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarEnable, common_FrontBarEnable_ec))}; + if (!common_FrontBarEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontBarEnable = "FrontBarEnable"; + eprosima::fastcdr::optional member_ann_builtin_FrontBarEnable; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_FrontBarEnable = TypeObjectUtils::build_complete_member_detail(name_FrontBarEnable, member_ann_builtin_FrontBarEnable, ann_custom_BarCommandUpdate); + CompleteStructMember member_FrontBarEnable = TypeObjectUtils::build_complete_struct_member(common_FrontBarEnable, detail_FrontBarEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_FrontBarEnable); + } + { + TypeIdentifierPair type_ids_BackBarSignalUp; + ReturnCode_t return_code_BackBarSignalUp {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackBarSignalUp = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackBarSignalUp); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarSignalUp) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackBarSignalUp Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackBarSignalUp = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackBarSignalUp = 0x00000003; + bool common_BackBarSignalUp_ec {false}; + CommonStructMember common_BackBarSignalUp {TypeObjectUtils::build_common_struct_member(member_id_BackBarSignalUp, member_flags_BackBarSignalUp, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarSignalUp, common_BackBarSignalUp_ec))}; + if (!common_BackBarSignalUp_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarSignalUp member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackBarSignalUp = "BackBarSignalUp"; + eprosima::fastcdr::optional member_ann_builtin_BackBarSignalUp; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_BackBarSignalUp = TypeObjectUtils::build_complete_member_detail(name_BackBarSignalUp, member_ann_builtin_BackBarSignalUp, ann_custom_BarCommandUpdate); + CompleteStructMember member_BackBarSignalUp = TypeObjectUtils::build_complete_struct_member(common_BackBarSignalUp, detail_BackBarSignalUp); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarSignalUp); + } + { + TypeIdentifierPair type_ids_BackBarSignalDown; + ReturnCode_t return_code_BackBarSignalDown {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackBarSignalDown = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackBarSignalDown); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarSignalDown) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackBarSignalDown Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackBarSignalDown = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackBarSignalDown = 0x00000004; + bool common_BackBarSignalDown_ec {false}; + CommonStructMember common_BackBarSignalDown {TypeObjectUtils::build_common_struct_member(member_id_BackBarSignalDown, member_flags_BackBarSignalDown, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarSignalDown, common_BackBarSignalDown_ec))}; + if (!common_BackBarSignalDown_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarSignalDown member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackBarSignalDown = "BackBarSignalDown"; + eprosima::fastcdr::optional member_ann_builtin_BackBarSignalDown; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_BackBarSignalDown = TypeObjectUtils::build_complete_member_detail(name_BackBarSignalDown, member_ann_builtin_BackBarSignalDown, ann_custom_BarCommandUpdate); + CompleteStructMember member_BackBarSignalDown = TypeObjectUtils::build_complete_struct_member(common_BackBarSignalDown, detail_BackBarSignalDown); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarSignalDown); + } + { + TypeIdentifierPair type_ids_BackBarEnable; + ReturnCode_t return_code_BackBarEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackBarEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_BackBarEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackBarEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackBarEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackBarEnable = 0x00000005; + bool common_BackBarEnable_ec {false}; + CommonStructMember common_BackBarEnable {TypeObjectUtils::build_common_struct_member(member_id_BackBarEnable, member_flags_BackBarEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarEnable, common_BackBarEnable_ec))}; + if (!common_BackBarEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackBarEnable = "BackBarEnable"; + eprosima::fastcdr::optional member_ann_builtin_BackBarEnable; + ann_custom_BarCommandUpdate.reset(); + CompleteMemberDetail detail_BackBarEnable = TypeObjectUtils::build_complete_member_detail(name_BackBarEnable, member_ann_builtin_BackBarEnable, ann_custom_BarCommandUpdate); + CompleteStructMember member_BackBarEnable = TypeObjectUtils::build_complete_struct_member(common_BackBarEnable, detail_BackBarEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_BarCommandUpdate, member_BackBarEnable); + } + CompleteStructType struct_type_BarCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_BarCommandUpdate, header_BarCommandUpdate, member_seq_BarCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_BarCommandUpdate, type_name_BarCommandUpdate.to_string(), type_ids_BarCommandUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::BarCommandUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LightsCommandUpdate_type_identifier( + TypeIdentifierPair& type_ids_LightsCommandUpdate) +{ + + ReturnCode_t return_code_LightsCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LightsCommandUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::LightsCommandUpdate", type_ids_LightsCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LightsCommandUpdate) + { + StructTypeFlag struct_flags_LightsCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_LightsCommandUpdate = "WeighingSystem::LightsCommandUpdate"; + eprosima::fastcdr::optional type_ann_builtin_LightsCommandUpdate; + eprosima::fastcdr::optional ann_custom_LightsCommandUpdate; + CompleteTypeDetail detail_LightsCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LightsCommandUpdate, ann_custom_LightsCommandUpdate, type_name_LightsCommandUpdate.to_string()); + CompleteStructHeader header_LightsCommandUpdate; + header_LightsCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LightsCommandUpdate); + CompleteStructMemberSeq member_seq_LightsCommandUpdate; + { + TypeIdentifierPair type_ids_FrontLEDSignal; + ReturnCode_t return_code_FrontLEDSignal {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontLEDSignal = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontLEDSignal); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDSignal) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontLEDSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontLEDSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontLEDSignal = 0x00000000; + bool common_FrontLEDSignal_ec {false}; + CommonStructMember common_FrontLEDSignal {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDSignal, member_flags_FrontLEDSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDSignal, common_FrontLEDSignal_ec))}; + if (!common_FrontLEDSignal_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDSignal member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontLEDSignal = "FrontLEDSignal"; + eprosima::fastcdr::optional member_ann_builtin_FrontLEDSignal; + ann_custom_LightsCommandUpdate.reset(); + CompleteMemberDetail detail_FrontLEDSignal = TypeObjectUtils::build_complete_member_detail(name_FrontLEDSignal, member_ann_builtin_FrontLEDSignal, ann_custom_LightsCommandUpdate); + CompleteStructMember member_FrontLEDSignal = TypeObjectUtils::build_complete_struct_member(common_FrontLEDSignal, detail_FrontLEDSignal); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_FrontLEDSignal); + } + { + TypeIdentifierPair type_ids_FrontLEDEnable; + ReturnCode_t return_code_FrontLEDEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontLEDEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_FrontLEDEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontLEDEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontLEDEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontLEDEnable = 0x00000001; + bool common_FrontLEDEnable_ec {false}; + CommonStructMember common_FrontLEDEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDEnable, member_flags_FrontLEDEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDEnable, common_FrontLEDEnable_ec))}; + if (!common_FrontLEDEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontLEDEnable = "FrontLEDEnable"; + eprosima::fastcdr::optional member_ann_builtin_FrontLEDEnable; + ann_custom_LightsCommandUpdate.reset(); + CompleteMemberDetail detail_FrontLEDEnable = TypeObjectUtils::build_complete_member_detail(name_FrontLEDEnable, member_ann_builtin_FrontLEDEnable, ann_custom_LightsCommandUpdate); + CompleteStructMember member_FrontLEDEnable = TypeObjectUtils::build_complete_struct_member(common_FrontLEDEnable, detail_FrontLEDEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_FrontLEDEnable); + } + { + TypeIdentifierPair type_ids_BackLEDSignal; + ReturnCode_t return_code_BackLEDSignal {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackLEDSignal = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackLEDSignal); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDSignal) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackLEDSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackLEDSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackLEDSignal = 0x00000002; + bool common_BackLEDSignal_ec {false}; + CommonStructMember common_BackLEDSignal {TypeObjectUtils::build_common_struct_member(member_id_BackLEDSignal, member_flags_BackLEDSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDSignal, common_BackLEDSignal_ec))}; + if (!common_BackLEDSignal_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDSignal member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackLEDSignal = "BackLEDSignal"; + eprosima::fastcdr::optional member_ann_builtin_BackLEDSignal; + ann_custom_LightsCommandUpdate.reset(); + CompleteMemberDetail detail_BackLEDSignal = TypeObjectUtils::build_complete_member_detail(name_BackLEDSignal, member_ann_builtin_BackLEDSignal, ann_custom_LightsCommandUpdate); + CompleteStructMember member_BackLEDSignal = TypeObjectUtils::build_complete_struct_member(common_BackLEDSignal, detail_BackLEDSignal); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_BackLEDSignal); + } + { + TypeIdentifierPair type_ids_BackLEDEnable; + ReturnCode_t return_code_BackLEDEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackLEDEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackLEDEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackLEDEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackLEDEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackLEDEnable = 0x00000003; + bool common_BackLEDEnable_ec {false}; + CommonStructMember common_BackLEDEnable {TypeObjectUtils::build_common_struct_member(member_id_BackLEDEnable, member_flags_BackLEDEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDEnable, common_BackLEDEnable_ec))}; + if (!common_BackLEDEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackLEDEnable = "BackLEDEnable"; + eprosima::fastcdr::optional member_ann_builtin_BackLEDEnable; + ann_custom_LightsCommandUpdate.reset(); + CompleteMemberDetail detail_BackLEDEnable = TypeObjectUtils::build_complete_member_detail(name_BackLEDEnable, member_ann_builtin_BackLEDEnable, ann_custom_LightsCommandUpdate); + CompleteStructMember member_BackLEDEnable = TypeObjectUtils::build_complete_struct_member(common_BackLEDEnable, detail_BackLEDEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsCommandUpdate, member_BackLEDEnable); + } + CompleteStructType struct_type_LightsCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LightsCommandUpdate, header_LightsCommandUpdate, member_seq_LightsCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LightsCommandUpdate, type_name_LightsCommandUpdate.to_string(), type_ids_LightsCommandUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::LightsCommandUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InfraredCommandUpdate_type_identifier( + TypeIdentifierPair& type_ids_InfraredCommandUpdate) +{ + + ReturnCode_t return_code_InfraredCommandUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InfraredCommandUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::InfraredCommandUpdate", type_ids_InfraredCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InfraredCommandUpdate) + { + StructTypeFlag struct_flags_InfraredCommandUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_InfraredCommandUpdate = "WeighingSystem::InfraredCommandUpdate"; + eprosima::fastcdr::optional type_ann_builtin_InfraredCommandUpdate; + eprosima::fastcdr::optional ann_custom_InfraredCommandUpdate; + CompleteTypeDetail detail_InfraredCommandUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InfraredCommandUpdate, ann_custom_InfraredCommandUpdate, type_name_InfraredCommandUpdate.to_string()); + CompleteStructHeader header_InfraredCommandUpdate; + header_InfraredCommandUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InfraredCommandUpdate); + CompleteStructMemberSeq member_seq_InfraredCommandUpdate; + { + TypeIdentifierPair type_ids_FrontResistanceUnLock; + ReturnCode_t return_code_FrontResistanceUnLock {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontResistanceUnLock = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontResistanceUnLock); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceUnLock) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontResistanceUnLock Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontResistanceUnLock = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontResistanceUnLock = 0x00000000; + bool common_FrontResistanceUnLock_ec {false}; + CommonStructMember common_FrontResistanceUnLock {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceUnLock, member_flags_FrontResistanceUnLock, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceUnLock, common_FrontResistanceUnLock_ec))}; + if (!common_FrontResistanceUnLock_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceUnLock member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontResistanceUnLock = "FrontResistanceUnLock"; + eprosima::fastcdr::optional member_ann_builtin_FrontResistanceUnLock; + ann_custom_InfraredCommandUpdate.reset(); + CompleteMemberDetail detail_FrontResistanceUnLock = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceUnLock, member_ann_builtin_FrontResistanceUnLock, ann_custom_InfraredCommandUpdate); + CompleteStructMember member_FrontResistanceUnLock = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceUnLock, detail_FrontResistanceUnLock); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_FrontResistanceUnLock); + } + { + TypeIdentifierPair type_ids_FrontResistanceEnable; + ReturnCode_t return_code_FrontResistanceEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontResistanceEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_FrontResistanceEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontResistanceEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontResistanceEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontResistanceEnable = 0x00000001; + bool common_FrontResistanceEnable_ec {false}; + CommonStructMember common_FrontResistanceEnable {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceEnable, member_flags_FrontResistanceEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceEnable, common_FrontResistanceEnable_ec))}; + if (!common_FrontResistanceEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontResistanceEnable = "FrontResistanceEnable"; + eprosima::fastcdr::optional member_ann_builtin_FrontResistanceEnable; + ann_custom_InfraredCommandUpdate.reset(); + CompleteMemberDetail detail_FrontResistanceEnable = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceEnable, member_ann_builtin_FrontResistanceEnable, ann_custom_InfraredCommandUpdate); + CompleteStructMember member_FrontResistanceEnable = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceEnable, detail_FrontResistanceEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_FrontResistanceEnable); + } + { + TypeIdentifierPair type_ids_BackResistanceUnLock; + ReturnCode_t return_code_BackResistanceUnLock {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackResistanceUnLock = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackResistanceUnLock); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceUnLock) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackResistanceUnLock Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackResistanceUnLock = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackResistanceUnLock = 0x00000002; + bool common_BackResistanceUnLock_ec {false}; + CommonStructMember common_BackResistanceUnLock {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceUnLock, member_flags_BackResistanceUnLock, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceUnLock, common_BackResistanceUnLock_ec))}; + if (!common_BackResistanceUnLock_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceUnLock member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackResistanceUnLock = "BackResistanceUnLock"; + eprosima::fastcdr::optional member_ann_builtin_BackResistanceUnLock; + ann_custom_InfraredCommandUpdate.reset(); + CompleteMemberDetail detail_BackResistanceUnLock = TypeObjectUtils::build_complete_member_detail(name_BackResistanceUnLock, member_ann_builtin_BackResistanceUnLock, ann_custom_InfraredCommandUpdate); + CompleteStructMember member_BackResistanceUnLock = TypeObjectUtils::build_complete_struct_member(common_BackResistanceUnLock, detail_BackResistanceUnLock); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_BackResistanceUnLock); + } + { + TypeIdentifierPair type_ids_BackResistanceEnable; + ReturnCode_t return_code_BackResistanceEnable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackResistanceEnable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_BackResistanceEnable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceEnable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackResistanceEnable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackResistanceEnable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackResistanceEnable = 0x00000003; + bool common_BackResistanceEnable_ec {false}; + CommonStructMember common_BackResistanceEnable {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceEnable, member_flags_BackResistanceEnable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceEnable, common_BackResistanceEnable_ec))}; + if (!common_BackResistanceEnable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceEnable member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackResistanceEnable = "BackResistanceEnable"; + eprosima::fastcdr::optional member_ann_builtin_BackResistanceEnable; + ann_custom_InfraredCommandUpdate.reset(); + CompleteMemberDetail detail_BackResistanceEnable = TypeObjectUtils::build_complete_member_detail(name_BackResistanceEnable, member_ann_builtin_BackResistanceEnable, ann_custom_InfraredCommandUpdate); + CompleteStructMember member_BackResistanceEnable = TypeObjectUtils::build_complete_struct_member(common_BackResistanceEnable, detail_BackResistanceEnable); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredCommandUpdate, member_BackResistanceEnable); + } + CompleteStructType struct_type_InfraredCommandUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_InfraredCommandUpdate, header_InfraredCommandUpdate, member_seq_InfraredCommandUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InfraredCommandUpdate, type_name_InfraredCommandUpdate.to_string(), type_ids_InfraredCommandUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::InfraredCommandUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_BarUpdate_type_identifier( + TypeIdentifierPair& type_ids_BarUpdate) +{ + + ReturnCode_t return_code_BarUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BarUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::BarUpdate", type_ids_BarUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BarUpdate) + { + StructTypeFlag struct_flags_BarUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_BarUpdate = "WeighingSystem::BarUpdate"; + eprosima::fastcdr::optional type_ann_builtin_BarUpdate; + eprosima::fastcdr::optional ann_custom_BarUpdate; + CompleteTypeDetail detail_BarUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_BarUpdate, ann_custom_BarUpdate, type_name_BarUpdate.to_string()); + CompleteStructHeader header_BarUpdate; + header_BarUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_BarUpdate); + CompleteStructMemberSeq member_seq_BarUpdate; + { + TypeIdentifierPair type_ids_FrontBarState; + ReturnCode_t return_code_FrontBarState {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontBarState = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontBarState); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontBarState) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontBarState Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontBarState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontBarState = 0x00000000; + bool common_FrontBarState_ec {false}; + CommonStructMember common_FrontBarState {TypeObjectUtils::build_common_struct_member(member_id_FrontBarState, member_flags_FrontBarState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontBarState, common_FrontBarState_ec))}; + if (!common_FrontBarState_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontBarState member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontBarState = "FrontBarState"; + eprosima::fastcdr::optional member_ann_builtin_FrontBarState; + ann_custom_BarUpdate.reset(); + CompleteMemberDetail detail_FrontBarState = TypeObjectUtils::build_complete_member_detail(name_FrontBarState, member_ann_builtin_FrontBarState, ann_custom_BarUpdate); + CompleteStructMember member_FrontBarState = TypeObjectUtils::build_complete_struct_member(common_FrontBarState, detail_FrontBarState); + TypeObjectUtils::add_complete_struct_member(member_seq_BarUpdate, member_FrontBarState); + } + { + TypeIdentifierPair type_ids_BackBarState; + ReturnCode_t return_code_BackBarState {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackBarState = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackBarState); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackBarState) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackBarState Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackBarState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackBarState = 0x00000001; + bool common_BackBarState_ec {false}; + CommonStructMember common_BackBarState {TypeObjectUtils::build_common_struct_member(member_id_BackBarState, member_flags_BackBarState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackBarState, common_BackBarState_ec))}; + if (!common_BackBarState_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackBarState member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackBarState = "BackBarState"; + eprosima::fastcdr::optional member_ann_builtin_BackBarState; + ann_custom_BarUpdate.reset(); + CompleteMemberDetail detail_BackBarState = TypeObjectUtils::build_complete_member_detail(name_BackBarState, member_ann_builtin_BackBarState, ann_custom_BarUpdate); + CompleteStructMember member_BackBarState = TypeObjectUtils::build_complete_struct_member(common_BackBarState, detail_BackBarState); + TypeObjectUtils::add_complete_struct_member(member_seq_BarUpdate, member_BackBarState); + } + CompleteStructType struct_type_BarUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_BarUpdate, header_BarUpdate, member_seq_BarUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_BarUpdate, type_name_BarUpdate.to_string(), type_ids_BarUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::BarUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LightsUpdate_type_identifier( + TypeIdentifierPair& type_ids_LightsUpdate) +{ + + ReturnCode_t return_code_LightsUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LightsUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::LightsUpdate", type_ids_LightsUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LightsUpdate) + { + StructTypeFlag struct_flags_LightsUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_LightsUpdate = "WeighingSystem::LightsUpdate"; + eprosima::fastcdr::optional type_ann_builtin_LightsUpdate; + eprosima::fastcdr::optional ann_custom_LightsUpdate; + CompleteTypeDetail detail_LightsUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LightsUpdate, ann_custom_LightsUpdate, type_name_LightsUpdate.to_string()); + CompleteStructHeader header_LightsUpdate; + header_LightsUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LightsUpdate); + CompleteStructMemberSeq member_seq_LightsUpdate; + { + TypeIdentifierPair type_ids_FrontLEDState; + ReturnCode_t return_code_FrontLEDState {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontLEDState = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontLEDState); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontLEDState) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontLEDState Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontLEDState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontLEDState = 0x00000000; + bool common_FrontLEDState_ec {false}; + CommonStructMember common_FrontLEDState {TypeObjectUtils::build_common_struct_member(member_id_FrontLEDState, member_flags_FrontLEDState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontLEDState, common_FrontLEDState_ec))}; + if (!common_FrontLEDState_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontLEDState member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontLEDState = "FrontLEDState"; + eprosima::fastcdr::optional member_ann_builtin_FrontLEDState; + ann_custom_LightsUpdate.reset(); + CompleteMemberDetail detail_FrontLEDState = TypeObjectUtils::build_complete_member_detail(name_FrontLEDState, member_ann_builtin_FrontLEDState, ann_custom_LightsUpdate); + CompleteStructMember member_FrontLEDState = TypeObjectUtils::build_complete_struct_member(common_FrontLEDState, detail_FrontLEDState); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsUpdate, member_FrontLEDState); + } + { + TypeIdentifierPair type_ids_BackLEDState; + ReturnCode_t return_code_BackLEDState {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackLEDState = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackLEDState); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackLEDState) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackLEDState Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackLEDState = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackLEDState = 0x00000001; + bool common_BackLEDState_ec {false}; + CommonStructMember common_BackLEDState {TypeObjectUtils::build_common_struct_member(member_id_BackLEDState, member_flags_BackLEDState, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackLEDState, common_BackLEDState_ec))}; + if (!common_BackLEDState_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackLEDState member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackLEDState = "BackLEDState"; + eprosima::fastcdr::optional member_ann_builtin_BackLEDState; + ann_custom_LightsUpdate.reset(); + CompleteMemberDetail detail_BackLEDState = TypeObjectUtils::build_complete_member_detail(name_BackLEDState, member_ann_builtin_BackLEDState, ann_custom_LightsUpdate); + CompleteStructMember member_BackLEDState = TypeObjectUtils::build_complete_struct_member(common_BackLEDState, detail_BackLEDState); + TypeObjectUtils::add_complete_struct_member(member_seq_LightsUpdate, member_BackLEDState); + } + CompleteStructType struct_type_LightsUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LightsUpdate, header_LightsUpdate, member_seq_LightsUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LightsUpdate, type_name_LightsUpdate.to_string(), type_ids_LightsUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::LightsUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_InfraredUpdate_type_identifier( + TypeIdentifierPair& type_ids_InfraredUpdate) +{ + + ReturnCode_t return_code_InfraredUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_InfraredUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::InfraredUpdate", type_ids_InfraredUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_InfraredUpdate) + { + StructTypeFlag struct_flags_InfraredUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_InfraredUpdate = "WeighingSystem::InfraredUpdate"; + eprosima::fastcdr::optional type_ann_builtin_InfraredUpdate; + eprosima::fastcdr::optional ann_custom_InfraredUpdate; + CompleteTypeDetail detail_InfraredUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_InfraredUpdate, ann_custom_InfraredUpdate, type_name_InfraredUpdate.to_string()); + CompleteStructHeader header_InfraredUpdate; + header_InfraredUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_InfraredUpdate); + CompleteStructMemberSeq member_seq_InfraredUpdate; + { + TypeIdentifierPair type_ids_FrontResistanceSignal; + ReturnCode_t return_code_FrontResistanceSignal {eprosima::fastdds::dds::RETCODE_OK}; + return_code_FrontResistanceSignal = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_FrontResistanceSignal); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_FrontResistanceSignal) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "FrontResistanceSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_FrontResistanceSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_FrontResistanceSignal = 0x00000000; + bool common_FrontResistanceSignal_ec {false}; + CommonStructMember common_FrontResistanceSignal {TypeObjectUtils::build_common_struct_member(member_id_FrontResistanceSignal, member_flags_FrontResistanceSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_FrontResistanceSignal, common_FrontResistanceSignal_ec))}; + if (!common_FrontResistanceSignal_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure FrontResistanceSignal member TypeIdentifier inconsistent."); + return; + } + MemberName name_FrontResistanceSignal = "FrontResistanceSignal"; + eprosima::fastcdr::optional member_ann_builtin_FrontResistanceSignal; + ann_custom_InfraredUpdate.reset(); + CompleteMemberDetail detail_FrontResistanceSignal = TypeObjectUtils::build_complete_member_detail(name_FrontResistanceSignal, member_ann_builtin_FrontResistanceSignal, ann_custom_InfraredUpdate); + CompleteStructMember member_FrontResistanceSignal = TypeObjectUtils::build_complete_struct_member(common_FrontResistanceSignal, detail_FrontResistanceSignal); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredUpdate, member_FrontResistanceSignal); + } + { + TypeIdentifierPair type_ids_BackResistanceSignal; + ReturnCode_t return_code_BackResistanceSignal {eprosima::fastdds::dds::RETCODE_OK}; + return_code_BackResistanceSignal = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_BackResistanceSignal); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_BackResistanceSignal) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "BackResistanceSignal Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_BackResistanceSignal = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_BackResistanceSignal = 0x00000001; + bool common_BackResistanceSignal_ec {false}; + CommonStructMember common_BackResistanceSignal {TypeObjectUtils::build_common_struct_member(member_id_BackResistanceSignal, member_flags_BackResistanceSignal, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_BackResistanceSignal, common_BackResistanceSignal_ec))}; + if (!common_BackResistanceSignal_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure BackResistanceSignal member TypeIdentifier inconsistent."); + return; + } + MemberName name_BackResistanceSignal = "BackResistanceSignal"; + eprosima::fastcdr::optional member_ann_builtin_BackResistanceSignal; + ann_custom_InfraredUpdate.reset(); + CompleteMemberDetail detail_BackResistanceSignal = TypeObjectUtils::build_complete_member_detail(name_BackResistanceSignal, member_ann_builtin_BackResistanceSignal, ann_custom_InfraredUpdate); + CompleteStructMember member_BackResistanceSignal = TypeObjectUtils::build_complete_struct_member(common_BackResistanceSignal, detail_BackResistanceSignal); + TypeObjectUtils::add_complete_struct_member(member_seq_InfraredUpdate, member_BackResistanceSignal); + } + CompleteStructType struct_type_InfraredUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_InfraredUpdate, header_InfraredUpdate, member_seq_InfraredUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_InfraredUpdate, type_name_InfraredUpdate.to_string(), type_ids_InfraredUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::InfraredUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_LicenseSnapUpdate_type_identifier( + TypeIdentifierPair& type_ids_LicenseSnapUpdate) +{ + + ReturnCode_t return_code_LicenseSnapUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_LicenseSnapUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::LicenseSnapUpdate", type_ids_LicenseSnapUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_LicenseSnapUpdate) + { + StructTypeFlag struct_flags_LicenseSnapUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_LicenseSnapUpdate = "WeighingSystem::LicenseSnapUpdate"; + eprosima::fastcdr::optional type_ann_builtin_LicenseSnapUpdate; + eprosima::fastcdr::optional ann_custom_LicenseSnapUpdate; + CompleteTypeDetail detail_LicenseSnapUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_LicenseSnapUpdate, ann_custom_LicenseSnapUpdate, type_name_LicenseSnapUpdate.to_string()); + CompleteStructHeader header_LicenseSnapUpdate; + header_LicenseSnapUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_LicenseSnapUpdate); + CompleteStructMemberSeq member_seq_LicenseSnapUpdate; + { + TypeIdentifierPair type_ids_NewTag; + ReturnCode_t return_code_NewTag {eprosima::fastdds::dds::RETCODE_OK}; + return_code_NewTag = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_NewTag); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_NewTag) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "NewTag Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_NewTag = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_NewTag = 0x00000000; + bool common_NewTag_ec {false}; + CommonStructMember common_NewTag {TypeObjectUtils::build_common_struct_member(member_id_NewTag, member_flags_NewTag, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_NewTag, common_NewTag_ec))}; + if (!common_NewTag_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure NewTag member TypeIdentifier inconsistent."); + return; + } + MemberName name_NewTag = "NewTag"; + eprosima::fastcdr::optional member_ann_builtin_NewTag; + ann_custom_LicenseSnapUpdate.reset(); + CompleteMemberDetail detail_NewTag = TypeObjectUtils::build_complete_member_detail(name_NewTag, member_ann_builtin_NewTag, ann_custom_LicenseSnapUpdate); + CompleteStructMember member_NewTag = TypeObjectUtils::build_complete_struct_member(common_NewTag, detail_NewTag); + TypeObjectUtils::add_complete_struct_member(member_seq_LicenseSnapUpdate, member_NewTag); + } + { + TypeIdentifierPair type_ids_License; + ReturnCode_t return_code_License {eprosima::fastdds::dds::RETCODE_OK}; + return_code_License = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_License); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_License) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_License)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_License = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_License = 0x00000001; + bool common_License_ec {false}; + CommonStructMember common_License {TypeObjectUtils::build_common_struct_member(member_id_License, member_flags_License, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_License, common_License_ec))}; + if (!common_License_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure License member TypeIdentifier inconsistent."); + return; + } + MemberName name_License = "License"; + eprosima::fastcdr::optional member_ann_builtin_License; + ann_custom_LicenseSnapUpdate.reset(); + CompleteMemberDetail detail_License = TypeObjectUtils::build_complete_member_detail(name_License, member_ann_builtin_License, ann_custom_LicenseSnapUpdate); + CompleteStructMember member_License = TypeObjectUtils::build_complete_struct_member(common_License, detail_License); + TypeObjectUtils::add_complete_struct_member(member_seq_LicenseSnapUpdate, member_License); + } + CompleteStructType struct_type_LicenseSnapUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_LicenseSnapUpdate, header_LicenseSnapUpdate, member_seq_LicenseSnapUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_LicenseSnapUpdate, type_name_LicenseSnapUpdate.to_string(), type_ids_LicenseSnapUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::LicenseSnapUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_Voice_type_identifier( + TypeIdentifierPair& type_ids_Voice) +{ + + ReturnCode_t return_code_Voice {eprosima::fastdds::dds::RETCODE_OK}; + return_code_Voice = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::Voice", type_ids_Voice); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_Voice) + { + StructTypeFlag struct_flags_Voice = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_Voice = "WeighingSystem::Voice"; + eprosima::fastcdr::optional type_ann_builtin_Voice; + eprosima::fastcdr::optional ann_custom_Voice; + CompleteTypeDetail detail_Voice = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_Voice, ann_custom_Voice, type_name_Voice.to_string()); + CompleteStructHeader header_Voice; + header_Voice = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_Voice); + CompleteStructMemberSeq member_seq_Voice; + { + TypeIdentifierPair type_ids_VoiceID; + ReturnCode_t return_code_VoiceID {eprosima::fastdds::dds::RETCODE_OK}; + return_code_VoiceID = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_VoiceID); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_VoiceID) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "VoiceID Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_VoiceID = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_VoiceID = 0x00000000; + bool common_VoiceID_ec {false}; + CommonStructMember common_VoiceID {TypeObjectUtils::build_common_struct_member(member_id_VoiceID, member_flags_VoiceID, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_VoiceID, common_VoiceID_ec))}; + if (!common_VoiceID_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure VoiceID member TypeIdentifier inconsistent."); + return; + } + MemberName name_VoiceID = "VoiceID"; + eprosima::fastcdr::optional member_ann_builtin_VoiceID; + ann_custom_Voice.reset(); + CompleteMemberDetail detail_VoiceID = TypeObjectUtils::build_complete_member_detail(name_VoiceID, member_ann_builtin_VoiceID, ann_custom_Voice); + CompleteStructMember member_VoiceID = TypeObjectUtils::build_complete_struct_member(common_VoiceID, detail_VoiceID); + TypeObjectUtils::add_complete_struct_member(member_seq_Voice, member_VoiceID); + } + { + TypeIdentifierPair type_ids_VoiceContent; + ReturnCode_t return_code_VoiceContent {eprosima::fastdds::dds::RETCODE_OK}; + return_code_VoiceContent = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_VoiceContent); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_VoiceContent) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_VoiceContent)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_VoiceContent = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_VoiceContent = 0x00000001; + bool common_VoiceContent_ec {false}; + CommonStructMember common_VoiceContent {TypeObjectUtils::build_common_struct_member(member_id_VoiceContent, member_flags_VoiceContent, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_VoiceContent, common_VoiceContent_ec))}; + if (!common_VoiceContent_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure VoiceContent member TypeIdentifier inconsistent."); + return; + } + MemberName name_VoiceContent = "VoiceContent"; + eprosima::fastcdr::optional member_ann_builtin_VoiceContent; + ann_custom_Voice.reset(); + CompleteMemberDetail detail_VoiceContent = TypeObjectUtils::build_complete_member_detail(name_VoiceContent, member_ann_builtin_VoiceContent, ann_custom_Voice); + CompleteStructMember member_VoiceContent = TypeObjectUtils::build_complete_struct_member(common_VoiceContent, detail_VoiceContent); + TypeObjectUtils::add_complete_struct_member(member_seq_Voice, member_VoiceContent); + } + CompleteStructType struct_type_Voice = TypeObjectUtils::build_complete_struct_type(struct_flags_Voice, header_Voice, member_seq_Voice); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_Voice, type_name_Voice.to_string(), type_ids_Voice)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::Voice already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_SummaryUpdate_type_identifier( + TypeIdentifierPair& type_ids_SummaryUpdate) +{ + + ReturnCode_t return_code_SummaryUpdate {eprosima::fastdds::dds::RETCODE_OK}; + return_code_SummaryUpdate = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::SummaryUpdate", type_ids_SummaryUpdate); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_SummaryUpdate) + { + StructTypeFlag struct_flags_SummaryUpdate = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_SummaryUpdate = "WeighingSystem::SummaryUpdate"; + eprosima::fastcdr::optional type_ann_builtin_SummaryUpdate; + eprosima::fastcdr::optional ann_custom_SummaryUpdate; + CompleteTypeDetail detail_SummaryUpdate = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_SummaryUpdate, ann_custom_SummaryUpdate, type_name_SummaryUpdate.to_string()); + CompleteStructHeader header_SummaryUpdate; + header_SummaryUpdate = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_SummaryUpdate); + CompleteStructMemberSeq member_seq_SummaryUpdate; + { + TypeIdentifierPair type_ids_License; + ReturnCode_t return_code_License {eprosima::fastdds::dds::RETCODE_OK}; + return_code_License = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_License); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_License) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_License)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_License = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_License = 0x00000000; + bool common_License_ec {false}; + CommonStructMember common_License {TypeObjectUtils::build_common_struct_member(member_id_License, member_flags_License, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_License, common_License_ec))}; + if (!common_License_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure License member TypeIdentifier inconsistent."); + return; + } + MemberName name_License = "License"; + eprosima::fastcdr::optional member_ann_builtin_License; + ann_custom_SummaryUpdate.reset(); + CompleteMemberDetail detail_License = TypeObjectUtils::build_complete_member_detail(name_License, member_ann_builtin_License, ann_custom_SummaryUpdate); + CompleteStructMember member_License = TypeObjectUtils::build_complete_struct_member(common_License, detail_License); + TypeObjectUtils::add_complete_struct_member(member_seq_SummaryUpdate, member_License); + } + { + TypeIdentifierPair type_ids_StableValue; + ReturnCode_t return_code_StableValue {eprosima::fastdds::dds::RETCODE_OK}; + return_code_StableValue = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_StableValue); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_StableValue) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "StableValue Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_StableValue = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_StableValue = 0x00000001; + bool common_StableValue_ec {false}; + CommonStructMember common_StableValue {TypeObjectUtils::build_common_struct_member(member_id_StableValue, member_flags_StableValue, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_StableValue, common_StableValue_ec))}; + if (!common_StableValue_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure StableValue member TypeIdentifier inconsistent."); + return; + } + MemberName name_StableValue = "StableValue"; + eprosima::fastcdr::optional member_ann_builtin_StableValue; + ann_custom_SummaryUpdate.reset(); + CompleteMemberDetail detail_StableValue = TypeObjectUtils::build_complete_member_detail(name_StableValue, member_ann_builtin_StableValue, ann_custom_SummaryUpdate); + CompleteStructMember member_StableValue = TypeObjectUtils::build_complete_struct_member(common_StableValue, detail_StableValue); + TypeObjectUtils::add_complete_struct_member(member_seq_SummaryUpdate, member_StableValue); + } + CompleteStructType struct_type_SummaryUpdate = TypeObjectUtils::build_complete_struct_type(struct_flags_SummaryUpdate, header_SummaryUpdate, member_seq_SummaryUpdate); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_SummaryUpdate, type_name_SummaryUpdate.to_string(), type_ids_SummaryUpdate)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::SummaryUpdate already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ReadCardReq_type_identifier( + TypeIdentifierPair& type_ids_ReadCardReq) +{ + + ReturnCode_t return_code_ReadCardReq {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ReadCardReq = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::ReadCardReq", type_ids_ReadCardReq); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ReadCardReq) + { + StructTypeFlag struct_flags_ReadCardReq = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ReadCardReq = "WeighingSystem::ReadCardReq"; + eprosima::fastcdr::optional type_ann_builtin_ReadCardReq; + eprosima::fastcdr::optional ann_custom_ReadCardReq; + CompleteTypeDetail detail_ReadCardReq = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ReadCardReq, ann_custom_ReadCardReq, type_name_ReadCardReq.to_string()); + CompleteStructHeader header_ReadCardReq; + header_ReadCardReq = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ReadCardReq); + CompleteStructMemberSeq member_seq_ReadCardReq; + { + TypeIdentifierPair type_ids_index; + ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; + return_code_index = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint32_t", type_ids_index); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_index = 0x00000000; + bool common_index_ec {false}; + CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; + if (!common_index_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); + return; + } + MemberName name_index = "index"; + eprosima::fastcdr::optional member_ann_builtin_index; + ann_custom_ReadCardReq.reset(); + CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_ReadCardReq); + CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); + TypeObjectUtils::add_complete_struct_member(member_seq_ReadCardReq, member_index); + } + { + TypeIdentifierPair type_ids_msg; + ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_byte_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Sequence element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_sequence_byte_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_byte_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_sequence_byte_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_byte_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_byte_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_msg.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_byte_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_byte_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_byte_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_byte_unbounded, element_flags_anonymous_sequence_byte_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_byte_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_byte_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_byte_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_byte_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec))}; + if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded inconsistent element TypeIdentifier."); + return; + } + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec {false}; + TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec))}; + if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded inconsistent key TypeIdentifier."); + return; + } + EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = EK_BOTH; + if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d()) || + (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || + (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->array_sdefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->array_ldefn().header().equiv_kind()) || + (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_sdefn().header().equiv_kind())) || + (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_ldefn().header().equiv_kind()))) + { + equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = EK_COMPLETE; + } + CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = 0; + CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = 0; + PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded); + { + SBound bound = 0; + PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, + eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_msg = 0x00000001; + bool common_msg_ec {false}; + CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; + if (!common_msg_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); + return; + } + MemberName name_msg = "msg"; + eprosima::fastcdr::optional member_ann_builtin_msg; + ann_custom_ReadCardReq.reset(); + CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_ReadCardReq); + CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); + TypeObjectUtils::add_complete_struct_member(member_seq_ReadCardReq, member_msg); + } + CompleteStructType struct_type_ReadCardReq = TypeObjectUtils::build_complete_struct_type(struct_flags_ReadCardReq, header_ReadCardReq, member_seq_ReadCardReq); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ReadCardReq, type_name_ReadCardReq.to_string(), type_ids_ReadCardReq)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::ReadCardReq already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_ReadCardRsp_type_identifier( + TypeIdentifierPair& type_ids_ReadCardRsp) +{ + + ReturnCode_t return_code_ReadCardRsp {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ReadCardRsp = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::ReadCardRsp", type_ids_ReadCardRsp); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ReadCardRsp) + { + StructTypeFlag struct_flags_ReadCardRsp = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_ReadCardRsp = "WeighingSystem::ReadCardRsp"; + eprosima::fastcdr::optional type_ann_builtin_ReadCardRsp; + eprosima::fastcdr::optional ann_custom_ReadCardRsp; + CompleteTypeDetail detail_ReadCardRsp = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_ReadCardRsp, ann_custom_ReadCardRsp, type_name_ReadCardRsp.to_string()); + CompleteStructHeader header_ReadCardRsp; + header_ReadCardRsp = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_ReadCardRsp); + CompleteStructMemberSeq member_seq_ReadCardRsp; + { + TypeIdentifierPair type_ids_index; + ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; + return_code_index = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint32_t", type_ids_index); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_index = 0x00000000; + bool common_index_ec {false}; + CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; + if (!common_index_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); + return; + } + MemberName name_index = "index"; + eprosima::fastcdr::optional member_ann_builtin_index; + ann_custom_ReadCardRsp.reset(); + CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_ReadCardRsp); + CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); + TypeObjectUtils::add_complete_struct_member(member_seq_ReadCardRsp, member_index); + } + { + TypeIdentifierPair type_ids_msg; + ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_sequence_byte_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_byte", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Sequence element TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + bool element_identifier_anonymous_sequence_byte_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_sequence_byte_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_sequence_byte_unbounded_ec))}; + if (!element_identifier_anonymous_sequence_byte_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Sequence element TypeIdentifier inconsistent."); + return; + } + EquivalenceKind equiv_kind_anonymous_sequence_byte_unbounded = EK_COMPLETE; + if (TK_NONE == type_ids_msg.type_identifier2()._d()) + { + equiv_kind_anonymous_sequence_byte_unbounded = EK_BOTH; + } + CollectionElementFlag element_flags_anonymous_sequence_byte_unbounded = 0; + PlainCollectionHeader header_anonymous_sequence_byte_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_sequence_byte_unbounded, element_flags_anonymous_sequence_byte_unbounded); + { + SBound bound = 0; + PlainSequenceSElemDefn seq_sdefn = TypeObjectUtils::build_plain_sequence_s_elem_defn(header_anonymous_sequence_byte_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_sequence_byte_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_sequence_type_identifier(seq_sdefn, "anonymous_sequence_byte_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_sequence_byte_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec))}; + if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded inconsistent element TypeIdentifier."); + return; + } + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec {false}; + TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec))}; + if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded inconsistent key TypeIdentifier."); + return; + } + EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = EK_BOTH; + if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d()) || + (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || + (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->array_sdefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->array_ldefn().header().equiv_kind()) || + (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_sdefn().header().equiv_kind())) || + (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded->map_ldefn().header().equiv_kind()))) + { + equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = EK_COMPLETE; + } + CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = 0; + CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = 0; + PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded); + { + SBound bound = 0; + PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded, + eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_sequence_byte_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_msg = 0x00000001; + bool common_msg_ec {false}; + CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; + if (!common_msg_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); + return; + } + MemberName name_msg = "msg"; + eprosima::fastcdr::optional member_ann_builtin_msg; + ann_custom_ReadCardRsp.reset(); + CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_ReadCardRsp); + CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); + TypeObjectUtils::add_complete_struct_member(member_seq_ReadCardRsp, member_msg); + } + CompleteStructType struct_type_ReadCardRsp = TypeObjectUtils::build_complete_struct_type(struct_flags_ReadCardRsp, header_ReadCardRsp, member_seq_ReadCardRsp); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_ReadCardRsp, type_name_ReadCardRsp.to_string(), type_ids_ReadCardRsp)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::ReadCardRsp already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_PrintReq_type_identifier( + TypeIdentifierPair& type_ids_PrintReq) +{ + + ReturnCode_t return_code_PrintReq {eprosima::fastdds::dds::RETCODE_OK}; + return_code_PrintReq = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::PrintReq", type_ids_PrintReq); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_PrintReq) + { + StructTypeFlag struct_flags_PrintReq = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_PrintReq = "WeighingSystem::PrintReq"; + eprosima::fastcdr::optional type_ann_builtin_PrintReq; + eprosima::fastcdr::optional ann_custom_PrintReq; + CompleteTypeDetail detail_PrintReq = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_PrintReq, ann_custom_PrintReq, type_name_PrintReq.to_string()); + CompleteStructHeader header_PrintReq; + header_PrintReq = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_PrintReq); + CompleteStructMemberSeq member_seq_PrintReq; + { + TypeIdentifierPair type_ids_index; + ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; + return_code_index = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint32_t", type_ids_index); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_index = 0x00000000; + bool common_index_ec {false}; + CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; + if (!common_index_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); + return; + } + MemberName name_index = "index"; + eprosima::fastcdr::optional member_ann_builtin_index; + ann_custom_PrintReq.reset(); + CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_PrintReq); + CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); + TypeObjectUtils::add_complete_struct_member(member_seq_PrintReq, member_index); + } + { + TypeIdentifierPair type_ids_msg; + ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; + TypeIdentifier* element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; + if (!element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent element TypeIdentifier."); + return; + } + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + bool key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec {false}; + TypeIdentifier* key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded {new TypeIdentifier(TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec))}; + if (!key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded inconsistent key TypeIdentifier."); + return; + } + EquivalenceKind equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_BOTH; + if ((EK_COMPLETE == key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d()) || + (TI_PLAIN_SEQUENCE_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_sdefn().header().equiv_kind()) || + (TI_PLAIN_SEQUENCE_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->seq_ldefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_sdefn().header().equiv_kind()) || + (TI_PLAIN_ARRAY_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->array_ldefn().header().equiv_kind()) || + (TI_PLAIN_MAP_SMALL == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_sdefn().header().equiv_kind())) || + (TI_PLAIN_MAP_LARGE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->_d() && (EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().key_identifier()->_d() || EK_COMPLETE == element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded->map_ldefn().header().equiv_kind()))) + { + equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = EK_COMPLETE; + } + CollectionElementFlag element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; + CollectionElementFlag key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = 0; + PlainCollectionHeader header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded = TypeObjectUtils::build_plain_collection_header(equiv_kind_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, element_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded); + { + SBound bound = 0; + PlainMapSTypeDefn map_sdefn = TypeObjectUtils::build_plain_map_s_type_defn(header_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, bound, + eprosima::fastcdr::external(element_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded), key_flags_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded, + eprosima::fastcdr::external(key_identifier_anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded)); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_map_type_identifier(map_sdefn, "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_map_anonymous_string_unbounded_anonymous_string_unbounded_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_msg = 0x00000001; + bool common_msg_ec {false}; + CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; + if (!common_msg_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); + return; + } + MemberName name_msg = "msg"; + eprosima::fastcdr::optional member_ann_builtin_msg; + ann_custom_PrintReq.reset(); + CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_PrintReq); + CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); + TypeObjectUtils::add_complete_struct_member(member_seq_PrintReq, member_msg); + } + CompleteStructType struct_type_PrintReq = TypeObjectUtils::build_complete_struct_type(struct_flags_PrintReq, header_PrintReq, member_seq_PrintReq); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_PrintReq, type_name_PrintReq.to_string(), type_ids_PrintReq)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::PrintReq already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_PrintRsp_type_identifier( + TypeIdentifierPair& type_ids_PrintRsp) +{ + + ReturnCode_t return_code_PrintRsp {eprosima::fastdds::dds::RETCODE_OK}; + return_code_PrintRsp = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "WeighingSystem::PrintRsp", type_ids_PrintRsp); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_PrintRsp) + { + StructTypeFlag struct_flags_PrintRsp = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_PrintRsp = "WeighingSystem::PrintRsp"; + eprosima::fastcdr::optional type_ann_builtin_PrintRsp; + eprosima::fastcdr::optional ann_custom_PrintRsp; + CompleteTypeDetail detail_PrintRsp = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_PrintRsp, ann_custom_PrintRsp, type_name_PrintRsp.to_string()); + CompleteStructHeader header_PrintRsp; + header_PrintRsp = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_PrintRsp); + CompleteStructMemberSeq member_seq_PrintRsp; + { + TypeIdentifierPair type_ids_index; + ReturnCode_t return_code_index {eprosima::fastdds::dds::RETCODE_OK}; + return_code_index = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_uint32_t", type_ids_index); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_index) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "index Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_index = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_index = 0x00000000; + bool common_index_ec {false}; + CommonStructMember common_index {TypeObjectUtils::build_common_struct_member(member_id_index, member_flags_index, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_index, common_index_ec))}; + if (!common_index_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure index member TypeIdentifier inconsistent."); + return; + } + MemberName name_index = "index"; + eprosima::fastcdr::optional member_ann_builtin_index; + ann_custom_PrintRsp.reset(); + CompleteMemberDetail detail_index = TypeObjectUtils::build_complete_member_detail(name_index, member_ann_builtin_index, ann_custom_PrintRsp); + CompleteStructMember member_index = TypeObjectUtils::build_complete_struct_member(common_index, detail_index); + TypeObjectUtils::add_complete_struct_member(member_seq_PrintRsp, member_index); + } + { + TypeIdentifierPair type_ids_msg; + ReturnCode_t return_code_msg {eprosima::fastdds::dds::RETCODE_OK}; + return_code_msg = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_msg); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_msg) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_msg)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_msg = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_msg = 0x00000001; + bool common_msg_ec {false}; + CommonStructMember common_msg {TypeObjectUtils::build_common_struct_member(member_id_msg, member_flags_msg, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_msg, common_msg_ec))}; + if (!common_msg_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure msg member TypeIdentifier inconsistent."); + return; + } + MemberName name_msg = "msg"; + eprosima::fastcdr::optional member_ann_builtin_msg; + ann_custom_PrintRsp.reset(); + CompleteMemberDetail detail_msg = TypeObjectUtils::build_complete_member_detail(name_msg, member_ann_builtin_msg, ann_custom_PrintRsp); + CompleteStructMember member_msg = TypeObjectUtils::build_complete_struct_member(common_msg, detail_msg); + TypeObjectUtils::add_complete_struct_member(member_seq_PrintRsp, member_msg); + } + CompleteStructType struct_type_PrintRsp = TypeObjectUtils::build_complete_struct_type(struct_flags_PrintRsp, header_PrintRsp, member_seq_PrintRsp); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_PrintRsp, type_name_PrintRsp.to_string(), type_ids_PrintRsp)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "WeighingSystem::PrintRsp already registered in TypeObjectRegistry for a different type."); + } + } +} + +} // namespace WeighingSystem +namespace Queue { +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_QueueTrigger_type_identifier( + TypeIdentifierPair& type_ids_QueueTrigger) +{ + + ReturnCode_t return_code_QueueTrigger {eprosima::fastdds::dds::RETCODE_OK}; + return_code_QueueTrigger = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Queue::QueueTrigger", type_ids_QueueTrigger); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_QueueTrigger) + { + StructTypeFlag struct_flags_QueueTrigger = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_QueueTrigger = "Queue::QueueTrigger"; + eprosima::fastcdr::optional type_ann_builtin_QueueTrigger; + eprosima::fastcdr::optional ann_custom_QueueTrigger; + CompleteTypeDetail detail_QueueTrigger = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_QueueTrigger, ann_custom_QueueTrigger, type_name_QueueTrigger.to_string()); + CompleteStructHeader header_QueueTrigger; + header_QueueTrigger = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_QueueTrigger); + CompleteStructMemberSeq member_seq_QueueTrigger; + { + TypeIdentifierPair type_ids_message_id; + ReturnCode_t return_code_message_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_message_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_message_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_message_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_message_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_message_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_message_id = 0x00000000; + bool common_message_id_ec {false}; + CommonStructMember common_message_id {TypeObjectUtils::build_common_struct_member(member_id_message_id, member_flags_message_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_message_id, common_message_id_ec))}; + if (!common_message_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure message_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_message_id = "message_id"; + eprosima::fastcdr::optional member_ann_builtin_message_id; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_message_id = TypeObjectUtils::build_complete_member_detail(name_message_id, member_ann_builtin_message_id, ann_custom_QueueTrigger); + CompleteStructMember member_message_id = TypeObjectUtils::build_complete_struct_member(common_message_id, detail_message_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_message_id); + } + { + TypeIdentifierPair type_ids_card_number; + ReturnCode_t return_code_card_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_number = 0x00000001; + bool common_card_number_ec {false}; + CommonStructMember common_card_number {TypeObjectUtils::build_common_struct_member(member_id_card_number, member_flags_card_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_number, common_card_number_ec))}; + if (!common_card_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_number = "card_number"; + eprosima::fastcdr::optional member_ann_builtin_card_number; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_card_number = TypeObjectUtils::build_complete_member_detail(name_card_number, member_ann_builtin_card_number, ann_custom_QueueTrigger); + CompleteStructMember member_card_number = TypeObjectUtils::build_complete_struct_member(common_card_number, detail_card_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_card_number); + } + { + TypeIdentifierPair type_ids_device_id; + ReturnCode_t return_code_device_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_device_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_device_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_device_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_device_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_device_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_device_id = 0x00000002; + bool common_device_id_ec {false}; + CommonStructMember common_device_id {TypeObjectUtils::build_common_struct_member(member_id_device_id, member_flags_device_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_device_id, common_device_id_ec))}; + if (!common_device_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure device_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_device_id = "device_id"; + eprosima::fastcdr::optional member_ann_builtin_device_id; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_device_id = TypeObjectUtils::build_complete_member_detail(name_device_id, member_ann_builtin_device_id, ann_custom_QueueTrigger); + CompleteStructMember member_device_id = TypeObjectUtils::build_complete_struct_member(common_device_id, detail_device_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_device_id); + } + { + TypeIdentifierPair type_ids_trigger_time; + ReturnCode_t return_code_trigger_time {eprosima::fastdds::dds::RETCODE_OK}; + return_code_trigger_time = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_trigger_time); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_trigger_time) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_trigger_time)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_trigger_time = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_trigger_time = 0x00000003; + bool common_trigger_time_ec {false}; + CommonStructMember common_trigger_time {TypeObjectUtils::build_common_struct_member(member_id_trigger_time, member_flags_trigger_time, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_trigger_time, common_trigger_time_ec))}; + if (!common_trigger_time_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure trigger_time member TypeIdentifier inconsistent."); + return; + } + MemberName name_trigger_time = "trigger_time"; + eprosima::fastcdr::optional member_ann_builtin_trigger_time; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_trigger_time = TypeObjectUtils::build_complete_member_detail(name_trigger_time, member_ann_builtin_trigger_time, ann_custom_QueueTrigger); + CompleteStructMember member_trigger_time = TypeObjectUtils::build_complete_struct_member(common_trigger_time, detail_trigger_time); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_trigger_time); + } + { + TypeIdentifierPair type_ids_vehicle_number_snapshot; + ReturnCode_t return_code_vehicle_number_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_number_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_vehicle_number_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_number_snapshot) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_vehicle_number_snapshot)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_vehicle_number_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_number_snapshot = 0x00000004; + bool common_vehicle_number_snapshot_ec {false}; + CommonStructMember common_vehicle_number_snapshot {TypeObjectUtils::build_common_struct_member(member_id_vehicle_number_snapshot, member_flags_vehicle_number_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_number_snapshot, common_vehicle_number_snapshot_ec))}; + if (!common_vehicle_number_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_number_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_number_snapshot = "vehicle_number_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_number_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_vehicle_number_snapshot = TypeObjectUtils::build_complete_member_detail(name_vehicle_number_snapshot, member_ann_builtin_vehicle_number_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_vehicle_number_snapshot = TypeObjectUtils::build_complete_struct_member(common_vehicle_number_snapshot, detail_vehicle_number_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_vehicle_number_snapshot); + } + { + TypeIdentifierPair type_ids_supplier_identity_id_snapshot; + ReturnCode_t return_code_supplier_identity_id_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_supplier_identity_id_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_supplier_identity_id_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_supplier_identity_id_snapshot) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "supplier_identity_id_snapshot Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_supplier_identity_id_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_supplier_identity_id_snapshot = 0x00000005; + bool common_supplier_identity_id_snapshot_ec {false}; + CommonStructMember common_supplier_identity_id_snapshot {TypeObjectUtils::build_common_struct_member(member_id_supplier_identity_id_snapshot, member_flags_supplier_identity_id_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_supplier_identity_id_snapshot, common_supplier_identity_id_snapshot_ec))}; + if (!common_supplier_identity_id_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure supplier_identity_id_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_supplier_identity_id_snapshot = "supplier_identity_id_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_supplier_identity_id_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_supplier_identity_id_snapshot = TypeObjectUtils::build_complete_member_detail(name_supplier_identity_id_snapshot, member_ann_builtin_supplier_identity_id_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_supplier_identity_id_snapshot = TypeObjectUtils::build_complete_struct_member(common_supplier_identity_id_snapshot, detail_supplier_identity_id_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_supplier_identity_id_snapshot); + } + { + TypeIdentifierPair type_ids_goods_id_snapshot; + ReturnCode_t return_code_goods_id_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_goods_id_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_goods_id_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_goods_id_snapshot) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "goods_id_snapshot Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_goods_id_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_goods_id_snapshot = 0x00000006; + bool common_goods_id_snapshot_ec {false}; + CommonStructMember common_goods_id_snapshot {TypeObjectUtils::build_common_struct_member(member_id_goods_id_snapshot, member_flags_goods_id_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_goods_id_snapshot, common_goods_id_snapshot_ec))}; + if (!common_goods_id_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure goods_id_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_goods_id_snapshot = "goods_id_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_goods_id_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_goods_id_snapshot = TypeObjectUtils::build_complete_member_detail(name_goods_id_snapshot, member_ann_builtin_goods_id_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_goods_id_snapshot = TypeObjectUtils::build_complete_struct_member(common_goods_id_snapshot, detail_goods_id_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_goods_id_snapshot); + } + { + TypeIdentifierPair type_ids_ship_net_weight_snapshot; + ReturnCode_t return_code_ship_net_weight_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ship_net_weight_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_ship_net_weight_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ship_net_weight_snapshot) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ship_net_weight_snapshot Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_ship_net_weight_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ship_net_weight_snapshot = 0x00000007; + bool common_ship_net_weight_snapshot_ec {false}; + CommonStructMember common_ship_net_weight_snapshot {TypeObjectUtils::build_common_struct_member(member_id_ship_net_weight_snapshot, member_flags_ship_net_weight_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ship_net_weight_snapshot, common_ship_net_weight_snapshot_ec))}; + if (!common_ship_net_weight_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ship_net_weight_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_ship_net_weight_snapshot = "ship_net_weight_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_ship_net_weight_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_ship_net_weight_snapshot = TypeObjectUtils::build_complete_member_detail(name_ship_net_weight_snapshot, member_ann_builtin_ship_net_weight_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_ship_net_weight_snapshot = TypeObjectUtils::build_complete_struct_member(common_ship_net_weight_snapshot, detail_ship_net_weight_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_ship_net_weight_snapshot); + } + { + TypeIdentifierPair type_ids_card_flow_no_snapshot; + ReturnCode_t return_code_card_flow_no_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_flow_no_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_card_flow_no_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_flow_no_snapshot) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "card_flow_no_snapshot Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_card_flow_no_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_flow_no_snapshot = 0x00000008; + bool common_card_flow_no_snapshot_ec {false}; + CommonStructMember common_card_flow_no_snapshot {TypeObjectUtils::build_common_struct_member(member_id_card_flow_no_snapshot, member_flags_card_flow_no_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_flow_no_snapshot, common_card_flow_no_snapshot_ec))}; + if (!common_card_flow_no_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_flow_no_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_flow_no_snapshot = "card_flow_no_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_card_flow_no_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_card_flow_no_snapshot = TypeObjectUtils::build_complete_member_detail(name_card_flow_no_snapshot, member_ann_builtin_card_flow_no_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_card_flow_no_snapshot = TypeObjectUtils::build_complete_struct_member(common_card_flow_no_snapshot, detail_card_flow_no_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_card_flow_no_snapshot); + } + { + TypeIdentifierPair type_ids_card_type_snapshot; + ReturnCode_t return_code_card_type_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_type_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_type_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_type_snapshot) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_type_snapshot)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_type_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_type_snapshot = 0x00000009; + bool common_card_type_snapshot_ec {false}; + CommonStructMember common_card_type_snapshot {TypeObjectUtils::build_common_struct_member(member_id_card_type_snapshot, member_flags_card_type_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_type_snapshot, common_card_type_snapshot_ec))}; + if (!common_card_type_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_type_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_type_snapshot = "card_type_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_card_type_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_card_type_snapshot = TypeObjectUtils::build_complete_member_detail(name_card_type_snapshot, member_ann_builtin_card_type_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_card_type_snapshot = TypeObjectUtils::build_complete_struct_member(common_card_type_snapshot, detail_card_type_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_card_type_snapshot); + } + { + TypeIdentifierPair type_ids_electronic_tag_snapshot; + ReturnCode_t return_code_electronic_tag_snapshot {eprosima::fastdds::dds::RETCODE_OK}; + return_code_electronic_tag_snapshot = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_electronic_tag_snapshot); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_electronic_tag_snapshot) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_electronic_tag_snapshot)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_electronic_tag_snapshot = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_electronic_tag_snapshot = 0x0000000a; + bool common_electronic_tag_snapshot_ec {false}; + CommonStructMember common_electronic_tag_snapshot {TypeObjectUtils::build_common_struct_member(member_id_electronic_tag_snapshot, member_flags_electronic_tag_snapshot, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_electronic_tag_snapshot, common_electronic_tag_snapshot_ec))}; + if (!common_electronic_tag_snapshot_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure electronic_tag_snapshot member TypeIdentifier inconsistent."); + return; + } + MemberName name_electronic_tag_snapshot = "electronic_tag_snapshot"; + eprosima::fastcdr::optional member_ann_builtin_electronic_tag_snapshot; + ann_custom_QueueTrigger.reset(); + CompleteMemberDetail detail_electronic_tag_snapshot = TypeObjectUtils::build_complete_member_detail(name_electronic_tag_snapshot, member_ann_builtin_electronic_tag_snapshot, ann_custom_QueueTrigger); + CompleteStructMember member_electronic_tag_snapshot = TypeObjectUtils::build_complete_struct_member(common_electronic_tag_snapshot, detail_electronic_tag_snapshot); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueTrigger, member_electronic_tag_snapshot); + } + CompleteStructType struct_type_QueueTrigger = TypeObjectUtils::build_complete_struct_type(struct_flags_QueueTrigger, header_QueueTrigger, member_seq_QueueTrigger); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_QueueTrigger, type_name_QueueTrigger.to_string(), type_ids_QueueTrigger)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Queue::QueueTrigger already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_QueueSuccess_type_identifier( + TypeIdentifierPair& type_ids_QueueSuccess) +{ + + ReturnCode_t return_code_QueueSuccess {eprosima::fastdds::dds::RETCODE_OK}; + return_code_QueueSuccess = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Queue::QueueSuccess", type_ids_QueueSuccess); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_QueueSuccess) + { + StructTypeFlag struct_flags_QueueSuccess = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_QueueSuccess = "Queue::QueueSuccess"; + eprosima::fastcdr::optional type_ann_builtin_QueueSuccess; + eprosima::fastcdr::optional ann_custom_QueueSuccess; + CompleteTypeDetail detail_QueueSuccess = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_QueueSuccess, ann_custom_QueueSuccess, type_name_QueueSuccess.to_string()); + CompleteStructHeader header_QueueSuccess; + header_QueueSuccess = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_QueueSuccess); + CompleteStructMemberSeq member_seq_QueueSuccess; + { + TypeIdentifierPair type_ids_message_id; + ReturnCode_t return_code_message_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_message_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_message_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_message_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_message_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_message_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_message_id = 0x00000000; + bool common_message_id_ec {false}; + CommonStructMember common_message_id {TypeObjectUtils::build_common_struct_member(member_id_message_id, member_flags_message_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_message_id, common_message_id_ec))}; + if (!common_message_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure message_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_message_id = "message_id"; + eprosima::fastcdr::optional member_ann_builtin_message_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_message_id = TypeObjectUtils::build_complete_member_detail(name_message_id, member_ann_builtin_message_id, ann_custom_QueueSuccess); + CompleteStructMember member_message_id = TypeObjectUtils::build_complete_struct_member(common_message_id, detail_message_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_message_id); + } + { + TypeIdentifierPair type_ids_card_number; + ReturnCode_t return_code_card_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_number = 0x00000001; + bool common_card_number_ec {false}; + CommonStructMember common_card_number {TypeObjectUtils::build_common_struct_member(member_id_card_number, member_flags_card_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_number, common_card_number_ec))}; + if (!common_card_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_number = "card_number"; + eprosima::fastcdr::optional member_ann_builtin_card_number; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_card_number = TypeObjectUtils::build_complete_member_detail(name_card_number, member_ann_builtin_card_number, ann_custom_QueueSuccess); + CompleteStructMember member_card_number = TypeObjectUtils::build_complete_struct_member(common_card_number, detail_card_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_card_number); + } + { + TypeIdentifierPair type_ids_device_id; + ReturnCode_t return_code_device_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_device_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_device_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_device_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_device_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_device_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_device_id = 0x00000002; + bool common_device_id_ec {false}; + CommonStructMember common_device_id {TypeObjectUtils::build_common_struct_member(member_id_device_id, member_flags_device_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_device_id, common_device_id_ec))}; + if (!common_device_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure device_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_device_id = "device_id"; + eprosima::fastcdr::optional member_ann_builtin_device_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_device_id = TypeObjectUtils::build_complete_member_detail(name_device_id, member_ann_builtin_device_id, ann_custom_QueueSuccess); + CompleteStructMember member_device_id = TypeObjectUtils::build_complete_struct_member(common_device_id, detail_device_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_device_id); + } + { + TypeIdentifierPair type_ids_result_code; + ReturnCode_t return_code_result_code {eprosima::fastdds::dds::RETCODE_OK}; + return_code_result_code = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_result_code); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_result_code) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "result_code Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_result_code = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_result_code = 0x00000003; + bool common_result_code_ec {false}; + CommonStructMember common_result_code {TypeObjectUtils::build_common_struct_member(member_id_result_code, member_flags_result_code, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_result_code, common_result_code_ec))}; + if (!common_result_code_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure result_code member TypeIdentifier inconsistent."); + return; + } + MemberName name_result_code = "result_code"; + eprosima::fastcdr::optional member_ann_builtin_result_code; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_result_code = TypeObjectUtils::build_complete_member_detail(name_result_code, member_ann_builtin_result_code, ann_custom_QueueSuccess); + CompleteStructMember member_result_code = TypeObjectUtils::build_complete_struct_member(common_result_code, detail_result_code); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_result_code); + } + { + TypeIdentifierPair type_ids_queue_record_id; + ReturnCode_t return_code_queue_record_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_queue_record_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_queue_record_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_queue_record_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "queue_record_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_queue_record_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_queue_record_id = 0x00000004; + bool common_queue_record_id_ec {false}; + CommonStructMember common_queue_record_id {TypeObjectUtils::build_common_struct_member(member_id_queue_record_id, member_flags_queue_record_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_queue_record_id, common_queue_record_id_ec))}; + if (!common_queue_record_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure queue_record_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_queue_record_id = "queue_record_id"; + eprosima::fastcdr::optional member_ann_builtin_queue_record_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_queue_record_id = TypeObjectUtils::build_complete_member_detail(name_queue_record_id, member_ann_builtin_queue_record_id, ann_custom_QueueSuccess); + CompleteStructMember member_queue_record_id = TypeObjectUtils::build_complete_struct_member(common_queue_record_id, detail_queue_record_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_queue_record_id); + } + { + TypeIdentifierPair type_ids_queue_number; + ReturnCode_t return_code_queue_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_queue_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_queue_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_queue_number) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "queue_number Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_queue_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_queue_number = 0x00000005; + bool common_queue_number_ec {false}; + CommonStructMember common_queue_number {TypeObjectUtils::build_common_struct_member(member_id_queue_number, member_flags_queue_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_queue_number, common_queue_number_ec))}; + if (!common_queue_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure queue_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_queue_number = "queue_number"; + eprosima::fastcdr::optional member_ann_builtin_queue_number; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_queue_number = TypeObjectUtils::build_complete_member_detail(name_queue_number, member_ann_builtin_queue_number, ann_custom_QueueSuccess); + CompleteStructMember member_queue_number = TypeObjectUtils::build_complete_struct_member(common_queue_number, detail_queue_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_queue_number); + } + { + TypeIdentifierPair type_ids_sample_machine; + ReturnCode_t return_code_sample_machine {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sample_machine = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_sample_machine); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sample_machine) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_sample_machine)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_sample_machine = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_sample_machine = 0x00000006; + bool common_sample_machine_ec {false}; + CommonStructMember common_sample_machine {TypeObjectUtils::build_common_struct_member(member_id_sample_machine, member_flags_sample_machine, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sample_machine, common_sample_machine_ec))}; + if (!common_sample_machine_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sample_machine member TypeIdentifier inconsistent."); + return; + } + MemberName name_sample_machine = "sample_machine"; + eprosima::fastcdr::optional member_ann_builtin_sample_machine; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_sample_machine = TypeObjectUtils::build_complete_member_detail(name_sample_machine, member_ann_builtin_sample_machine, ann_custom_QueueSuccess); + CompleteStructMember member_sample_machine = TypeObjectUtils::build_complete_struct_member(common_sample_machine, detail_sample_machine); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_sample_machine); + } + { + TypeIdentifierPair type_ids_queue_time; + ReturnCode_t return_code_queue_time {eprosima::fastdds::dds::RETCODE_OK}; + return_code_queue_time = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_queue_time); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_queue_time) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_queue_time)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_queue_time = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_queue_time = 0x00000007; + bool common_queue_time_ec {false}; + CommonStructMember common_queue_time {TypeObjectUtils::build_common_struct_member(member_id_queue_time, member_flags_queue_time, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_queue_time, common_queue_time_ec))}; + if (!common_queue_time_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure queue_time member TypeIdentifier inconsistent."); + return; + } + MemberName name_queue_time = "queue_time"; + eprosima::fastcdr::optional member_ann_builtin_queue_time; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_queue_time = TypeObjectUtils::build_complete_member_detail(name_queue_time, member_ann_builtin_queue_time, ann_custom_QueueSuccess); + CompleteStructMember member_queue_time = TypeObjectUtils::build_complete_struct_member(common_queue_time, detail_queue_time); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_queue_time); + } + { + TypeIdentifierPair type_ids_ticket_number; + ReturnCode_t return_code_ticket_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ticket_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_ticket_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ticket_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_ticket_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_ticket_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ticket_number = 0x00000008; + bool common_ticket_number_ec {false}; + CommonStructMember common_ticket_number {TypeObjectUtils::build_common_struct_member(member_id_ticket_number, member_flags_ticket_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ticket_number, common_ticket_number_ec))}; + if (!common_ticket_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ticket_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_ticket_number = "ticket_number"; + eprosima::fastcdr::optional member_ann_builtin_ticket_number; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_ticket_number = TypeObjectUtils::build_complete_member_detail(name_ticket_number, member_ann_builtin_ticket_number, ann_custom_QueueSuccess); + CompleteStructMember member_ticket_number = TypeObjectUtils::build_complete_struct_member(common_ticket_number, detail_ticket_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_ticket_number); + } + { + TypeIdentifierPair type_ids_sample_code; + ReturnCode_t return_code_sample_code {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sample_code = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_sample_code); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sample_code) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "sample_code Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_sample_code = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_sample_code = 0x00000009; + bool common_sample_code_ec {false}; + CommonStructMember common_sample_code {TypeObjectUtils::build_common_struct_member(member_id_sample_code, member_flags_sample_code, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sample_code, common_sample_code_ec))}; + if (!common_sample_code_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sample_code member TypeIdentifier inconsistent."); + return; + } + MemberName name_sample_code = "sample_code"; + eprosima::fastcdr::optional member_ann_builtin_sample_code; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_sample_code = TypeObjectUtils::build_complete_member_detail(name_sample_code, member_ann_builtin_sample_code, ann_custom_QueueSuccess); + CompleteStructMember member_sample_code = TypeObjectUtils::build_complete_struct_member(common_sample_code, detail_sample_code); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_sample_code); + } + { + TypeIdentifierPair type_ids_vehicle_number; + ReturnCode_t return_code_vehicle_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_vehicle_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_vehicle_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_vehicle_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_number = 0x0000000a; + bool common_vehicle_number_ec {false}; + CommonStructMember common_vehicle_number {TypeObjectUtils::build_common_struct_member(member_id_vehicle_number, member_flags_vehicle_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_number, common_vehicle_number_ec))}; + if (!common_vehicle_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_number = "vehicle_number"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_number; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_vehicle_number = TypeObjectUtils::build_complete_member_detail(name_vehicle_number, member_ann_builtin_vehicle_number, ann_custom_QueueSuccess); + CompleteStructMember member_vehicle_number = TypeObjectUtils::build_complete_struct_member(common_vehicle_number, detail_vehicle_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_vehicle_number); + } + { + TypeIdentifierPair type_ids_vehicle_self_no; + ReturnCode_t return_code_vehicle_self_no {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_self_no = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_vehicle_self_no); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_self_no) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "vehicle_self_no Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_vehicle_self_no = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_self_no = 0x0000000b; + bool common_vehicle_self_no_ec {false}; + CommonStructMember common_vehicle_self_no {TypeObjectUtils::build_common_struct_member(member_id_vehicle_self_no, member_flags_vehicle_self_no, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_self_no, common_vehicle_self_no_ec))}; + if (!common_vehicle_self_no_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_self_no member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_self_no = "vehicle_self_no"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_self_no; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_vehicle_self_no = TypeObjectUtils::build_complete_member_detail(name_vehicle_self_no, member_ann_builtin_vehicle_self_no, ann_custom_QueueSuccess); + CompleteStructMember member_vehicle_self_no = TypeObjectUtils::build_complete_struct_member(common_vehicle_self_no, detail_vehicle_self_no); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_vehicle_self_no); + } + { + TypeIdentifierPair type_ids_vehicle_type_id; + ReturnCode_t return_code_vehicle_type_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_type_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_vehicle_type_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_type_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "vehicle_type_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_vehicle_type_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_type_id = 0x0000000c; + bool common_vehicle_type_id_ec {false}; + CommonStructMember common_vehicle_type_id {TypeObjectUtils::build_common_struct_member(member_id_vehicle_type_id, member_flags_vehicle_type_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_type_id, common_vehicle_type_id_ec))}; + if (!common_vehicle_type_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_type_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_type_id = "vehicle_type_id"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_type_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_vehicle_type_id = TypeObjectUtils::build_complete_member_detail(name_vehicle_type_id, member_ann_builtin_vehicle_type_id, ann_custom_QueueSuccess); + CompleteStructMember member_vehicle_type_id = TypeObjectUtils::build_complete_struct_member(common_vehicle_type_id, detail_vehicle_type_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_vehicle_type_id); + } + { + TypeIdentifierPair type_ids_supplier_identity_id; + ReturnCode_t return_code_supplier_identity_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_supplier_identity_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_supplier_identity_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_supplier_identity_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "supplier_identity_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_supplier_identity_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_supplier_identity_id = 0x0000000d; + bool common_supplier_identity_id_ec {false}; + CommonStructMember common_supplier_identity_id {TypeObjectUtils::build_common_struct_member(member_id_supplier_identity_id, member_flags_supplier_identity_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_supplier_identity_id, common_supplier_identity_id_ec))}; + if (!common_supplier_identity_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure supplier_identity_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_supplier_identity_id = "supplier_identity_id"; + eprosima::fastcdr::optional member_ann_builtin_supplier_identity_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_supplier_identity_id = TypeObjectUtils::build_complete_member_detail(name_supplier_identity_id, member_ann_builtin_supplier_identity_id, ann_custom_QueueSuccess); + CompleteStructMember member_supplier_identity_id = TypeObjectUtils::build_complete_struct_member(common_supplier_identity_id, detail_supplier_identity_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_supplier_identity_id); + } + { + TypeIdentifierPair type_ids_supplier_identity_name; + ReturnCode_t return_code_supplier_identity_name {eprosima::fastdds::dds::RETCODE_OK}; + return_code_supplier_identity_name = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_supplier_identity_name); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_supplier_identity_name) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_supplier_identity_name)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_supplier_identity_name = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_supplier_identity_name = 0x0000000e; + bool common_supplier_identity_name_ec {false}; + CommonStructMember common_supplier_identity_name {TypeObjectUtils::build_common_struct_member(member_id_supplier_identity_name, member_flags_supplier_identity_name, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_supplier_identity_name, common_supplier_identity_name_ec))}; + if (!common_supplier_identity_name_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure supplier_identity_name member TypeIdentifier inconsistent."); + return; + } + MemberName name_supplier_identity_name = "supplier_identity_name"; + eprosima::fastcdr::optional member_ann_builtin_supplier_identity_name; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_supplier_identity_name = TypeObjectUtils::build_complete_member_detail(name_supplier_identity_name, member_ann_builtin_supplier_identity_name, ann_custom_QueueSuccess); + CompleteStructMember member_supplier_identity_name = TypeObjectUtils::build_complete_struct_member(common_supplier_identity_name, detail_supplier_identity_name); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_supplier_identity_name); + } + { + TypeIdentifierPair type_ids_supplier_id; + ReturnCode_t return_code_supplier_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_supplier_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_supplier_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_supplier_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "supplier_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_supplier_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_supplier_id = 0x0000000f; + bool common_supplier_id_ec {false}; + CommonStructMember common_supplier_id {TypeObjectUtils::build_common_struct_member(member_id_supplier_id, member_flags_supplier_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_supplier_id, common_supplier_id_ec))}; + if (!common_supplier_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure supplier_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_supplier_id = "supplier_id"; + eprosima::fastcdr::optional member_ann_builtin_supplier_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_supplier_id = TypeObjectUtils::build_complete_member_detail(name_supplier_id, member_ann_builtin_supplier_id, ann_custom_QueueSuccess); + CompleteStructMember member_supplier_id = TypeObjectUtils::build_complete_struct_member(common_supplier_id, detail_supplier_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_supplier_id); + } + { + TypeIdentifierPair type_ids_supplier_name; + ReturnCode_t return_code_supplier_name {eprosima::fastdds::dds::RETCODE_OK}; + return_code_supplier_name = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_supplier_name); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_supplier_name) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_supplier_name)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_supplier_name = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_supplier_name = 0x00000010; + bool common_supplier_name_ec {false}; + CommonStructMember common_supplier_name {TypeObjectUtils::build_common_struct_member(member_id_supplier_name, member_flags_supplier_name, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_supplier_name, common_supplier_name_ec))}; + if (!common_supplier_name_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure supplier_name member TypeIdentifier inconsistent."); + return; + } + MemberName name_supplier_name = "supplier_name"; + eprosima::fastcdr::optional member_ann_builtin_supplier_name; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_supplier_name = TypeObjectUtils::build_complete_member_detail(name_supplier_name, member_ann_builtin_supplier_name, ann_custom_QueueSuccess); + CompleteStructMember member_supplier_name = TypeObjectUtils::build_complete_struct_member(common_supplier_name, detail_supplier_name); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_supplier_name); + } + { + TypeIdentifierPair type_ids_goods_id; + ReturnCode_t return_code_goods_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_goods_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_goods_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_goods_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "goods_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_goods_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_goods_id = 0x00000011; + bool common_goods_id_ec {false}; + CommonStructMember common_goods_id {TypeObjectUtils::build_common_struct_member(member_id_goods_id, member_flags_goods_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_goods_id, common_goods_id_ec))}; + if (!common_goods_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure goods_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_goods_id = "goods_id"; + eprosima::fastcdr::optional member_ann_builtin_goods_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_goods_id = TypeObjectUtils::build_complete_member_detail(name_goods_id, member_ann_builtin_goods_id, ann_custom_QueueSuccess); + CompleteStructMember member_goods_id = TypeObjectUtils::build_complete_struct_member(common_goods_id, detail_goods_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_goods_id); + } + { + TypeIdentifierPair type_ids_goods_name; + ReturnCode_t return_code_goods_name {eprosima::fastdds::dds::RETCODE_OK}; + return_code_goods_name = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_goods_name); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_goods_name) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_goods_name)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_goods_name = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_goods_name = 0x00000012; + bool common_goods_name_ec {false}; + CommonStructMember common_goods_name {TypeObjectUtils::build_common_struct_member(member_id_goods_name, member_flags_goods_name, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_goods_name, common_goods_name_ec))}; + if (!common_goods_name_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure goods_name member TypeIdentifier inconsistent."); + return; + } + MemberName name_goods_name = "goods_name"; + eprosima::fastcdr::optional member_ann_builtin_goods_name; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_goods_name = TypeObjectUtils::build_complete_member_detail(name_goods_name, member_ann_builtin_goods_name, ann_custom_QueueSuccess); + CompleteStructMember member_goods_name = TypeObjectUtils::build_complete_struct_member(common_goods_name, detail_goods_name); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_goods_name); + } + { + TypeIdentifierPair type_ids_unit_id; + ReturnCode_t return_code_unit_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_unit_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_unit_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_unit_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "unit_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_unit_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_unit_id = 0x00000013; + bool common_unit_id_ec {false}; + CommonStructMember common_unit_id {TypeObjectUtils::build_common_struct_member(member_id_unit_id, member_flags_unit_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_unit_id, common_unit_id_ec))}; + if (!common_unit_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure unit_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_unit_id = "unit_id"; + eprosima::fastcdr::optional member_ann_builtin_unit_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_unit_id = TypeObjectUtils::build_complete_member_detail(name_unit_id, member_ann_builtin_unit_id, ann_custom_QueueSuccess); + CompleteStructMember member_unit_id = TypeObjectUtils::build_complete_struct_member(common_unit_id, detail_unit_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_unit_id); + } + { + TypeIdentifierPair type_ids_transport_company_id; + ReturnCode_t return_code_transport_company_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_transport_company_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_transport_company_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_transport_company_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "transport_company_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_transport_company_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_transport_company_id = 0x00000014; + bool common_transport_company_id_ec {false}; + CommonStructMember common_transport_company_id {TypeObjectUtils::build_common_struct_member(member_id_transport_company_id, member_flags_transport_company_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_transport_company_id, common_transport_company_id_ec))}; + if (!common_transport_company_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure transport_company_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_transport_company_id = "transport_company_id"; + eprosima::fastcdr::optional member_ann_builtin_transport_company_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_transport_company_id = TypeObjectUtils::build_complete_member_detail(name_transport_company_id, member_ann_builtin_transport_company_id, ann_custom_QueueSuccess); + CompleteStructMember member_transport_company_id = TypeObjectUtils::build_complete_struct_member(common_transport_company_id, detail_transport_company_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_transport_company_id); + } + { + TypeIdentifierPair type_ids_sample_type; + ReturnCode_t return_code_sample_type {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sample_type = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_sample_type); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sample_type) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "sample_type Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_sample_type = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_sample_type = 0x00000015; + bool common_sample_type_ec {false}; + CommonStructMember common_sample_type {TypeObjectUtils::build_common_struct_member(member_id_sample_type, member_flags_sample_type, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sample_type, common_sample_type_ec))}; + if (!common_sample_type_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sample_type member TypeIdentifier inconsistent."); + return; + } + MemberName name_sample_type = "sample_type"; + eprosima::fastcdr::optional member_ann_builtin_sample_type; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_sample_type = TypeObjectUtils::build_complete_member_detail(name_sample_type, member_ann_builtin_sample_type, ann_custom_QueueSuccess); + CompleteStructMember member_sample_type = TypeObjectUtils::build_complete_struct_member(common_sample_type, detail_sample_type); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_sample_type); + } + { + TypeIdentifierPair type_ids_unloading_point_name; + ReturnCode_t return_code_unloading_point_name {eprosima::fastdds::dds::RETCODE_OK}; + return_code_unloading_point_name = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_unloading_point_name); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_unloading_point_name) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_unloading_point_name)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_unloading_point_name = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_unloading_point_name = 0x00000016; + bool common_unloading_point_name_ec {false}; + CommonStructMember common_unloading_point_name {TypeObjectUtils::build_common_struct_member(member_id_unloading_point_name, member_flags_unloading_point_name, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_unloading_point_name, common_unloading_point_name_ec))}; + if (!common_unloading_point_name_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure unloading_point_name member TypeIdentifier inconsistent."); + return; + } + MemberName name_unloading_point_name = "unloading_point_name"; + eprosima::fastcdr::optional member_ann_builtin_unloading_point_name; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_unloading_point_name = TypeObjectUtils::build_complete_member_detail(name_unloading_point_name, member_ann_builtin_unloading_point_name, ann_custom_QueueSuccess); + CompleteStructMember member_unloading_point_name = TypeObjectUtils::build_complete_struct_member(common_unloading_point_name, detail_unloading_point_name); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_unloading_point_name); + } + { + TypeIdentifierPair type_ids_ship_gross_weight; + ReturnCode_t return_code_ship_gross_weight {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ship_gross_weight = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_ship_gross_weight); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ship_gross_weight) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ship_gross_weight Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_ship_gross_weight = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ship_gross_weight = 0x00000017; + bool common_ship_gross_weight_ec {false}; + CommonStructMember common_ship_gross_weight {TypeObjectUtils::build_common_struct_member(member_id_ship_gross_weight, member_flags_ship_gross_weight, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ship_gross_weight, common_ship_gross_weight_ec))}; + if (!common_ship_gross_weight_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ship_gross_weight member TypeIdentifier inconsistent."); + return; + } + MemberName name_ship_gross_weight = "ship_gross_weight"; + eprosima::fastcdr::optional member_ann_builtin_ship_gross_weight; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_ship_gross_weight = TypeObjectUtils::build_complete_member_detail(name_ship_gross_weight, member_ann_builtin_ship_gross_weight, ann_custom_QueueSuccess); + CompleteStructMember member_ship_gross_weight = TypeObjectUtils::build_complete_struct_member(common_ship_gross_weight, detail_ship_gross_weight); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_ship_gross_weight); + } + { + TypeIdentifierPair type_ids_ship_tare_weight; + ReturnCode_t return_code_ship_tare_weight {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ship_tare_weight = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_ship_tare_weight); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ship_tare_weight) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ship_tare_weight Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_ship_tare_weight = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ship_tare_weight = 0x00000018; + bool common_ship_tare_weight_ec {false}; + CommonStructMember common_ship_tare_weight {TypeObjectUtils::build_common_struct_member(member_id_ship_tare_weight, member_flags_ship_tare_weight, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ship_tare_weight, common_ship_tare_weight_ec))}; + if (!common_ship_tare_weight_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ship_tare_weight member TypeIdentifier inconsistent."); + return; + } + MemberName name_ship_tare_weight = "ship_tare_weight"; + eprosima::fastcdr::optional member_ann_builtin_ship_tare_weight; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_ship_tare_weight = TypeObjectUtils::build_complete_member_detail(name_ship_tare_weight, member_ann_builtin_ship_tare_weight, ann_custom_QueueSuccess); + CompleteStructMember member_ship_tare_weight = TypeObjectUtils::build_complete_struct_member(common_ship_tare_weight, detail_ship_tare_weight); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_ship_tare_weight); + } + { + TypeIdentifierPair type_ids_ship_net_weight; + ReturnCode_t return_code_ship_net_weight {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ship_net_weight = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_float", type_ids_ship_net_weight); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ship_net_weight) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "ship_net_weight Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_ship_net_weight = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ship_net_weight = 0x00000019; + bool common_ship_net_weight_ec {false}; + CommonStructMember common_ship_net_weight {TypeObjectUtils::build_common_struct_member(member_id_ship_net_weight, member_flags_ship_net_weight, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ship_net_weight, common_ship_net_weight_ec))}; + if (!common_ship_net_weight_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ship_net_weight member TypeIdentifier inconsistent."); + return; + } + MemberName name_ship_net_weight = "ship_net_weight"; + eprosima::fastcdr::optional member_ann_builtin_ship_net_weight; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_ship_net_weight = TypeObjectUtils::build_complete_member_detail(name_ship_net_weight, member_ann_builtin_ship_net_weight, ann_custom_QueueSuccess); + CompleteStructMember member_ship_net_weight = TypeObjectUtils::build_complete_struct_member(common_ship_net_weight, detail_ship_net_weight); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_ship_net_weight); + } + { + TypeIdentifierPair type_ids_sample_machine_id; + ReturnCode_t return_code_sample_machine_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sample_machine_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_sample_machine_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sample_machine_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "sample_machine_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_sample_machine_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_sample_machine_id = 0x0000001a; + bool common_sample_machine_id_ec {false}; + CommonStructMember common_sample_machine_id {TypeObjectUtils::build_common_struct_member(member_id_sample_machine_id, member_flags_sample_machine_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sample_machine_id, common_sample_machine_id_ec))}; + if (!common_sample_machine_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sample_machine_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_sample_machine_id = "sample_machine_id"; + eprosima::fastcdr::optional member_ann_builtin_sample_machine_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_sample_machine_id = TypeObjectUtils::build_complete_member_detail(name_sample_machine_id, member_ann_builtin_sample_machine_id, ann_custom_QueueSuccess); + CompleteStructMember member_sample_machine_id = TypeObjectUtils::build_complete_struct_member(common_sample_machine_id, detail_sample_machine_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_sample_machine_id); + } + { + TypeIdentifierPair type_ids_vehicle_lane; + ReturnCode_t return_code_vehicle_lane {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_lane = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_vehicle_lane); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_lane) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_vehicle_lane)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_vehicle_lane = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_lane = 0x0000001b; + bool common_vehicle_lane_ec {false}; + CommonStructMember common_vehicle_lane {TypeObjectUtils::build_common_struct_member(member_id_vehicle_lane, member_flags_vehicle_lane, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_lane, common_vehicle_lane_ec))}; + if (!common_vehicle_lane_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_lane member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_lane = "vehicle_lane"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_lane; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_vehicle_lane = TypeObjectUtils::build_complete_member_detail(name_vehicle_lane, member_ann_builtin_vehicle_lane, ann_custom_QueueSuccess); + CompleteStructMember member_vehicle_lane = TypeObjectUtils::build_complete_struct_member(common_vehicle_lane, detail_vehicle_lane); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_vehicle_lane); + } + { + TypeIdentifierPair type_ids_vehicle_lane_id; + ReturnCode_t return_code_vehicle_lane_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_lane_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_vehicle_lane_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_lane_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "vehicle_lane_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_vehicle_lane_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_lane_id = 0x0000001c; + bool common_vehicle_lane_id_ec {false}; + CommonStructMember common_vehicle_lane_id {TypeObjectUtils::build_common_struct_member(member_id_vehicle_lane_id, member_flags_vehicle_lane_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_lane_id, common_vehicle_lane_id_ec))}; + if (!common_vehicle_lane_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_lane_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_lane_id = "vehicle_lane_id"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_lane_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_vehicle_lane_id = TypeObjectUtils::build_complete_member_detail(name_vehicle_lane_id, member_ann_builtin_vehicle_lane_id, ann_custom_QueueSuccess); + CompleteStructMember member_vehicle_lane_id = TypeObjectUtils::build_complete_struct_member(common_vehicle_lane_id, detail_vehicle_lane_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_vehicle_lane_id); + } + { + TypeIdentifierPair type_ids_strategy_desc; + ReturnCode_t return_code_strategy_desc {eprosima::fastdds::dds::RETCODE_OK}; + return_code_strategy_desc = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_strategy_desc); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_strategy_desc) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_strategy_desc)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_strategy_desc = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_strategy_desc = 0x0000001d; + bool common_strategy_desc_ec {false}; + CommonStructMember common_strategy_desc {TypeObjectUtils::build_common_struct_member(member_id_strategy_desc, member_flags_strategy_desc, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_strategy_desc, common_strategy_desc_ec))}; + if (!common_strategy_desc_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure strategy_desc member TypeIdentifier inconsistent."); + return; + } + MemberName name_strategy_desc = "strategy_desc"; + eprosima::fastcdr::optional member_ann_builtin_strategy_desc; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_strategy_desc = TypeObjectUtils::build_complete_member_detail(name_strategy_desc, member_ann_builtin_strategy_desc, ann_custom_QueueSuccess); + CompleteStructMember member_strategy_desc = TypeObjectUtils::build_complete_struct_member(common_strategy_desc, detail_strategy_desc); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_strategy_desc); + } + { + TypeIdentifierPair type_ids_committed_at; + ReturnCode_t return_code_committed_at {eprosima::fastdds::dds::RETCODE_OK}; + return_code_committed_at = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_committed_at); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_committed_at) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_committed_at)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_committed_at = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_committed_at = 0x0000001e; + bool common_committed_at_ec {false}; + CommonStructMember common_committed_at {TypeObjectUtils::build_common_struct_member(member_id_committed_at, member_flags_committed_at, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_committed_at, common_committed_at_ec))}; + if (!common_committed_at_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure committed_at member TypeIdentifier inconsistent."); + return; + } + MemberName name_committed_at = "committed_at"; + eprosima::fastcdr::optional member_ann_builtin_committed_at; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_committed_at = TypeObjectUtils::build_complete_member_detail(name_committed_at, member_ann_builtin_committed_at, ann_custom_QueueSuccess); + CompleteStructMember member_committed_at = TypeObjectUtils::build_complete_struct_member(common_committed_at, detail_committed_at); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_committed_at); + } + { + TypeIdentifierPair type_ids_display_text; + ReturnCode_t return_code_display_text {eprosima::fastdds::dds::RETCODE_OK}; + return_code_display_text = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_display_text); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_display_text) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_display_text)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_display_text = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_display_text = 0x0000001f; + bool common_display_text_ec {false}; + CommonStructMember common_display_text {TypeObjectUtils::build_common_struct_member(member_id_display_text, member_flags_display_text, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_display_text, common_display_text_ec))}; + if (!common_display_text_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure display_text member TypeIdentifier inconsistent."); + return; + } + MemberName name_display_text = "display_text"; + eprosima::fastcdr::optional member_ann_builtin_display_text; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_display_text = TypeObjectUtils::build_complete_member_detail(name_display_text, member_ann_builtin_display_text, ann_custom_QueueSuccess); + CompleteStructMember member_display_text = TypeObjectUtils::build_complete_struct_member(common_display_text, detail_display_text); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_display_text); + } + { + TypeIdentifierPair type_ids_print_content; + ReturnCode_t return_code_print_content {eprosima::fastdds::dds::RETCODE_OK}; + return_code_print_content = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_print_content); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_print_content) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_print_content)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_print_content = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_print_content = 0x00000020; + bool common_print_content_ec {false}; + CommonStructMember common_print_content {TypeObjectUtils::build_common_struct_member(member_id_print_content, member_flags_print_content, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_print_content, common_print_content_ec))}; + if (!common_print_content_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure print_content member TypeIdentifier inconsistent."); + return; + } + MemberName name_print_content = "print_content"; + eprosima::fastcdr::optional member_ann_builtin_print_content; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_print_content = TypeObjectUtils::build_complete_member_detail(name_print_content, member_ann_builtin_print_content, ann_custom_QueueSuccess); + CompleteStructMember member_print_content = TypeObjectUtils::build_complete_struct_member(common_print_content, detail_print_content); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_print_content); + } + { + TypeIdentifierPair type_ids_print_required; + ReturnCode_t return_code_print_required {eprosima::fastdds::dds::RETCODE_OK}; + return_code_print_required = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_print_required); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_print_required) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "print_required Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_print_required = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_print_required = 0x00000021; + bool common_print_required_ec {false}; + CommonStructMember common_print_required {TypeObjectUtils::build_common_struct_member(member_id_print_required, member_flags_print_required, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_print_required, common_print_required_ec))}; + if (!common_print_required_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure print_required member TypeIdentifier inconsistent."); + return; + } + MemberName name_print_required = "print_required"; + eprosima::fastcdr::optional member_ann_builtin_print_required; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_print_required = TypeObjectUtils::build_complete_member_detail(name_print_required, member_ann_builtin_print_required, ann_custom_QueueSuccess); + CompleteStructMember member_print_required = TypeObjectUtils::build_complete_struct_member(common_print_required, detail_print_required); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_print_required); + } + { + TypeIdentifierPair type_ids_print_count; + ReturnCode_t return_code_print_count {eprosima::fastdds::dds::RETCODE_OK}; + return_code_print_count = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_print_count); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_print_count) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "print_count Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_print_count = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_print_count = 0x00000022; + bool common_print_count_ec {false}; + CommonStructMember common_print_count {TypeObjectUtils::build_common_struct_member(member_id_print_count, member_flags_print_count, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_print_count, common_print_count_ec))}; + if (!common_print_count_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure print_count member TypeIdentifier inconsistent."); + return; + } + MemberName name_print_count = "print_count"; + eprosima::fastcdr::optional member_ann_builtin_print_count; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_print_count = TypeObjectUtils::build_complete_member_detail(name_print_count, member_ann_builtin_print_count, ann_custom_QueueSuccess); + CompleteStructMember member_print_count = TypeObjectUtils::build_complete_struct_member(common_print_count, detail_print_count); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_print_count); + } + { + TypeIdentifierPair type_ids_voice_id; + ReturnCode_t return_code_voice_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_voice_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_voice_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_voice_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "voice_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_voice_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_voice_id = 0x00000023; + bool common_voice_id_ec {false}; + CommonStructMember common_voice_id {TypeObjectUtils::build_common_struct_member(member_id_voice_id, member_flags_voice_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_voice_id, common_voice_id_ec))}; + if (!common_voice_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure voice_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_voice_id = "voice_id"; + eprosima::fastcdr::optional member_ann_builtin_voice_id; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_voice_id = TypeObjectUtils::build_complete_member_detail(name_voice_id, member_ann_builtin_voice_id, ann_custom_QueueSuccess); + CompleteStructMember member_voice_id = TypeObjectUtils::build_complete_struct_member(common_voice_id, detail_voice_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_voice_id); + } + { + TypeIdentifierPair type_ids_voice_text; + ReturnCode_t return_code_voice_text {eprosima::fastdds::dds::RETCODE_OK}; + return_code_voice_text = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_voice_text); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_voice_text) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_voice_text)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_voice_text = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_voice_text = 0x00000024; + bool common_voice_text_ec {false}; + CommonStructMember common_voice_text {TypeObjectUtils::build_common_struct_member(member_id_voice_text, member_flags_voice_text, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_voice_text, common_voice_text_ec))}; + if (!common_voice_text_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure voice_text member TypeIdentifier inconsistent."); + return; + } + MemberName name_voice_text = "voice_text"; + eprosima::fastcdr::optional member_ann_builtin_voice_text; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_voice_text = TypeObjectUtils::build_complete_member_detail(name_voice_text, member_ann_builtin_voice_text, ann_custom_QueueSuccess); + CompleteStructMember member_voice_text = TypeObjectUtils::build_complete_struct_member(common_voice_text, detail_voice_text); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_voice_text); + } + { + TypeIdentifierPair type_ids_is_reprint; + ReturnCode_t return_code_is_reprint {eprosima::fastdds::dds::RETCODE_OK}; + return_code_is_reprint = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_is_reprint); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_is_reprint) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "is_reprint Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_is_reprint = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_is_reprint = 0x00000025; + bool common_is_reprint_ec {false}; + CommonStructMember common_is_reprint {TypeObjectUtils::build_common_struct_member(member_id_is_reprint, member_flags_is_reprint, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_is_reprint, common_is_reprint_ec))}; + if (!common_is_reprint_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure is_reprint member TypeIdentifier inconsistent."); + return; + } + MemberName name_is_reprint = "is_reprint"; + eprosima::fastcdr::optional member_ann_builtin_is_reprint; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_is_reprint = TypeObjectUtils::build_complete_member_detail(name_is_reprint, member_ann_builtin_is_reprint, ann_custom_QueueSuccess); + CompleteStructMember member_is_reprint = TypeObjectUtils::build_complete_struct_member(common_is_reprint, detail_is_reprint); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_is_reprint); + } + { + TypeIdentifierPair type_ids_physical_card_state; + ReturnCode_t return_code_physical_card_state {eprosima::fastdds::dds::RETCODE_OK}; + return_code_physical_card_state = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_physical_card_state); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_physical_card_state) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_physical_card_state)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_physical_card_state = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_physical_card_state = 0x00000026; + bool common_physical_card_state_ec {false}; + CommonStructMember common_physical_card_state {TypeObjectUtils::build_common_struct_member(member_id_physical_card_state, member_flags_physical_card_state, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_physical_card_state, common_physical_card_state_ec))}; + if (!common_physical_card_state_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure physical_card_state member TypeIdentifier inconsistent."); + return; + } + MemberName name_physical_card_state = "physical_card_state"; + eprosima::fastcdr::optional member_ann_builtin_physical_card_state; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_physical_card_state = TypeObjectUtils::build_complete_member_detail(name_physical_card_state, member_ann_builtin_physical_card_state, ann_custom_QueueSuccess); + CompleteStructMember member_physical_card_state = TypeObjectUtils::build_complete_struct_member(common_physical_card_state, detail_physical_card_state); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_physical_card_state); + } + { + TypeIdentifierPair type_ids_card_write_status; + ReturnCode_t return_code_card_write_status {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_write_status = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_write_status); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_write_status) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_write_status)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_write_status = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_write_status = 0x00000027; + bool common_card_write_status_ec {false}; + CommonStructMember common_card_write_status {TypeObjectUtils::build_common_struct_member(member_id_card_write_status, member_flags_card_write_status, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_write_status, common_card_write_status_ec))}; + if (!common_card_write_status_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_write_status member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_write_status = "card_write_status"; + eprosima::fastcdr::optional member_ann_builtin_card_write_status; + ann_custom_QueueSuccess.reset(); + CompleteMemberDetail detail_card_write_status = TypeObjectUtils::build_complete_member_detail(name_card_write_status, member_ann_builtin_card_write_status, ann_custom_QueueSuccess); + CompleteStructMember member_card_write_status = TypeObjectUtils::build_complete_struct_member(common_card_write_status, detail_card_write_status); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueSuccess, member_card_write_status); + } + CompleteStructType struct_type_QueueSuccess = TypeObjectUtils::build_complete_struct_type(struct_flags_QueueSuccess, header_QueueSuccess, member_seq_QueueSuccess); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_QueueSuccess, type_name_QueueSuccess.to_string(), type_ids_QueueSuccess)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Queue::QueueSuccess already registered in TypeObjectRegistry for a different type."); + } + } +} +// TypeIdentifier is returned by reference: dependent structures/unions are registered in this same method +void register_QueueFailure_type_identifier( + TypeIdentifierPair& type_ids_QueueFailure) +{ + + ReturnCode_t return_code_QueueFailure {eprosima::fastdds::dds::RETCODE_OK}; + return_code_QueueFailure = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "Queue::QueueFailure", type_ids_QueueFailure); + if (eprosima::fastdds::dds::RETCODE_OK != return_code_QueueFailure) + { + StructTypeFlag struct_flags_QueueFailure = TypeObjectUtils::build_struct_type_flag(eprosima::fastdds::dds::xtypes::ExtensibilityKind::APPENDABLE, + false, false); + QualifiedTypeName type_name_QueueFailure = "Queue::QueueFailure"; + eprosima::fastcdr::optional type_ann_builtin_QueueFailure; + eprosima::fastcdr::optional ann_custom_QueueFailure; + CompleteTypeDetail detail_QueueFailure = TypeObjectUtils::build_complete_type_detail(type_ann_builtin_QueueFailure, ann_custom_QueueFailure, type_name_QueueFailure.to_string()); + CompleteStructHeader header_QueueFailure; + header_QueueFailure = TypeObjectUtils::build_complete_struct_header(TypeIdentifier(), detail_QueueFailure); + CompleteStructMemberSeq member_seq_QueueFailure; + { + TypeIdentifierPair type_ids_message_id; + ReturnCode_t return_code_message_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_message_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_message_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_message_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_message_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_message_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_message_id = 0x00000000; + bool common_message_id_ec {false}; + CommonStructMember common_message_id {TypeObjectUtils::build_common_struct_member(member_id_message_id, member_flags_message_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_message_id, common_message_id_ec))}; + if (!common_message_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure message_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_message_id = "message_id"; + eprosima::fastcdr::optional member_ann_builtin_message_id; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_message_id = TypeObjectUtils::build_complete_member_detail(name_message_id, member_ann_builtin_message_id, ann_custom_QueueFailure); + CompleteStructMember member_message_id = TypeObjectUtils::build_complete_struct_member(common_message_id, detail_message_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_message_id); + } + { + TypeIdentifierPair type_ids_card_number; + ReturnCode_t return_code_card_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_number = 0x00000001; + bool common_card_number_ec {false}; + CommonStructMember common_card_number {TypeObjectUtils::build_common_struct_member(member_id_card_number, member_flags_card_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_number, common_card_number_ec))}; + if (!common_card_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_number = "card_number"; + eprosima::fastcdr::optional member_ann_builtin_card_number; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_card_number = TypeObjectUtils::build_complete_member_detail(name_card_number, member_ann_builtin_card_number, ann_custom_QueueFailure); + CompleteStructMember member_card_number = TypeObjectUtils::build_complete_struct_member(common_card_number, detail_card_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_card_number); + } + { + TypeIdentifierPair type_ids_device_id; + ReturnCode_t return_code_device_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_device_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_device_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_device_id) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_device_id)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_device_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_device_id = 0x00000002; + bool common_device_id_ec {false}; + CommonStructMember common_device_id {TypeObjectUtils::build_common_struct_member(member_id_device_id, member_flags_device_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_device_id, common_device_id_ec))}; + if (!common_device_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure device_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_device_id = "device_id"; + eprosima::fastcdr::optional member_ann_builtin_device_id; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_device_id = TypeObjectUtils::build_complete_member_detail(name_device_id, member_ann_builtin_device_id, ann_custom_QueueFailure); + CompleteStructMember member_device_id = TypeObjectUtils::build_complete_struct_member(common_device_id, detail_device_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_device_id); + } + { + TypeIdentifierPair type_ids_error_code; + ReturnCode_t return_code_error_code {eprosima::fastdds::dds::RETCODE_OK}; + return_code_error_code = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_error_code); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_error_code) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_error_code)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_error_code = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_error_code = 0x00000003; + bool common_error_code_ec {false}; + CommonStructMember common_error_code {TypeObjectUtils::build_common_struct_member(member_id_error_code, member_flags_error_code, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_error_code, common_error_code_ec))}; + if (!common_error_code_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure error_code member TypeIdentifier inconsistent."); + return; + } + MemberName name_error_code = "error_code"; + eprosima::fastcdr::optional member_ann_builtin_error_code; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_error_code = TypeObjectUtils::build_complete_member_detail(name_error_code, member_ann_builtin_error_code, ann_custom_QueueFailure); + CompleteStructMember member_error_code = TypeObjectUtils::build_complete_struct_member(common_error_code, detail_error_code); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_error_code); + } + { + TypeIdentifierPair type_ids_failed_step; + ReturnCode_t return_code_failed_step {eprosima::fastdds::dds::RETCODE_OK}; + return_code_failed_step = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_failed_step); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_failed_step) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_failed_step)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_failed_step = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_failed_step = 0x00000004; + bool common_failed_step_ec {false}; + CommonStructMember common_failed_step {TypeObjectUtils::build_common_struct_member(member_id_failed_step, member_flags_failed_step, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_failed_step, common_failed_step_ec))}; + if (!common_failed_step_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure failed_step member TypeIdentifier inconsistent."); + return; + } + MemberName name_failed_step = "failed_step"; + eprosima::fastcdr::optional member_ann_builtin_failed_step; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_failed_step = TypeObjectUtils::build_complete_member_detail(name_failed_step, member_ann_builtin_failed_step, ann_custom_QueueFailure); + CompleteStructMember member_failed_step = TypeObjectUtils::build_complete_struct_member(common_failed_step, detail_failed_step); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_failed_step); + } + { + TypeIdentifierPair type_ids_message; + ReturnCode_t return_code_message {eprosima::fastdds::dds::RETCODE_OK}; + return_code_message = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_message); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_message) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_message)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_message = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_message = 0x00000005; + bool common_message_ec {false}; + CommonStructMember common_message {TypeObjectUtils::build_common_struct_member(member_id_message, member_flags_message, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_message, common_message_ec))}; + if (!common_message_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure message member TypeIdentifier inconsistent."); + return; + } + MemberName name_message = "message"; + eprosima::fastcdr::optional member_ann_builtin_message; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_message = TypeObjectUtils::build_complete_member_detail(name_message, member_ann_builtin_message, ann_custom_QueueFailure); + CompleteStructMember member_message = TypeObjectUtils::build_complete_struct_member(common_message, detail_message); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_message); + } + { + TypeIdentifierPair type_ids_vehicle_number; + ReturnCode_t return_code_vehicle_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_vehicle_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_vehicle_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_vehicle_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_vehicle_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_vehicle_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_vehicle_number = 0x00000006; + bool common_vehicle_number_ec {false}; + CommonStructMember common_vehicle_number {TypeObjectUtils::build_common_struct_member(member_id_vehicle_number, member_flags_vehicle_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_vehicle_number, common_vehicle_number_ec))}; + if (!common_vehicle_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure vehicle_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_vehicle_number = "vehicle_number"; + eprosima::fastcdr::optional member_ann_builtin_vehicle_number; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_vehicle_number = TypeObjectUtils::build_complete_member_detail(name_vehicle_number, member_ann_builtin_vehicle_number, ann_custom_QueueFailure); + CompleteStructMember member_vehicle_number = TypeObjectUtils::build_complete_struct_member(common_vehicle_number, detail_vehicle_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_vehicle_number); + } + { + TypeIdentifierPair type_ids_queue_record_id; + ReturnCode_t return_code_queue_record_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_queue_record_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_queue_record_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_queue_record_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "queue_record_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_queue_record_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_queue_record_id = 0x00000007; + bool common_queue_record_id_ec {false}; + CommonStructMember common_queue_record_id {TypeObjectUtils::build_common_struct_member(member_id_queue_record_id, member_flags_queue_record_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_queue_record_id, common_queue_record_id_ec))}; + if (!common_queue_record_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure queue_record_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_queue_record_id = "queue_record_id"; + eprosima::fastcdr::optional member_ann_builtin_queue_record_id; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_queue_record_id = TypeObjectUtils::build_complete_member_detail(name_queue_record_id, member_ann_builtin_queue_record_id, ann_custom_QueueFailure); + CompleteStructMember member_queue_record_id = TypeObjectUtils::build_complete_struct_member(common_queue_record_id, detail_queue_record_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_queue_record_id); + } + { + TypeIdentifierPair type_ids_queue_number; + ReturnCode_t return_code_queue_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_queue_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_queue_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_queue_number) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "queue_number Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_queue_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_queue_number = 0x00000008; + bool common_queue_number_ec {false}; + CommonStructMember common_queue_number {TypeObjectUtils::build_common_struct_member(member_id_queue_number, member_flags_queue_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_queue_number, common_queue_number_ec))}; + if (!common_queue_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure queue_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_queue_number = "queue_number"; + eprosima::fastcdr::optional member_ann_builtin_queue_number; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_queue_number = TypeObjectUtils::build_complete_member_detail(name_queue_number, member_ann_builtin_queue_number, ann_custom_QueueFailure); + CompleteStructMember member_queue_number = TypeObjectUtils::build_complete_struct_member(common_queue_number, detail_queue_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_queue_number); + } + { + TypeIdentifierPair type_ids_sample_machine; + ReturnCode_t return_code_sample_machine {eprosima::fastdds::dds::RETCODE_OK}; + return_code_sample_machine = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_sample_machine); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_sample_machine) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_sample_machine)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_sample_machine = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_sample_machine = 0x00000009; + bool common_sample_machine_ec {false}; + CommonStructMember common_sample_machine {TypeObjectUtils::build_common_struct_member(member_id_sample_machine, member_flags_sample_machine, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_sample_machine, common_sample_machine_ec))}; + if (!common_sample_machine_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure sample_machine member TypeIdentifier inconsistent."); + return; + } + MemberName name_sample_machine = "sample_machine"; + eprosima::fastcdr::optional member_ann_builtin_sample_machine; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_sample_machine = TypeObjectUtils::build_complete_member_detail(name_sample_machine, member_ann_builtin_sample_machine, ann_custom_QueueFailure); + CompleteStructMember member_sample_machine = TypeObjectUtils::build_complete_struct_member(common_sample_machine, detail_sample_machine); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_sample_machine); + } + { + TypeIdentifierPair type_ids_ticket_number; + ReturnCode_t return_code_ticket_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_ticket_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_ticket_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_ticket_number) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_ticket_number)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_ticket_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_ticket_number = 0x0000000a; + bool common_ticket_number_ec {false}; + CommonStructMember common_ticket_number {TypeObjectUtils::build_common_struct_member(member_id_ticket_number, member_flags_ticket_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_ticket_number, common_ticket_number_ec))}; + if (!common_ticket_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure ticket_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_ticket_number = "ticket_number"; + eprosima::fastcdr::optional member_ann_builtin_ticket_number; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_ticket_number = TypeObjectUtils::build_complete_member_detail(name_ticket_number, member_ann_builtin_ticket_number, ann_custom_QueueFailure); + CompleteStructMember member_ticket_number = TypeObjectUtils::build_complete_struct_member(common_ticket_number, detail_ticket_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_ticket_number); + } + { + TypeIdentifierPair type_ids_existing_queue_record_id; + ReturnCode_t return_code_existing_queue_record_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_existing_queue_record_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_existing_queue_record_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_existing_queue_record_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "existing_queue_record_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_existing_queue_record_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_existing_queue_record_id = 0x0000000b; + bool common_existing_queue_record_id_ec {false}; + CommonStructMember common_existing_queue_record_id {TypeObjectUtils::build_common_struct_member(member_id_existing_queue_record_id, member_flags_existing_queue_record_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_existing_queue_record_id, common_existing_queue_record_id_ec))}; + if (!common_existing_queue_record_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure existing_queue_record_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_existing_queue_record_id = "existing_queue_record_id"; + eprosima::fastcdr::optional member_ann_builtin_existing_queue_record_id; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_existing_queue_record_id = TypeObjectUtils::build_complete_member_detail(name_existing_queue_record_id, member_ann_builtin_existing_queue_record_id, ann_custom_QueueFailure); + CompleteStructMember member_existing_queue_record_id = TypeObjectUtils::build_complete_struct_member(common_existing_queue_record_id, detail_existing_queue_record_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_existing_queue_record_id); + } + { + TypeIdentifierPair type_ids_existing_queue_number; + ReturnCode_t return_code_existing_queue_number {eprosima::fastdds::dds::RETCODE_OK}; + return_code_existing_queue_number = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_existing_queue_number); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_existing_queue_number) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "existing_queue_number Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_existing_queue_number = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_existing_queue_number = 0x0000000c; + bool common_existing_queue_number_ec {false}; + CommonStructMember common_existing_queue_number {TypeObjectUtils::build_common_struct_member(member_id_existing_queue_number, member_flags_existing_queue_number, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_existing_queue_number, common_existing_queue_number_ec))}; + if (!common_existing_queue_number_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure existing_queue_number member TypeIdentifier inconsistent."); + return; + } + MemberName name_existing_queue_number = "existing_queue_number"; + eprosima::fastcdr::optional member_ann_builtin_existing_queue_number; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_existing_queue_number = TypeObjectUtils::build_complete_member_detail(name_existing_queue_number, member_ann_builtin_existing_queue_number, ann_custom_QueueFailure); + CompleteStructMember member_existing_queue_number = TypeObjectUtils::build_complete_struct_member(common_existing_queue_number, detail_existing_queue_number); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_existing_queue_number); + } + { + TypeIdentifierPair type_ids_existing_sample_machine; + ReturnCode_t return_code_existing_sample_machine {eprosima::fastdds::dds::RETCODE_OK}; + return_code_existing_sample_machine = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_existing_sample_machine); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_existing_sample_machine) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_existing_sample_machine)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_existing_sample_machine = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_existing_sample_machine = 0x0000000d; + bool common_existing_sample_machine_ec {false}; + CommonStructMember common_existing_sample_machine {TypeObjectUtils::build_common_struct_member(member_id_existing_sample_machine, member_flags_existing_sample_machine, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_existing_sample_machine, common_existing_sample_machine_ec))}; + if (!common_existing_sample_machine_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure existing_sample_machine member TypeIdentifier inconsistent."); + return; + } + MemberName name_existing_sample_machine = "existing_sample_machine"; + eprosima::fastcdr::optional member_ann_builtin_existing_sample_machine; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_existing_sample_machine = TypeObjectUtils::build_complete_member_detail(name_existing_sample_machine, member_ann_builtin_existing_sample_machine, ann_custom_QueueFailure); + CompleteStructMember member_existing_sample_machine = TypeObjectUtils::build_complete_struct_member(common_existing_sample_machine, detail_existing_sample_machine); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_existing_sample_machine); + } + { + TypeIdentifierPair type_ids_cache_state; + ReturnCode_t return_code_cache_state {eprosima::fastdds::dds::RETCODE_OK}; + return_code_cache_state = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_cache_state); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_cache_state) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_cache_state)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_cache_state = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_cache_state = 0x0000000e; + bool common_cache_state_ec {false}; + CommonStructMember common_cache_state {TypeObjectUtils::build_common_struct_member(member_id_cache_state, member_flags_cache_state, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_cache_state, common_cache_state_ec))}; + if (!common_cache_state_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure cache_state member TypeIdentifier inconsistent."); + return; + } + MemberName name_cache_state = "cache_state"; + eprosima::fastcdr::optional member_ann_builtin_cache_state; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_cache_state = TypeObjectUtils::build_complete_member_detail(name_cache_state, member_ann_builtin_cache_state, ann_custom_QueueFailure); + CompleteStructMember member_cache_state = TypeObjectUtils::build_complete_struct_member(common_cache_state, detail_cache_state); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_cache_state); + } + { + TypeIdentifierPair type_ids_database_state; + ReturnCode_t return_code_database_state {eprosima::fastdds::dds::RETCODE_OK}; + return_code_database_state = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_database_state); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_database_state) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_database_state)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_database_state = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_database_state = 0x0000000f; + bool common_database_state_ec {false}; + CommonStructMember common_database_state {TypeObjectUtils::build_common_struct_member(member_id_database_state, member_flags_database_state, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_database_state, common_database_state_ec))}; + if (!common_database_state_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure database_state member TypeIdentifier inconsistent."); + return; + } + MemberName name_database_state = "database_state"; + eprosima::fastcdr::optional member_ann_builtin_database_state; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_database_state = TypeObjectUtils::build_complete_member_detail(name_database_state, member_ann_builtin_database_state, ann_custom_QueueFailure); + CompleteStructMember member_database_state = TypeObjectUtils::build_complete_struct_member(common_database_state, detail_database_state); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_database_state); + } + { + TypeIdentifierPair type_ids_physical_card_state; + ReturnCode_t return_code_physical_card_state {eprosima::fastdds::dds::RETCODE_OK}; + return_code_physical_card_state = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_physical_card_state); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_physical_card_state) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_physical_card_state)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_physical_card_state = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_physical_card_state = 0x00000010; + bool common_physical_card_state_ec {false}; + CommonStructMember common_physical_card_state {TypeObjectUtils::build_common_struct_member(member_id_physical_card_state, member_flags_physical_card_state, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_physical_card_state, common_physical_card_state_ec))}; + if (!common_physical_card_state_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure physical_card_state member TypeIdentifier inconsistent."); + return; + } + MemberName name_physical_card_state = "physical_card_state"; + eprosima::fastcdr::optional member_ann_builtin_physical_card_state; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_physical_card_state = TypeObjectUtils::build_complete_member_detail(name_physical_card_state, member_ann_builtin_physical_card_state, ann_custom_QueueFailure); + CompleteStructMember member_physical_card_state = TypeObjectUtils::build_complete_struct_member(common_physical_card_state, detail_physical_card_state); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_physical_card_state); + } + { + TypeIdentifierPair type_ids_retryable; + ReturnCode_t return_code_retryable {eprosima::fastdds::dds::RETCODE_OK}; + return_code_retryable = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_bool", type_ids_retryable); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_retryable) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "retryable Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_retryable = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_retryable = 0x00000011; + bool common_retryable_ec {false}; + CommonStructMember common_retryable {TypeObjectUtils::build_common_struct_member(member_id_retryable, member_flags_retryable, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_retryable, common_retryable_ec))}; + if (!common_retryable_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure retryable member TypeIdentifier inconsistent."); + return; + } + MemberName name_retryable = "retryable"; + eprosima::fastcdr::optional member_ann_builtin_retryable; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_retryable = TypeObjectUtils::build_complete_member_detail(name_retryable, member_ann_builtin_retryable, ann_custom_QueueFailure); + CompleteStructMember member_retryable = TypeObjectUtils::build_complete_struct_member(common_retryable, detail_retryable); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_retryable); + } + { + TypeIdentifierPair type_ids_retry_after_ms; + ReturnCode_t return_code_retry_after_ms {eprosima::fastdds::dds::RETCODE_OK}; + return_code_retry_after_ms = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_retry_after_ms); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_retry_after_ms) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "retry_after_ms Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_retry_after_ms = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_retry_after_ms = 0x00000012; + bool common_retry_after_ms_ec {false}; + CommonStructMember common_retry_after_ms {TypeObjectUtils::build_common_struct_member(member_id_retry_after_ms, member_flags_retry_after_ms, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_retry_after_ms, common_retry_after_ms_ec))}; + if (!common_retry_after_ms_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure retry_after_ms member TypeIdentifier inconsistent."); + return; + } + MemberName name_retry_after_ms = "retry_after_ms"; + eprosima::fastcdr::optional member_ann_builtin_retry_after_ms; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_retry_after_ms = TypeObjectUtils::build_complete_member_detail(name_retry_after_ms, member_ann_builtin_retry_after_ms, ann_custom_QueueFailure); + CompleteStructMember member_retry_after_ms = TypeObjectUtils::build_complete_struct_member(common_retry_after_ms, detail_retry_after_ms); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_retry_after_ms); + } + { + TypeIdentifierPair type_ids_voice_id; + ReturnCode_t return_code_voice_id {eprosima::fastdds::dds::RETCODE_OK}; + return_code_voice_id = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "_int32_t", type_ids_voice_id); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_voice_id) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "voice_id Structure member TypeIdentifier unknown to TypeObjectRegistry."); + return; + } + StructMemberFlag member_flags_voice_id = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_voice_id = 0x00000013; + bool common_voice_id_ec {false}; + CommonStructMember common_voice_id {TypeObjectUtils::build_common_struct_member(member_id_voice_id, member_flags_voice_id, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_voice_id, common_voice_id_ec))}; + if (!common_voice_id_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure voice_id member TypeIdentifier inconsistent."); + return; + } + MemberName name_voice_id = "voice_id"; + eprosima::fastcdr::optional member_ann_builtin_voice_id; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_voice_id = TypeObjectUtils::build_complete_member_detail(name_voice_id, member_ann_builtin_voice_id, ann_custom_QueueFailure); + CompleteStructMember member_voice_id = TypeObjectUtils::build_complete_struct_member(common_voice_id, detail_voice_id); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_voice_id); + } + { + TypeIdentifierPair type_ids_voice_text; + ReturnCode_t return_code_voice_text {eprosima::fastdds::dds::RETCODE_OK}; + return_code_voice_text = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_voice_text); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_voice_text) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_voice_text)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_voice_text = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_voice_text = 0x00000014; + bool common_voice_text_ec {false}; + CommonStructMember common_voice_text {TypeObjectUtils::build_common_struct_member(member_id_voice_text, member_flags_voice_text, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_voice_text, common_voice_text_ec))}; + if (!common_voice_text_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure voice_text member TypeIdentifier inconsistent."); + return; + } + MemberName name_voice_text = "voice_text"; + eprosima::fastcdr::optional member_ann_builtin_voice_text; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_voice_text = TypeObjectUtils::build_complete_member_detail(name_voice_text, member_ann_builtin_voice_text, ann_custom_QueueFailure); + CompleteStructMember member_voice_text = TypeObjectUtils::build_complete_struct_member(common_voice_text, detail_voice_text); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_voice_text); + } + { + TypeIdentifierPair type_ids_card_write_status; + ReturnCode_t return_code_card_write_status {eprosima::fastdds::dds::RETCODE_OK}; + return_code_card_write_status = + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->type_object_registry().get_type_identifiers( + "anonymous_string_unbounded", type_ids_card_write_status); + + if (eprosima::fastdds::dds::RETCODE_OK != return_code_card_write_status) + { + { + SBound bound = 0; + StringSTypeDefn string_sdefn = TypeObjectUtils::build_string_s_type_defn(bound); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_s_string_type_identifier(string_sdefn, + "anonymous_string_unbounded", type_ids_card_write_status)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "anonymous_string_unbounded already registered in TypeObjectRegistry for a different type."); + } + } + } + StructMemberFlag member_flags_card_write_status = TypeObjectUtils::build_struct_member_flag(eprosima::fastdds::dds::xtypes::TryConstructFailAction::DISCARD, + false, false, false, false); + MemberId member_id_card_write_status = 0x00000015; + bool common_card_write_status_ec {false}; + CommonStructMember common_card_write_status {TypeObjectUtils::build_common_struct_member(member_id_card_write_status, member_flags_card_write_status, TypeObjectUtils::retrieve_complete_type_identifier(type_ids_card_write_status, common_card_write_status_ec))}; + if (!common_card_write_status_ec) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, "Structure card_write_status member TypeIdentifier inconsistent."); + return; + } + MemberName name_card_write_status = "card_write_status"; + eprosima::fastcdr::optional member_ann_builtin_card_write_status; + ann_custom_QueueFailure.reset(); + CompleteMemberDetail detail_card_write_status = TypeObjectUtils::build_complete_member_detail(name_card_write_status, member_ann_builtin_card_write_status, ann_custom_QueueFailure); + CompleteStructMember member_card_write_status = TypeObjectUtils::build_complete_struct_member(common_card_write_status, detail_card_write_status); + TypeObjectUtils::add_complete_struct_member(member_seq_QueueFailure, member_card_write_status); + } + CompleteStructType struct_type_QueueFailure = TypeObjectUtils::build_complete_struct_type(struct_flags_QueueFailure, header_QueueFailure, member_seq_QueueFailure); + if (eprosima::fastdds::dds::RETCODE_BAD_PARAMETER == + TypeObjectUtils::build_and_register_struct_type_object(struct_type_QueueFailure, type_name_QueueFailure.to_string(), type_ids_QueueFailure)) + { + EPROSIMA_LOG_ERROR(XTYPES_TYPE_REPRESENTATION, + "Queue::QueueFailure already registered in TypeObjectRegistry for a different type."); + } + } +} + +} // namespace Queue + diff --git a/lib/SystemTypeObjectSupport.hpp b/lib/WeighingDDSTypeTypeObjectSupport.hpp similarity index 83% rename from lib/SystemTypeObjectSupport.hpp rename to lib/WeighingDDSTypeTypeObjectSupport.hpp index 3c5b431..a5647e4 100644 --- a/lib/SystemTypeObjectSupport.hpp +++ b/lib/WeighingDDSTypeTypeObjectSupport.hpp @@ -13,14 +13,14 @@ // limitations under the License. /*! - * @file SystemTypeObjectSupport.hpp + * @file WeighingDDSTypeTypeObjectSupport.hpp * Header file containing the API required to register the TypeObject representation of the described types in the IDL file * * This file was generated by the tool fastddsgen. */ -#ifndef FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_TYPE_OBJECT_SUPPORT_HPP -#define FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_TYPE_OBJECT_SUPPORT_HPP +#ifndef FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_TYPE_OBJECT_SUPPORT_HPP +#define FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_TYPE_OBJECT_SUPPORT_HPP #include @@ -207,8 +207,32 @@ eProsima_user_DllExport void register_Voice_type_identifier( eProsima_user_DllExport void register_SummaryUpdate_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); -} // namespace WeighingSystem -namespace InternalSystem { +/** + * @brief Register ReadCardReq related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ReadCardReq_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + +/** + * @brief Register ReadCardRsp related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_ReadCardRsp_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + /** * @brief Register PrintReq related TypeIdentifier. * Fully-descriptive TypeIdentifiers are directly registered. @@ -235,8 +259,23 @@ eProsima_user_DllExport void register_PrintReq_type_identifier( eProsima_user_DllExport void register_PrintRsp_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); +} // namespace WeighingSystem +namespace Queue { +/** + * @brief Register QueueTrigger related TypeIdentifier. + * Fully-descriptive TypeIdentifiers are directly registered. + * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is + * indirectly registered as well. + * + * @param[out] TypeIdentifier of the registered type. + * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. + * Invalid TypeIdentifier is returned in case of error. + */ +eProsima_user_DllExport void register_QueueTrigger_type_identifier( + eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); + /** - * @brief Register IoCtrlReq related TypeIdentifier. + * @brief Register QueueSuccess related TypeIdentifier. * Fully-descriptive TypeIdentifiers are directly registered. * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is * indirectly registered as well. @@ -245,11 +284,11 @@ eProsima_user_DllExport void register_PrintRsp_type_identifier( * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. * Invalid TypeIdentifier is returned in case of error. */ -eProsima_user_DllExport void register_IoCtrlReq_type_identifier( +eProsima_user_DllExport void register_QueueSuccess_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); /** - * @brief Register IoCtrlRsp related TypeIdentifier. + * @brief Register QueueFailure related TypeIdentifier. * Fully-descriptive TypeIdentifiers are directly registered. * Hash TypeIdentifiers require to fill the TypeObject information and hash it, consequently, the TypeObject is * indirectly registered as well. @@ -258,12 +297,12 @@ eProsima_user_DllExport void register_IoCtrlReq_type_identifier( * The returned TypeIdentifier corresponds to the complete TypeIdentifier in case of hashed TypeIdentifiers. * Invalid TypeIdentifier is returned in case of error. */ -eProsima_user_DllExport void register_IoCtrlRsp_type_identifier( +eProsima_user_DllExport void register_QueueFailure_type_identifier( eprosima::fastdds::dds::xtypes::TypeIdentifierPair& type_ids); -} // namespace InternalSystem +} // namespace Queue #endif // DOXYGEN_SHOULD_SKIP_THIS_PUBLIC -#endif // FAST_DDS_GENERATED__INTERNALSYSTEM_SYSTEM_TYPE_OBJECT_SUPPORT_HPP +#endif // FAST_DDS_GENERATED__QUEUE_WEIGHINGDDSTYPE_TYPE_OBJECT_SUPPORT_HPP diff --git a/lib/YQNetCom.dll b/lib/YQNetCom.dll new file mode 100644 index 0000000..11ed3c3 Binary files /dev/null and b/lib/YQNetCom.dll differ diff --git a/lib/bx_sdk_dual.dll b/lib/bx_sdk_dual.dll new file mode 100644 index 0000000..7aff817 Binary files /dev/null and b/lib/bx_sdk_dual.dll differ diff --git a/lib/bx_sdk_dual_server.dll b/lib/bx_sdk_dual_server.dll new file mode 100644 index 0000000..4f89d3c Binary files /dev/null and b/lib/bx_sdk_dual_server.dll differ diff --git a/lib/cairo-1.14.6.dll b/lib/cairo-1.14.6.dll new file mode 100644 index 0000000..bf9503a Binary files /dev/null and b/lib/cairo-1.14.6.dll differ diff --git a/lib/freetype265.dll b/lib/freetype265.dll new file mode 100644 index 0000000..b376730 Binary files /dev/null and b/lib/freetype265.dll differ diff --git a/lib/libpng16.dll b/lib/libpng16.dll new file mode 100644 index 0000000..dd2881c Binary files /dev/null and b/lib/libpng16.dll differ diff --git a/lib/zlibwapi.dll b/lib/zlibwapi.dll new file mode 100644 index 0000000..da137eb Binary files /dev/null and b/lib/zlibwapi.dll differ diff --git a/mqttdds/Publisher.cxx b/mqttdds/Publisher.cxx index 7c4c055..bd071f9 100644 --- a/mqttdds/Publisher.cxx +++ b/mqttdds/Publisher.cxx @@ -449,7 +449,7 @@ void PublisherApp::run(std::shared_ptr dev) { print_msg.clear(); - print_msg["Title"] = "五彩湾"; + print_msg["Title"] = "贵州渝黔锰业有限公司提货单"; print_msg["GrossDeviceID"] = std::to_string(info.GrossDeviceID()); print_msg["GrossDeviceName"] = info.GrossDeviceName(); print_msg["TareDeviceID"] = std::to_string(info.TareDeviceID()); diff --git a/patch/patch_2_time_weigh b/patch/patch_2_time_weigh new file mode 100644 index 0000000..6a61cdd --- /dev/null +++ b/patch/patch_2_time_weigh @@ -0,0 +1,144 @@ +diff --git a/core/Publisher.cxx b/core/Publisher.cxx +index 6aba885..73e627f 100644 +--- a/core/Publisher.cxx ++++ b/core/Publisher.cxx +@@ -333,12 +333,21 @@ bool PublisherApp::print_receipt(const std::map& msg) + return true; + } + ++#define WEIGH_IDLE 0 ++#define WEIGH_LIC 1 ++#define WEIGH_STABLE1 2 ++#define WEIGH_STABLE2 3 ++#define WEIGH_PRINT 4 ++#define WEIGH_ERROR 5 ++#define WEIGH_LEAVE 6 ++ + void PublisherApp::run() + { +- uint8_t send_sum = 0; +- uint8_t is_print = 0; + std::string license_no = ""; + float stable_weight = 0; ++ float stable_weight1 = 0; ++ float stable_weight2 = 0; ++ int weigh_state = WEIGH_IDLE; + + while (!is_stopped()) + { +@@ -357,6 +366,7 @@ void PublisherApp::run() + if (license_no == "") + { + license_no = info.License(); ++ weigh_state = WEIGH_LIC; + } + } + else if (!DdsMsgData::ScaleInfo_queue_.empty()) +@@ -378,19 +388,18 @@ void PublisherApp::run() + else + { + stable_weight = 0; +- send_sum = 0; + } + + if (info.HasVehicle() == 0) + { + license_no = ""; +- if (is_print == 1) ++ if (weigh_state == WEIGH_LEAVE) + { + std::this_thread::sleep_for(std::chrono::seconds(5)); + std::map ctrl; + ctrl["FrontBar"] = "down"; + bar_ctrl(ctrl); +- is_print = 0; ++ weigh_state = WEIGH_IDLE; + } + } + } +@@ -464,7 +473,7 @@ void PublisherApp::run() + + print_receipt(print_msg); + +- is_print = 1; ++ weigh_state = WEIGH_LEAVE; + std::map ctrl; + ctrl["FrontBar"] = "up"; + bar_ctrl(ctrl); +@@ -477,7 +486,7 @@ void PublisherApp::run() + dds_lock.unlock(); + + std::this_thread::sleep_for(std::chrono::seconds(3)); +- send_sum = 0; ++ weigh_state = WEIGH_ERROR; + } + else + { +@@ -486,17 +495,57 @@ void PublisherApp::run() + } + + // logic +- if (send_sum == 0) ++ switch (weigh_state) + { +- if ((stable_weight != 0) && (license_no != "")) +- { +- DEBUG("send summary"); +- WeighingSystem::SummaryUpdate info; +- info.License() = license_no; +- info.StableValue() = stable_weight; +- summary_writer_->write(&info); +- send_sum = 1; +- } ++ case WEIGH_IDLE: ++ break; ++ case WEIGH_LIC: ++ if ((stable_weight != 0) && (license_no != "")) ++ { ++ DEBUG("stable_weight1 " << stable_weight); ++ DEBUG("license_no " << license_no); ++ stable_weight1 = stable_weight; ++ weigh_state = WEIGH_STABLE1; ++ } ++ break; ++ case WEIGH_STABLE1: ++ if (stable_weight == 0) ++ { ++ DEBUG("weigh1 clear"); ++ weigh_state = WEIGH_STABLE2; ++ } ++ break; ++ case WEIGH_STABLE2: ++ if ((stable_weight != 0) && (license_no != "")) ++ { ++ DEBUG("license_no " << license_no); ++ DEBUG("stable_weight2 " << stable_weight); ++ if (stable_weight < stable_weight1) ++ { ++ DEBUG("send sunnmary"); ++ WeighingSystem::SummaryUpdate info; ++ info.License() = license_no; ++ info.StableValue() = stable_weight; ++ summary_writer_->write(&info); ++ weigh_state = WEIGH_PRINT; ++ } ++ else ++ { ++ weigh_state = WEIGH_IDLE; ++ } ++ } ++ break; ++ case WEIGH_PRINT: ++ break; ++ case WEIGH_ERROR: ++ std::this_thread::sleep_for(std::chrono::seconds(3)); ++ weigh_state = WEIGH_STABLE2; ++ break; ++ case WEIGH_LEAVE: ++ break; ++ default: ++ weigh_state = WEIGH_IDLE; ++ break; + } + + // Wait for period or stop event diff --git a/patch/patch_wait_60s_weigh b/patch/patch_wait_60s_weigh new file mode 100644 index 0000000..c866cef --- /dev/null +++ b/patch/patch_wait_60s_weigh @@ -0,0 +1,128 @@ +diff --git a/core/Publisher.cxx b/core/Publisher.cxx +index 6aba885..acf2b7c 100644 +--- a/core/Publisher.cxx ++++ b/core/Publisher.cxx +@@ -333,12 +333,19 @@ bool PublisherApp::print_receipt(const std::map& msg) + return true; + } + ++#define WEIGH_IDLE 0 ++#define WEIGH_LIC 1 ++#define WEIGH_STABLE 2 ++#define WEIGH_PRINT 3 ++#define WEIGH_ERROR 4 ++#define WEIGH_LEAVE 5 ++ + void PublisherApp::run() + { +- uint8_t send_sum = 0; +- uint8_t is_print = 0; + std::string license_no = ""; + float stable_weight = 0; ++ int weigh_state = WEIGH_IDLE; ++ uint16_t weigh_timer = 0; + + while (!is_stopped()) + { +@@ -357,6 +364,7 @@ void PublisherApp::run() + if (license_no == "") + { + license_no = info.License(); ++ weigh_state = WEIGH_LIC; + } + } + else if (!DdsMsgData::ScaleInfo_queue_.empty()) +@@ -378,19 +386,18 @@ void PublisherApp::run() + else + { + stable_weight = 0; +- send_sum = 0; + } + + if (info.HasVehicle() == 0) + { + license_no = ""; +- if (is_print == 1) ++ if (weigh_state == WEIGH_LEAVE) + { + std::this_thread::sleep_for(std::chrono::seconds(5)); + std::map ctrl; + ctrl["FrontBar"] = "down"; + bar_ctrl(ctrl); +- is_print = 0; ++ weigh_state = WEIGH_IDLE; + } + } + } +@@ -464,7 +471,7 @@ void PublisherApp::run() + + print_receipt(print_msg); + +- is_print = 1; ++ weigh_state = WEIGH_LEAVE; + std::map ctrl; + ctrl["FrontBar"] = "up"; + bar_ctrl(ctrl); +@@ -477,7 +484,7 @@ void PublisherApp::run() + dds_lock.unlock(); + + std::this_thread::sleep_for(std::chrono::seconds(3)); +- send_sum = 0; ++ weigh_state = WEIGH_ERROR; + } + else + { +@@ -486,17 +493,43 @@ void PublisherApp::run() + } + + // logic +- if (send_sum == 0) ++ switch (weigh_state) + { +- if ((stable_weight != 0) && (license_no != "")) +- { +- DEBUG("send summary"); +- WeighingSystem::SummaryUpdate info; +- info.License() = license_no; +- info.StableValue() = stable_weight; +- summary_writer_->write(&info); +- send_sum = 1; +- } ++ case WEIGH_IDLE: ++ weigh_timer = 0; ++ break; ++ case WEIGH_LIC: ++ if (weigh_timer++ > 600) ++ { ++ DEBUG("timer reach"); ++ DEBUG("license_no " << license_no); ++ DEBUG("stable_weight " << stable_weight); ++ weigh_state = WEIGH_STABLE; ++ weigh_timer = 0; ++ } ++ break; ++ case WEIGH_STABLE: ++ if ((stable_weight != 0) && (license_no != "")) ++ { ++ DEBUG("send summary"); ++ WeighingSystem::SummaryUpdate info; ++ info.License() = license_no; ++ info.StableValue() = stable_weight; ++ summary_writer_->write(&info); ++ weigh_state = WEIGH_PRINT; ++ } ++ break; ++ case WEIGH_PRINT: ++ break; ++ case WEIGH_ERROR: ++ std::this_thread::sleep_for(std::chrono::seconds(3)); ++ weigh_state = WEIGH_STABLE; ++ break; ++ case WEIGH_LEAVE: ++ break; ++ default: ++ weigh_state = WEIGH_IDLE; ++ break; + } + + // Wait for period or stop event diff --git a/pdf_full.txt b/pdf_full.txt new file mode 100644 index 0000000..635460e Binary files /dev/null and b/pdf_full.txt differ diff --git a/print/MsgHandler.cxx b/print/MsgHandler.cxx index 18013b4..2002c68 100644 --- a/print/MsgHandler.cxx +++ b/print/MsgHandler.cxx @@ -70,10 +70,10 @@ int MsgHandler::SendMsg(const std::vector& data) return -1; } - int bytesWritten = write(fd, data.data(), data.size()); + int bytesWritten = write(fd, data.data(), data.size()); if (bytesWritten < 0) - { - perror("发送数据失败"); + { + perror("发送数据失败"); } return bytesWritten; @@ -135,17 +135,83 @@ void MsgHandler::HandleDdsMsg(const std::map& msg) void MsgHandler::EncodeMsg(const std::map& msg) { - if(device == "NP80A") + if(device == "T080") + { + auto it = msg.find("Title"); + if(it != msg.end()) + { + if(it->second == "入厂排队票") + { + Print1_2(msg); + } + else if(it->second == "燃料轻磅票") + { + Print2_2(msg); + } + else if(it->second == "过衡单") + { + Print3_2(msg); + } + else if(it->second == "转煤单") + { + Print4_2(msg); + } + else if(it->second == "灰磅票") + { + Print5_2(msg); + } + else if(it->second == "提货单") + { + Print6_2(msg); + } + else if(it->second == "发货单") + { + Print6_2(msg); + } + } + } + else if(device == "Star") { auto it = msg.find("Title"); if(it != msg.end()) { - if(it->second == "五彩湾") + if(it->second == "入厂排队票") { Print1_1(msg); } } } + else if(device == "NP80A") + { + auto it = msg.find("Title"); + if(it != msg.end()) + { + if(it->second == "排队票") + { + Print1_3(msg); + } + else if(it->second == "燃料轻磅票") + { + Print2_3(msg); + } + else if(it->second == "转煤单") + { + Print4_3(msg); + } + else if(it->second == "配煤票") + { + Print5_3(msg); + } + else if(it->second == "灰磅票") + { + Print6_3(msg); + } + else if(it->second == "过磅票") + { + Print8_3(msg); + } + } + } } //行线条生成器 @@ -444,223 +510,420 @@ void MsgHandler::GtstrLength(int iVal, char *p) memcpy(p, szTemp.c_str(), 4); } -// 判断是否为中文字符(包括中文标点) -bool MsgHandler::is_chinese_char(const std::string& str, size_t start_byte) { - if (start_byte >= str.length()) return false; - - uint8_t c = static_cast(str[start_byte]); - - // ASCII字符不是中文 - if (c < 0x80) return false; - - // 获取Unicode码点 - uint32_t code_point = 0; - int bytes = 0; - - if ((c & 0xF8) == 0xF0 && start_byte + 3 < str.length()) { - code_point = ((c & 0x07) << 18) | - ((static_cast(str[start_byte+1]) & 0x3F) << 12) | - ((static_cast(str[start_byte+2]) & 0x3F) << 6) | - (static_cast(str[start_byte+3]) & 0x3F); - bytes = 4; - } - else if ((c & 0xF0) == 0xE0 && start_byte + 2 < str.length()) { - code_point = ((c & 0x0F) << 12) | - ((static_cast(str[start_byte+1]) & 0x3F) << 6) | - (static_cast(str[start_byte+2]) & 0x3F); - bytes = 3; - } - else if ((c & 0xE0) == 0xC0 && start_byte + 1 < str.length()) { - code_point = ((c & 0x1F) << 6) | - (static_cast(str[start_byte+1]) & 0x3F); - bytes = 2; +//Star打印机打印排队票 +void MsgHandler::Print1_1(const std::map& msg) +{ + + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + char sTemp[5]={0}; + m_PrintData.clear(); + + //画线 + bool m_PrintGrossAndTare=false; + bool m_PrintSuttle=false; + int m_AllLines=8; + int m_iTemp=0; + int m_top=10120; + + if ((msg.find("GrossWeight") != msg.end()) || (msg.find("TareWeight") != msg.end())) + { + //需要打印发运毛重和发运皮重 + m_PrintGrossAndTare=true; + m_AllLines++; } - - if (bytes == 0) return false; - - // 中文汉字范围 - if ((code_point >= 0x4E00 && code_point <= 0x9FFF) || - (code_point >= 0x3400 && code_point <= 0x4DBF) || - (code_point >= 0x20000 && code_point <= 0x2A6DF) || - (code_point >= 0x2A700 && code_point <= 0x2B73F) || - (code_point >= 0x2B740 && code_point <= 0x2B81F) || - (code_point >= 0x2B820 && code_point <= 0x2CEAF) || - (code_point >= 0x2CEB0 && code_point <= 0x2EBEF) || - (code_point >= 0x30000 && code_point <= 0x3134F)) { - return true; + + if (msg.find("SuttleWeight") != msg.end()) + { + //需要打印发运净重 + m_PrintSuttle=true; + m_AllLines++; } - - // 中文标点范围 - if ((code_point >= 0x3000 && code_point <= 0x303F) || - (code_point >= 0xFF00 && code_point <= 0xFFEF)) { - return true; + + it = msg.find("MCFB"); + int m_lines = 0; + int m_oneline=40; + if(it != msg.end()) + { + m_lines=it->second.length()/m_oneline; + if ((it->second.length()%m_oneline)>0) + { + m_lines+=1; + } + m_AllLines+=m_lines; } - - return false; -} -// 获取单个字符的显示宽度 -int MsgHandler::get_utf8_char_width(const std::string& str, size_t start_byte) { - if (start_byte >= str.length()) return 1; - - uint8_t c = static_cast(str[start_byte]); - - // ASCII字符占1个位置 - if (c < 0x80) { - return 1; + m_iTemp=74*m_AllLines+m_top+100; + GtstrLength(m_iTemp,sTemp); + + + //单位为0.1毫米 + Page_ClearAndSet(m_PrintData, sTemp); //设置纸长 104 毫米 + + m_iTemp=74*m_AllLines+m_top; + GtstrLength(m_iTemp,sTemp); + + Page_ESCL(m_PrintData, (char *)"00", (char *)"0030", (char *)"0120", (char *)"0688", sTemp, '2','1'); //框 + + m_iTemp=m_top+74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"01", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线1 + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"02", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线2 + m_iTemp+=74; + + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"03", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线3 + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"04", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线4 + + //毛皮重 + if (m_PrintGrossAndTare) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"05", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线5 } - - // 判断是否为中文字符 - if (is_chinese_char(str, start_byte)) { - return 2; // 中文字符占2个位置 + + //净重 + if (m_PrintSuttle) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"06", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线6 } - - // 其他宽字符(如全角字符、emoji等) - return 2; // 默认按2个位置处理 -} -// 获取整个字符串的显示宽度 -size_t MsgHandler::get_utf8_display_width(const std::string& str) { - size_t width = 0; - - for (size_t i = 0; i < str.length(); ) { - uint8_t c = static_cast(str[i]); - size_t char_len = 1; - - if ((c & 0x80) == 0x00) { - char_len = 1; - } else if ((c & 0xE0) == 0xC0) { - if (i + 1 >= str.length()) break; - char_len = 2; - } else if ((c & 0xF0) == 0xE0) { - if (i + 2 >= str.length()) break; - char_len = 3; - } else if ((c & 0xF8) == 0xF0) { - if (i + 3 >= str.length()) break; - char_len = 4; - } - - width += get_utf8_char_width(str, i); - i += char_len; + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"07", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线7 + Page_ESCL(m_PrintData, (char *)"20", (char *)"0180", (char *)"0194", (char *)"0180", sTemp,'1','1'); //竖线1 + Page_ESCL(m_PrintData, (char *)"21", (char *)"0360", (char *)"0268", (char *)"0360", sTemp,'1','1'); //竖线2 + Page_ESCL(m_PrintData, (char *)"22", (char *)"0520", (char *)"0268", (char *)"0520", sTemp,'1','1'); //竖线3 + + + //煤场要若干行 + m_iTemp+=74*m_lines; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"08", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线8 + + + char sTemp1[5]={0}; + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp1); + Page_ESCL(m_PrintData, (char *)"09", (char *)"0030", sTemp1, (char *)"0688", sTemp1,'0','1'); //横线9 + + Page_ESCL(m_PrintData, (char *)"23", (char *)"0180", sTemp1, (char *)"0180", sTemp,'1','1'); //竖线1 + Page_ESCL(m_PrintData, (char *)"24", (char *)"0360", sTemp1, (char *)"0360", sTemp,'1','1'); //竖线2 + Page_ESCL(m_PrintData, (char *)"25", (char *)"0510", sTemp1, (char *)"0510", sTemp,'1','1'); //竖线3 + + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCL(m_PrintData, (char *)"10", (char *)"0030", sTemp, (char *)"0688", sTemp,'0','1'); //横线10 + + //打印采样单 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 } - - return width; -} + Page_ESCPC(m_PrintData, (char *)"00",(char *)"0030",(char *)"0000",'2','2','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"00",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + //开票时间 + Page_ESCPC(m_PrintData, (char *)"01",(char *)"0040",(char *)"0140",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"01",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + //供应商 + Page_ESCPC(m_PrintData, (char *)"02",(char *)"0040",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"02",ot::UTF8ToGB2312("供应商").c_str()); -// 按显示宽度分割字符串 -std::vector MsgHandler::split_utf8_by_width(const std::string& str, size_t max_width) { - std::vector result; - - if (str.empty() || max_width == 0) return result; - - size_t byte_pos = 0; - - while (byte_pos < str.length()) { - size_t line_start = byte_pos; - size_t line_width = 0; - size_t last_valid_pos = byte_pos; - - // 收集一行的字符 - while (byte_pos < str.length() && line_width < max_width) { - uint8_t c = static_cast(str[byte_pos]); - size_t char_len = 1; - - if ((c & 0x80) == 0x00) { - char_len = 1; - } else if ((c & 0xE0) == 0xC0) { - if (byte_pos + 1 >= str.length()) break; - char_len = 2; - } else if ((c & 0xF0) == 0xE0) { - if (byte_pos + 2 >= str.length()) break; - char_len = 3; - } else if ((c & 0xF8) == 0xF0) { - if (byte_pos + 3 >= str.length()) break; - char_len = 4; - } - - int char_width = get_utf8_char_width(str, byte_pos); - - // 检查是否还能放下这个字符 - if (line_width + char_width > max_width) { - break; - } - - last_valid_pos = byte_pos + char_len - 1; - byte_pos += char_len; - line_width += char_width; - } - - // 确保至少有一个字符 - if (last_valid_pos < line_start && byte_pos < str.length()) { - uint8_t c = static_cast(str[byte_pos]); - size_t char_len = 1; - - if ((c & 0xE0) == 0xC0) char_len = 2; - else if ((c & 0xF0) == 0xE0) char_len = 3; - else if ((c & 0xF8) == 0xF0) char_len = 4; - - last_valid_pos = byte_pos + char_len - 1; - byte_pos = last_valid_pos + 1; + Page_ESCPC(m_PrintData, (char *)"03",(char *)"0200",(char *)"0214",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"03",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + //排队号 + Page_ESCPC(m_PrintData, (char *)"04",(char *)"0040",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"04",ot::UTF8ToGB2312("排队号").c_str()); + + Page_ESCPC(m_PrintData, (char *)"05",(char *)"0200",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("QueueID"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"05",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + //品 种 + Page_ESCPC(m_PrintData, (char *)"06",(char *)"0380",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"06",ot::UTF8ToGB2312("品 种").c_str()); + + Page_ESCPC(m_PrintData, (char *)"07",(char *)"0540",(char *)"0288",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"07",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + //车牌号 + Page_ESCPC(m_PrintData, (char *)"08",(char *)"0040",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"08",ot::UTF8ToGB2312("车牌号").c_str()); + + Page_ESCPC(m_PrintData, (char *)"09",(char *)"0200",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"09",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + //自编号 + Page_ESCPC(m_PrintData, (char *)"10",(char *)"0380",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"10",ot::UTF8ToGB2312("自编号").c_str()); + + Page_ESCPC(m_PrintData, (char *)"11",(char *)"0540",(char *)"0362",'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("CarID"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"11",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + + m_iTemp=10362+74; + GtstrLength(m_iTemp,sTemp); + //毛皮重 + if (m_PrintGrossAndTare) + { + + //发运毛重 + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); } - - // 提取这一行 - if (last_valid_pos >= line_start) { - result.push_back(str.substr(line_start, last_valid_pos - line_start + 1)); + else + szTemp=""; + + Page_ESCPC(m_PrintData, (char *)"12",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"12",ot::UTF8ToGB2312("发运毛重").c_str()); + + Page_ESCPC(m_PrintData, (char *)"13",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"13",szTemp.c_str()); + + //发运皮重 + it = msg.find("TareWeight"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); } - - byte_pos = last_valid_pos + 1; + else + szTemp=""; + Page_ESCPC(m_PrintData, (char *)"14",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"14",ot::UTF8ToGB2312("发运皮重").c_str()); + + Page_ESCPC(m_PrintData, (char *)"15",(char *)"0540",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"15",szTemp.c_str()); + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); } - - return result; -} -bool MsgHandler::check_odd(const std::string date) -{ - if (!date.empty()) + //发运净重 + if (m_PrintSuttle) { - char lastChar = date.back(); // 获取最后一个字符 - if (std::isdigit(lastChar)) + it = msg.find("SuttleWeight"); + if(it != msg.end()) { - int lastDigit = lastChar - '0'; // 将字符转换为数字 - if (lastDigit % 2 == 0) - { - return false; - } - else - { - return true; - } + szTemp = ot::UTF8ToGB2312(it->second.c_str()); } - return false; + else + szTemp=""; + + Page_ESCPC(m_PrintData, (char *)"16",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"16",ot::UTF8ToGB2312("发运净重").c_str()); + + Page_ESCPC(m_PrintData, (char *)"17",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"17",szTemp.c_str()); + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + } + + + //采样机 + Page_ESCPC(m_PrintData, (char *)"18",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"18",ot::UTF8ToGB2312("采样机").c_str()); + + Page_ESCPC(m_PrintData, (char *)"19",(char *)"0200",sTemp,'1','1','3',(char *)"00",(char *)"00"); + it = msg.find("sample_machine"); + if(it != msg.end()) + { + Page_ESCRC(m_PrintData, (char *)"19",ot::UTF8ToGB2312(it->second.c_str()).c_str()); + } + + //接样员 + Page_ESCPC(m_PrintData, (char *)"20",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"20",ot::UTF8ToGB2312("接样员").c_str()); + + + //处理煤场 + it = msg.find("MCFB"); + if (m_lines>0) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(0,m_oneline); + Page_ESCPC(m_PrintData, (char *)"21",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"21",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + if (m_lines>1) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(1*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"22",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"22",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); } - return false; + + if (m_lines>2) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(2*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"23",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"23",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + if (m_lines>3) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(3*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"24",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"24",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + if (m_lines>4) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(4*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"25",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"25",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + if (m_lines>5) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(5*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"26",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"26",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + if (m_lines>6) + { + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + szTemp=it->second.substr(6*m_oneline,m_oneline); + Page_ESCPC(m_PrintData, (char *)"27",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"27",ot::UTF8ToGB2312(szTemp.c_str()).c_str()); + } + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + + //煤场验收 + Page_ESCPC(m_PrintData, (char *)"31",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"31",ot::UTF8ToGB2312("煤场验收").c_str()); + + //煤 场 + Page_ESCPC(m_PrintData, (char *)"32",(char *)"0380",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"32",ot::UTF8ToGB2312("煤 场").c_str()); + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + Page_ESCPC(m_PrintData, (char *)"33",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"33",ot::UTF8ToGB2312("采样调换至 号,签字:").c_str()); + + m_iTemp+=74; + GtstrLength(m_iTemp,sTemp); + + + Page_ESCPC(m_PrintData, (char *)"34",(char *)"0040",sTemp,'1','1','3',(char *)"00",(char *)"00"); + Page_ESCRC(m_PrintData, (char *)"34",ot::UTF8ToGB2312("煤场调换至 号,签字:").c_str()); + + Page_Cut(m_PrintData); + Page_End(m_PrintData); } -//NP80A打印通用称重 -void MsgHandler::Print1_1(const std::map& msg) +//北洋打印机打印排队票 +void MsgHandler::Print1_2(const std::map& msg) { - //这里组装打印输出内容 std::string szTemp; std::map::const_iterator it; std::vector blTemp; std::map m_newObj; + int x = 40; + int y = 0; + int dx = 590; + int dy = 950; + char s[12]; m_PrintData.clear(); //初始化打印机 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); //设置中文模式 m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("入厂排队票"); //入厂排队票 + } + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + //设置0号字 m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + szTemp = ot::UTF8ToGB2312(" "); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + //设置左对齐 m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 - m_PrintData.insert(m_PrintData.end(), {0x11, 0x21}); //进入页模式 - m_PrintData.insert(m_PrintData.end(), {0x11, 0x25, 00});//设置页模式打印方向 - // m_PrintData.insert(m_PrintData.end(), {0x11, 0x23, 0x02, 0x30, 0x03, 0x60});//设置页模式宽度和高度,70mm*108mm - m_PrintData.insert(m_PrintData.end(), {0x11, 0x24, 0x00, 0x00, 0x00, 0x00});//设置打印坐标起点 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); - //=============================开票时间===================================== + //=============================开票时间===================================== //加顶框 m_newObj[1] = ("┌"); @@ -669,193 +932,192 @@ void MsgHandler::Print1_1(const std::map& msg) m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====抬头===================== + //票据时间 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 中电投新疆能源化工集团"); + m_newObj[1] = ("│"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[25] = it->second; + } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //加框 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 五彩湾发电有限责任公司"); - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); + m_newObj[1] = ("├"); + m_newObj[6] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //供应商 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 计量单"); + m_newObj[1] = ("│"); + m_newObj[26] = ("供应商"); + m_newObj[120] = ("│"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //加框 m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┬"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====票据号===================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 票据号"); - m_newObj[168] = ("│"); - it = msg.find("CoalNumber"); + m_newObj[1] = ("│"); + m_newObj[26] = ("排队号"); + m_newObj[120] = ("│"); + it = msg.find("QueueID"); if(it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[145] = it->second; + } + m_newObj[263] = ("│"); + m_newObj[288] = ("品 种"); + m_newObj[383] = ("│"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - + //加框 m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====车牌号===================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 车牌号"); - m_newObj[168] = ("│"); + m_newObj[1] = ("│"); + m_newObj[26] = ("车牌号"); + m_newObj[120] = ("│"); it = msg.find("CarNumber"); if(it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[145] = it->second; + } + m_newObj[263] = ("│"); + m_newObj[288] = ("自编号"); + m_newObj[383] = ("│"); + it = msg.find("CarID"); + if(it != msg.end()) + { + m_newObj[408] = it->second; } m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //加框 m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====供应商===================== - - const size_t MAX_DISPLAY_WIDTH = 28; // 每行最多28个显示位置 - + //需要打印发运毛重和发运皮重 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 往来单位"); - m_newObj[168] = ("│"); - it = msg.find("Supplier"); + m_newObj[1] = ("│"); + m_newObj[26] = ("发运毛重"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeight"); if (it != msg.end()) { - // 检查显示宽度是否超过限制 - size_t display_width = get_utf8_display_width(it->second); - - if (display_width > MAX_DISPLAY_WIDTH) - { - // 需要分割成多行显示 - - // 第一行:显示前32个宽度的内容 - std::vector lines = split_utf8_by_width(it->second, MAX_DISPLAY_WIDTH); - - // 输出第一行(包含前缀) - m_newObj[190] = lines[0]; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - - // 输出剩余行(不包含前缀,但有边框) - for (size_t i = 1; i < lines.size(); i++) - { - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[168] = ("│"); - m_newObj[190] = lines[i]; - m_newObj[528] = ("│"); - - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } - } - else - { - // 宽度不超过限制,正常显示 - m_newObj[190] = it->second; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); - } + m_newObj[145] = it->second; } - else + m_newObj[263] = ("│"); + m_newObj[288] = ("发运皮重"); + m_newObj[383] = ("│"); + it = msg.find("TareWeight"); + if (it != msg.end()) { - // 没有找到,显示空内容 - m_newObj[190] = ""; - m_newObj[528] = ("│"); - blTemp = BuildStringLine(m_newObj); - m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); - m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj[408] = it->second; } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[7] = ("┄");//防伪 - m_newObj[8] = ("┼"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); + blTemp = BuildLine(24, m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====品种===================== - + // 需要打印发运净重 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 品种"); - m_newObj[168] = ("│"); - it = msg.find("GoodsType"); - if(it != msg.end()) + m_newObj[1] = ("│"); + m_newObj[26] = ("发运净重"); + m_newObj[120] = ("│"); + it = msg.find("SuttleWeight"); + if (it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[145] = it->second; } + m_newObj[263] = ("│"); + m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24,m_newObj); + blTemp = BuildLine(24, m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - - //====批次号===================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 批次号"); - m_newObj[168] = ("│"); - it = msg.find("BatchNumber"); + m_newObj[1] = ("│"); + m_newObj[26] = ("采样机"); + m_newObj[120] = ("│"); + it = msg.find("sample_machine"); if(it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[145] = it->second; } + m_newObj[263] = ("│"); + m_newObj[288] = ("接样员"); + m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -863,65 +1125,48 @@ void MsgHandler::Print1_1(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┴"); + m_newObj[6] = ("┴"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - std::string GrossTime; - std::string TareTime; - std::string FirstTime; - std::string SecondTime; - std::string FirstDeviceID; - std::string SecondDeviceID; - - it = msg.find("GrossTime"); - if (it != msg.end()) - { - GrossTime = it->second; - } - it = msg.find("TareTime"); - if (it != msg.end()) - { - TareTime = it->second; - } - - if (GrossTime < TareTime) - { - FirstTime = GrossTime; - SecondTime = TareTime; - it = msg.find("GrossDeviceID"); - if (it != msg.end()) - { - FirstDeviceID = it->second; - } - it = msg.find("TareDeviceID"); - if (it != msg.end()) - { - SecondDeviceID = it->second; - } - } - else + //这里要加入煤场信息 + it = msg.find("MCFB"); + if(it != msg.end()) { - FirstTime = TareTime; - SecondTime = GrossTime; - it = msg.find("TareDeviceID"); - if (it != msg.end()) + int m_oneline=40; + int m_lines=it->second.length()/m_oneline; + if ((it->second.length()%m_oneline)>0) { - FirstDeviceID = it->second; + m_lines+=1; } - it = msg.find("GrossDeviceID"); - if (it != msg.end()) + for (int i=0;isecond; + szTemp=it->second.substr(i*m_oneline,m_oneline); + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = (szTemp); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); } } + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====称重类型===================== m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = " 一次称重"; + m_newObj[1] = ("│"); + m_newObj[26] = ("采样调换至 号,签字:"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -929,19 +1174,14 @@ void MsgHandler::Print1_1(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┬"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====磅称编号===================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 汽车衡编号"); - m_newObj[168] = ("│"); - m_newObj[190] = FirstDeviceID; + m_newObj[1] = ("│"); + m_newObj[26] = ("煤场调换至 号,签字:"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -949,29 +1189,21 @@ void MsgHandler::Print1_1(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); + m_newObj[6] = ("┬"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========一次称重时间====================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = ("一次称重时间"); - m_newObj[168] = ("│"); - - // 防伪 - if (check_odd(FirstTime) == true) - { - m_newObj[196] = FirstTime; - } - else - { - m_newObj[190] = FirstTime; - } - + m_newObj[1] = ("│"); + m_newObj[26] = ("煤场验收"); + m_newObj[120] = ("│"); + m_newObj[263] = ("│"); + m_newObj[288] = ("煤 场"); + m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); @@ -979,208 +1211,3233 @@ void MsgHandler::Print1_1(const std::map& msg) m_newObj.clear(); m_newObj[1] = ("├"); - m_newObj[8] = ("┴"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====称重类型===================== m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = " 二次称重"; + m_newObj[1] = ("│"); + m_newObj[26] = ("计 扣 量"); + m_newObj[120] = ("│"); + m_newObj[263] = ("│"); + m_newObj[288] = ("签 字"); + m_newObj[383] = ("│"); m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //====磅称编号===================== + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); +} + +//北洋打印机打印轻磅票 +void MsgHandler::Print2_2(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + int x=40; + int y=0; + int dx=590; //570 + int dy=1400; + char s[12]; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置打印方向 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x54, 0x03}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + //打印磅单 + szTemp = (" "); m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 汽车衡编号"); - m_newObj[168] = ("│"); - m_newObj[190] = SecondDeviceID; - m_newObj[528] = ("│"); + m_newObj[100] = szTemp; blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //打印磅单 m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + m_newObj[340] = it->second + "收煤凭证"; //收煤凭证 + } + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========二次称重时间====================== - + szTemp=(" "); m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = ("二次称重时间"); - m_newObj[168] = ("│"); + m_newObj[100] = szTemp; + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); - // 防伪 - if (check_odd(SecondTime) == true) + //车牌号和票据号 + m_newObj.clear(); + m_newObj[10] = ("车牌号:"); + it = msg.find("CarNumber"); + if(it != msg.end()) { - m_newObj[196] = SecondTime; + m_newObj[190] = it->second; } - else + m_newObj[600] = ("NO:"); + it = msg.find("CoalNumber"); + if(it != msg.end()) { - m_newObj[190] = SecondTime; + m_newObj[700] = it->second; } - - m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); - m_newObj[17] = ("┬"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========毛重====================== - + //供应商 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 毛重"); - m_newObj[168] = ("│"); - it = msg.find("GrossWeight"); - if (it != msg.end()) + m_newObj[10] = ("供应商:"); + it = msg.find("Supplier"); + if(it != msg.end()) { m_newObj[190] = it->second; } - - m_newObj[384] = ("│"); - m_newObj[404] = ("kg"); - m_newObj[528] = ("│"); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========皮重====================== - + //时间和品种 m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 皮重"); - m_newObj[168] = ("│"); - - it = msg.find("TareWeight"); - if (it != msg.end()) + m_newObj[10] = ("品 种:"); + it = msg.find("GoodsType"); + if(it != msg.end()) { m_newObj[190] = it->second; } - - m_newObj[384] = ("│"); - m_newObj[404] = ("kg"); - m_newObj[528] = ("┆");//防伪 + m_newObj[600] = ("时间:"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[740] = it->second; + } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); - m_newObj[17] = ("┼"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========净重====================== + m_newObj.clear(); + m_newObj[10] = ("毛重"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[450] = ("皮重"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[558] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 净重"); - m_newObj[168] = ("│"); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); + m_newObj[10] = ("扣矸"); + it = msg.find("RockWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[450] = ("净重"); it = msg.find("SuttleWeight"); - if (it != msg.end()) + if(it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[558] = it->second; } - m_newObj[384] = ("│"); - m_newObj[404] = ("kg"); - - m_newObj[528] = ("│"); + if(msg.find("AffixSeal") != msg.end()) + { + m_newObj[800] = ("盖章"); + } blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); m_newObj.clear(); - m_newObj[1] = ("├"); - m_newObj[8] = ("┼"); - m_newObj[17] = ("┴"); - m_newObj[23] = ("┤"); - blTemp = BuildLine(24, m_newObj); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); - //=========备注===================== - m_newObj.clear(); - m_newObj[0] = ("│"); - m_newObj[26] = (" 备注"); - m_newObj[168] = ("│"); - it = msg.find("Tips"); - if (it != msg.end()) + m_newObj[10] = ("扣水"); + it = msg.find("WaterWeight"); + if(it != msg.end()) { - m_newObj[190] = it->second; + m_newObj[145] = it->second; } + m_newObj[450] = ("扣杂"); + it = msg.find("OtherWeight"); + if(it != msg.end()) + { + m_newObj[558] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); - m_newObj[528] = ("│"); + m_newObj.clear(); + m_newObj[100] = (" "); blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + // m_newObj.clear(); + // int count = 0; + // auto m_dsz = msg.find("dsz"); + // auto m_dsd = msg.find("dsd"); + // auto m_dsf = msg.find("dsf"); + // auto m_zsd = msg.find("zsd"); + // auto m_zsf = msg.find("zsf"); + // auto m_ksd = msg.find("ksd"); + // auto m_ksf = msg.find("ksf"); + // auto m_ddsf = msg.find("ddsf"); + // if((m_dsz != msg.end()) && (m_dsd != msg.end()) && (m_dsf != msg.end())) + // { + // if(m_dsz != msg.end()) + // { + // m_newObj[10] = ("大生中"); + // m_newObj[190] = m_dsz->second; + + // count++; + // } + // if(m_dsd != msg.end()) + // { + // if(count == 0) + // { + // m_newObj[10] = ("大生丁"); + // m_newObj[190] = m_dsd->second; + // } + // else if(count == 1) + // { + // m_newObj[500] = ("大生丁"); + // m_newObj[680] = m_dsd->second; + // } + // count++; + // } + // if(m_dsf != msg.end()) + // { + // if(count == 0) + // { + // m_newObj[10] = ("大生粉"); + // m_newObj[190] = m_dsf->second; + // } + // else if(count == 1) + // { + // m_newObj[500] = ("大生粉"); + // m_newObj[680] = m_dsf->second; + // } + // else if(count == 2) + // { + // m_newObj[900] = ("大生粉"); + // m_newObj[1080] = m_dsf->second; + // } + // count++; + // } + // } + // else if((m_zsd != msg.end()) || (m_zsf != msg.end())) + // { + // if(m_zsd != msg.end()) + // { + // m_newObj[10] = ("中生丁"); + // m_newObj[190] = m_zsd->second; + + // count++; + // } + // if(m_zsf != msg.end()) + // { + // if(count == 0) + // { + // m_newObj[10] = ("中生粉"); + // m_newObj[190] = m_zsf->second; + // } + // else if(count == 1) + // { + // m_newObj[500] = ("中生粉"); + // m_newObj[680] = m_zsf->second; + // } + // count++; + // } + // } + // else if((m_ksd != msg.end()) || (m_ksf != msg.end())) + // { + // if(m_ksd != msg.end()) + // { + // m_newObj[10] = ("块生丁"); + // m_newObj[190] = m_ksd->second; + + // count++; + // } + // if(m_ksf != msg.end()) + // { + // if(count == 0) + // { + // m_newObj[10] = ("块生粉"); + // m_newObj[190] = m_ksf->second; + // } + // else if(count == 1) + // { + // m_newObj[500] = ("块生粉"); + // m_newObj[680] = m_ksf->second; + // } + // count++; + // } + // } + // else if(m_ddsf != msg.end()) + // { + // m_newObj[10] = ("丁生粉"); + // m_newObj[190] = m_ddsf->second; + // } + // blTemp = BuildStringLine(m_newObj); + // m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + // m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); - m_newObj[1] = ("└"); - m_newObj[8] = ("┴"); - m_newObj[9] = ("┄");//防伪 - m_newObj[23] = ("┘"); - blTemp = BuildLine(24, m_newObj); + m_newObj[100] = (" "); + blTemp = BuildStringLine(m_newObj); m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); m_PrintData.insert(m_PrintData.end(), {0x0A}); + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + m_newObj.clear(); + m_newObj[10] = ("备注:单位:吨"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + if(msg.find("ElectChapter") != msg.end()) + { + //打印电子章设置横向绝对位置 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xB6, 0x03}); + //打印电子章设置纵向绝对位置 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x26, 0x02}); + //打印下载NV位图 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); + //打印条码设置横向绝对位置 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x24, 0xE4, 0x02}); + //打印条码设置纵向绝对位置 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x24, 0x0D, 0x02}); + //设置条码打印字符和条码宽度,高度 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6F, 0x00, 0x08, 0x00, 0x02}); + //打印条码命令 + //票据号 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x0B, 0x51, 0x41, 0x2C}); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x00}); + } + //打印 + m_PrintData.insert(m_PrintData.end(), {0x0C}); - //=========打印===================== - //打印页 - m_PrintData.insert(m_PrintData.end(), {0x11, 0x0C}); - //退出页模式 - m_PrintData.insert(m_PrintData.end(), {0x11, 0x22}); + //切纸 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x56, 0x01}); +} - //盖章 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x02});//设置右对齐 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4B, 0x60});//向上调整位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4B, 0x60});//向上调整位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4B, 0x60});//向上调整位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4B, 0x60});//向上调整位置 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4B, 0x40});//向上调整位置 - m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00});//打印下载NV位图 +//北洋打印机打印通用称重票 +void MsgHandler::Print3_2(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + int x = 40; + int y = 0; + int dx = 590; + int dy = 850; + char s[12]; - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x64, 0x06});//空行并打印 - m_PrintData.insert(m_PrintData.end(), {0x1B, 0x69});//切纸 -} \ No newline at end of file + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + //打印物料过衡单 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("过衡单"); //过衡单 + } + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + szTemp = ot::UTF8ToGB2312(" "); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + + //=============================开票时间===================================== + + //加顶框 + //加顶框 + m_newObj[1] = ("┌"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====票据号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("票据号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====车牌号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("车牌号"); + m_newObj[120] = ("│"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=======供应商===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + it = msg.find("SupplierTitle"); + if(it != msg.end()) + { + m_newObj[26] = it->second; + } + m_newObj[120] = ("│"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========品种===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("品种"); + m_newObj[120] = ("│"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========皮重时间===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重时间"); + m_newObj[120] = ("│"); + it = msg.find("TareWeightTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========毛重时间===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重时间"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeightTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========毛重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========皮重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重"); + m_newObj[120] = ("│"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========净重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("净重"); + m_newObj[120] = ("│"); + + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========操作员===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("操作员"); + m_newObj[120] = ("│"); + it = msg.find("Operator"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========备注===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("备注"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); +} + +//北洋打印机打印转煤票 +void MsgHandler::Print4_2(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + int x = 40; + int y = 0; + int dx = 590; + int dy = 850; + char s[12]; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 + } + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + szTemp = ot::UTF8ToGB2312(" "); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + //=============================开票时间===================================== + + //加顶框 + m_newObj[1] = ("┌"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====票据号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("称重编号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========时间===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("时间"); + m_newObj[120] = ("│"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====车牌号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("车牌号"); + m_newObj[120] = ("│"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====转出煤场===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("转出煤场"); + m_newObj[120] = ("│"); + it = msg.find("OUTCoalYard"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====转入煤场===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("转入煤场"); + m_newObj[120] = ("│"); + it = msg.find("INCoalYard"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====装载单位===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("装载单位"); + m_newObj[120] = ("│"); + it = msg.find("Stevedor"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====承运单位===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("承运单位"); + m_newObj[120] = ("│"); + it = msg.find("Transport"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========毛重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========皮重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重"); + m_newObj[120] = ("│"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========净重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("净重"); + m_newObj[120] = ("│"); + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========备注===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("备注"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); +} + +//北洋打印机打印绥阳大宗物资重磅票 +void MsgHandler::Print5_2(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + int x = 40; + int y = 0; + int dx = 590; + int dy = 850; + char s[12]; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印 + szTemp=ot::UTF8ToGB2312("国家电投集团"); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + //打印名称 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + szTemp=ot::UTF8ToGB2312("提货单"); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A, 0x0A}); + + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + //=============================内容===================================== + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + + //====票据号===================== + + m_newObj.clear(); + m_newObj[15] = ("NO:"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====品种===================== + + m_newObj.clear(); + m_newObj[15] = ("品种:"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========批号===================== + + m_newObj.clear(); + m_newObj[15] = ("批号:"); + it = msg.find("BatchNumber"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====司机===================== + + m_newObj.clear(); + m_newObj[15] = ("司机:"); + it = msg.find("Operator"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====车牌号===================== + + m_newObj.clear(); + m_newObj[15] = ("车牌号:"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====供应商===================== + + m_newObj.clear(); + m_newObj[15] = ("供应商:"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====目的地===================== + + m_newObj.clear(); + m_newObj[15] = ("目的地:"); + it = msg.find("Destination"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====提货地===================== + + m_newObj.clear(); + m_newObj[15] = ("提货地:"); + m_newObj[160] = ("水泥分厂"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====毛重===================== + + m_newObj.clear(); + m_newObj[15] = ("毛重(t):"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====皮重===================== + + m_newObj.clear(); + m_newObj[15] = ("皮重(t):"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====净重===================== + + m_newObj.clear(); + m_newObj[15] = ("净重(t):"); + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====扣重===================== + + m_newObj.clear(); + m_newObj[15] = ("扣重(t):"); + it = msg.find("RockWeight"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====进厂时间===================== + + m_newObj.clear(); + m_newObj[15] = ("进厂时间:"); + it = msg.find("EnterTime"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====出厂时间===================== + + m_newObj.clear(); + m_newObj[15] = ("出厂时间:"); + it = msg.find("LeaveTime"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); +} + +//北洋打印机提货单发货单 +void MsgHandler::Print6_2(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + int x = 40; + int y = 0; + int dx = 590; + int dy = 750; + char s[12]; + + std::string title, title_corp; + std::string sender, receiver; + + it = msg.find("Title"); + if(it != msg.end()) + { + if(it->second == "提货单") + { + title = ot::UTF8ToGB2312("提货单"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + sender = it->second; + } + it = msg.find("Customer"); + if(it != msg.end()) + { + receiver = it->second; + } + } + else + { + title = ot::UTF8ToGB2312("发货单"); + it = msg.find("Supplier"); + if(it != msg.end()) + { + receiver = it->second; + } + it = msg.find("Customer"); + if(it != msg.end()) + { + sender = it->second; + } + } + } + + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + title_corp = ot::UTF8ToGB2312(it->second.c_str()); + } + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + + //设置打印区域 + memcpy(s, &x, 2); + memcpy(s + 2, &y, 2); + memcpy(s + 4, &dx, 2); + memcpy(s + 6, &dy, 2); + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x57}); + m_PrintData.insert(m_PrintData.end(), s, s+8); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印标题 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), title_corp.begin(), title_corp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), title.begin(), title.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + //=============================内容===================================== + + std::vector names ={"NO:", "规格", "车牌号", "收货单位", "供货单位", "开票时间", "验收人"}; + std::vector items; + + it = msg.find("QueueID"); + if(it != msg.end()) + { + items.push_back(it->second); + } + it = msg.find("GoodsType"); + if(it != msg.end()) + { + items.push_back(it->second); + } + it = msg.find("CarNumber"); + if(it != msg.end()) + { + items.push_back(it->second); + } + items.push_back(receiver); + items.push_back(sender); + it = msg.find("DateTime"); + if(it != msg.end()) + { + items.push_back(it->second); + } + items.push_back(" "); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + + //顶框线 + m_newObj.clear(); + m_newObj[1] = ("┌"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + for(int i = 0; i < names.size(); i++) + { + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = names[i]; + m_newObj[120] = ("│"); + m_newObj[145] = items[i]; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("备注"); + m_newObj[120] = ("│"); + m_newObj[280] = ("盖章处"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //底框线 + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56, 0x01}); +} + +//HS-K33打印排队票 +void MsgHandler::Print1_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印磅单 - 标题改为中电(普安)发电有限责任公司排队票 + m_newObj.clear(); + m_newObj[340] = ("中电(普安)发电有限责任公司排队票"); + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x30, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + + //设置左对齐(标题下面的内容全部靠左) + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + + //车牌号 + m_newObj.clear(); + m_newObj[0] = ("车牌号:"); + it = msg.find("CarNumber"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[12] = it->second; + } + else + { + m_newObj[12] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //时间 + m_newObj.clear(); + m_newObj[0] = ("时间:"); + it = msg.find("DateTime"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[8] = it->second; + } + else + { + m_newObj[8] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //排队号 + m_newObj.clear(); + m_newObj[0] = ("排队号:"); + it = msg.find("QueueID"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[10] = it->second; + } + else + { + m_newObj[10] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //供应商 + m_newObj.clear(); + m_newObj[0] = ("采样编码:"); + it = msg.find("Supplier"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[12] = it->second; + } + else + { + m_newObj[12] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //品种 + m_newObj.clear(); + m_newObj[0] = ("品 种:"); + it = msg.find("GoodsType"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[12] = it->second; + } + else + { + m_newObj[12] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //采样机号 + m_newObj.clear(); + m_newObj[0] = ("采样机:"); + it = msg.find("sample_machine"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[12] = it->second; + } + else + { + m_newObj[12] = ("null"); + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //煤场 + m_newObj.clear(); + m_newObj[0] = ("煤 场:"); + it = msg.find("CoalYard"); + if(it != msg.end() && !it->second.empty()) + { + m_newObj[12] = it->second; + } + else + { + m_newObj[12] = (""); // 煤场缺省:冒号后无内容(不再打印 null) + } + blTemp = BuildStringLine_HSK33(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); //换行 + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} + +//HS-K33打印普安燃料轻磅票 +void MsgHandler::Print2_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印磅单 + //打印抬头 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + szTemp=ot::UTF8ToGB2312("燃料过磅单"); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + //设置左边空白量 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); + + m_newObj.clear(); + m_newObj[430] = ("单位:吨"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //加顶框 + m_newObj.clear(); + m_newObj[1] = ("┌"); + m_newObj[6] = ("┬"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====票据号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("编 号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========供应商===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("供应商"); + m_newObj[120] = ("│"); + it = msg.find("Supplier"); + if (it != msg.end()) + { + if (it->second.length() > 24) + { + szTemp = it->second.substr(0, 24); + m_newObj[145] = szTemp; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + szTemp=it->second.substr(24, it->second.length()-24); + m_newObj[145] = szTemp; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + else + { + m_newObj[145] = it->second; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + } + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========供应商识别名===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("供 应"); + m_newObj[120] = ("│"); + it = msg.find("SupplierTitle"); + if (it != msg.end()) + { + if (it->second.length() > 24) + { + szTemp = it->second.substr(0, 24); + m_newObj[145] = szTemp; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("识别名"); + m_newObj[120] = ("│"); + szTemp=it->second.substr(24, it->second.length()-24); + m_newObj[145] = szTemp; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + else + { + m_newObj[145] = it->second; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("识别名"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + } + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====品种车牌===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("品 种"); + m_newObj[120] = ("│"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("车 牌"); + m_newObj[383] = ("│"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========时间===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("时 间"); + m_newObj[120] = ("│"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====毛重皮重===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛 重"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("皮 重"); + m_newObj[383] = ("│"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====扣矸扣水===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("扣 矸"); + m_newObj[120] = ("│"); + it = msg.find("RockWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("扣 水"); + m_newObj[383] = ("│"); + it = msg.find("WaterWeight"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========扣杂\净重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("扣 杂"); + m_newObj[120] = ("│"); + it = msg.find("OtherWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("净 重"); + m_newObj[383] = ("│"); + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置章位置 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x7C, 0x01}); + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x70, 0x01, 0x00}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} + +//HS-K33打印转煤票 +void MsgHandler::Print4_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印转煤单 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("转煤单"); //转煤单 + } + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + szTemp=ot::UTF8ToGB2312(" "); + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + + //=============================开票时间===================================== + + //加顶框 + m_newObj[1] = ("┌"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====票据号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("称重编号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========时间===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("时间"); + m_newObj[120] = ("│"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====车牌号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("车牌号"); + m_newObj[120] = ("│"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====品种===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("品 种"); + m_newObj[120] = ("│"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====转出煤场===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("转出煤场"); + m_newObj[120] = ("│"); + it = msg.find("OUTCoalYard"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====转入煤场===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("转入煤场"); + m_newObj[120] = ("│"); + it = msg.find("INCoalYard"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + + m_newObj[6] = ("┼"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========毛重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重"); + m_newObj[120] = ("│"); + + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + + //=========皮重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("皮重"); + m_newObj[120] = ("│"); + + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========净重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("净重"); + m_newObj[120] = ("│"); + + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[384] = ("│"); + m_newObj[404] = ("吨"); + + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====磅号===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("磅号"); + m_newObj[120] = ("│"); + it = msg.find("DeviceName"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + + m_newObj[6] = ("┼"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========备注===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("备注"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} + +//HS-K33打印配煤票 +void MsgHandler::Print5_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + + //打印配煤票 + it = msg.find("CarNumber"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312(" "); // 配煤票 + } + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + it = msg.find("Warning"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61 ,0x01}); + //票据号 + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x6B, 0x61, 0x08, 0x02, static_cast(szTemp.length()), static_cast(szTemp.length()>>8)}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + //设置居右 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x02}); + it = msg.find("GrossWeightTime"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //向前走纸行 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x64, 0x04}); + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} + +//HS-K33打印灰磅票 +void MsgHandler::Print6_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x0F}); + + //打印抬头 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312("国家电投集团"); + } + m_PrintData.insert(m_PrintData.end(), {0x0A, 0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()) + ot::UTF8ToGB2312("提货单"); + } + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + //换行 + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====票据号===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("No:"); + m_newObj[120] = (" "); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====品种===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("品 种:"); + m_newObj[120] = (" "); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====批号===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("批 号:"); + m_newObj[120] = (" "); + it = msg.find("BatchNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====司机===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("司 机:"); + m_newObj[120] = (" "); + it = msg.find("Operator"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====车牌号===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("车牌号:"); + m_newObj[120] = (" "); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====客户===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("客 户:"); + m_newObj[120] = (" "); + it = msg.find("Supplier"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====目的地===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("目的地:"); + m_newObj[120] = (" "); + it = msg.find("Destination"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====提货地===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("提货地:"); + m_newObj[120] = (" "); + m_newObj[145] = ("水泥分厂"); + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========毛重====================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("毛重(t):"); + m_newObj[120] = (" "); + + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========皮重====================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("皮重(t):"); + m_newObj[120] = (" "); + + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========净重====================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("净重(t):"); + m_newObj[120] = (" "); + + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //====扣重===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("扣重(t):"); + m_newObj[120] = (" "); + + it = msg.find("RockWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========进厂时间===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("进厂时间:"); + m_newObj[120] = (" "); + it = msg.find("EnterTime"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========出厂时间===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("出厂时间:"); + m_newObj[120] = (" "); + it = msg.find("LeaveTime"); + if(it != msg.end()) + { + m_newObj[160] = it->second; + } + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[6] = (" "); + m_newObj[23] = (" "); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + + //=========备注===================== + + m_newObj.clear(); + m_newObj[1] = (" "); + m_newObj[26] = ("备注"); + m_newObj[120] = (" "); + m_newObj[145] = (" "); + m_newObj[528] = (" "); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} + +//HS-K33打印机打印黔西过磅票 +void MsgHandler::Print8_3(const std::map& msg) +{ + //这里组装打印输出内容 + std::string szTemp; + std::map::const_iterator it; + std::vector blTemp; + std::map m_newObj; + + m_PrintData.clear(); + //初始化打印机 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x40}); + //设置中文模式 + m_PrintData.insert(m_PrintData.end(), {0x1C, 0x21, 0x00}); + //设置居中 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x01}); + //设置1号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x11}); + + //打印磅单 + //打印标题 + it = msg.find("TitleCorp"); + if(it != msg.end()) + { + szTemp = ot::UTF8ToGB2312(it->second.c_str()); + } + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + szTemp = ot::UTF8ToGB2312("过磅单(出厂)"); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + m_PrintData.insert(m_PrintData.end(), szTemp.begin(), szTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //设置0号字 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x21, 0x00}); + //设置左对齐 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x61, 0x00}); + //设置页模式 + m_PrintData.insert(m_PrintData.end(), {0x1B, 0x4C}); + //设置左边空白量 + m_PrintData.insert(m_PrintData.end(), {0x1D, 0x4C, 0x3C, 0x00}); + + //加顶框 + m_newObj.clear(); + m_newObj[1] = ("┌"); + m_newObj[6] = ("┬"); + m_newObj[23] = ("┐"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====票据号===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("编号"); + m_newObj[120] = ("│"); + it = msg.find("CoalNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //=========收货单位===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("收货单位"); + m_newObj[120] = ("│"); + it = msg.find("Customer"); + if (it != msg.end()) + { + if (it->second.length() > 24) + { + m_newObj[145] = it->second.substr(0, 24); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[145] = it->second.substr(24, it->second.length() - 24); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + } + else + { + m_newObj[145] = it->second; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + } + } + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + //=========供货单位===================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("供货单位"); + m_newObj[120] = ("│"); + it = msg.find("Supplier"); + if (it != msg.end()) + { + if (it->second.length() > 24) + { + m_newObj[145] = it->second.substr(0, 24); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[145] = it->second.substr(24, it->second.length() - 24); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + } + else + { + m_newObj[145] = it->second; + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + } + } + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + //====品种===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("规格"); + m_newObj[120] = ("│"); + it = msg.find("GoodsType"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + //====车牌===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("车牌"); + m_newObj[120] = ("│"); + it = msg.find("CarNumber"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[264] = ("│"); + m_newObj[289] = ("操作员"); + m_newObj[383] = ("│"); + it = msg.find("Operator"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + //====时间===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("时间"); + m_newObj[120] = ("│"); + it = msg.find("DateTime"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┬"); + m_newObj[17] = ("┬"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + //====毛重皮重===================== + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("毛重(吨)"); + m_newObj[120] = ("│"); + it = msg.find("GrossWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("皮重(吨)"); + m_newObj[383] = ("│"); + it = msg.find("TareWeight"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┼"); + m_newObj[17] = ("┼"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + //=========扣杂\净重====================== + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("净重(吨)"); + m_newObj[120] = ("│"); + it = msg.find("SuttleWeight"); + if(it != msg.end()) + { + m_newObj[145] = it->second; + } + + m_newObj[264] = ("│"); + m_newObj[289] = ("扣重(吨)"); + m_newObj[383] = ("│"); + it = msg.find("RockWeight"); + if(it != msg.end()) + { + m_newObj[408] = it->second; + } + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + // 打印电子印章图片 + bool e_seal = true; //ElectChapter; + if(!e_seal) + { + m_newObj.clear(); + m_newObj[1] = ("├"); + m_newObj[6] = ("┼"); + m_newObj[12] = ("┴"); + m_newObj[17] = ("┴"); + m_newObj[23] = ("┤"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[26] = ("备注盖章"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + m_newObj.clear(); + m_newObj[1] = ("│"); + m_newObj[120] = ("│"); + m_newObj[528] = ("│"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + } + + m_newObj.clear(); + m_newObj[1] = ("└"); + m_newObj[6] = ("┴"); + m_newObj[23] = ("┘"); + blTemp = BuildLine(24,m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); //换行 + + it = msg.find("e_seal"); + if(it != msg.end()) + { + m_newObj.clear(); + m_newObj[26] = ("盖章:"); + blTemp = BuildStringLine(m_newObj); + m_PrintData.insert(m_PrintData.end(), blTemp.begin(), blTemp.end()); + m_PrintData.insert(m_PrintData.end(), {0x0A}); + + // if(!PrintImage("image/qx-seal.bmp")) { + // m_PrintData.append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar).append(EnterChar); + // } + } + + //打印、切纸 + m_PrintData.insert(m_PrintData.end(), {0x0C, 0x1D, 0x56 ,0x42, 0x00}); +} diff --git a/print/MsgHandler.hpp b/print/MsgHandler.hpp index 1d9e15e..50a8e8e 100644 --- a/print/MsgHandler.hpp +++ b/print/MsgHandler.hpp @@ -1,5 +1,5 @@ -#ifndef _MSGHANDLER_HPP_ -#define _MSGHANDLER_HPP_ +#ifndef _MSGHANDLER2_HPP_ +#define _MSGHANDLER2_HPP_ #include #include @@ -44,13 +44,22 @@ private: void Page_Cut(std::vector& Data); void Page_End(std::vector& Data); void GtstrLength(int iVal, char *p); - bool is_chinese_char(const std::string& str, size_t start_byte); - int get_utf8_char_width(const std::string& str, size_t start_byte); - size_t get_utf8_display_width(const std::string& str); - std::vector split_utf8_by_width(const std::string& str, size_t max_width); - bool check_odd(const std::string date); void Print1_1(const std::map& msg); + + void Print1_2(const std::map& msg); + void Print2_2(const std::map& msg); + void Print3_2(const std::map& msg); + void Print4_2(const std::map& msg); + void Print5_2(const std::map& msg); + void Print6_2(const std::map& msg); + + void Print1_3(const std::map& msg); + void Print2_3(const std::map& msg); + void Print4_3(const std::map& msg); + void Print5_3(const std::map& msg); + void Print6_3(const std::map& msg); + void Print8_3(const std::map& msg); }; -#endif \ No newline at end of file +#endif diff --git a/print/Publisher.cxx b/print/Publisher.cxx index d060459..945dc18 100644 --- a/print/Publisher.cxx +++ b/print/Publisher.cxx @@ -33,7 +33,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" #include "MsgHandler.hpp" @@ -48,7 +48,7 @@ PublisherApp::PublisherApp( , publisher_(nullptr) , topic_(nullptr) , writer_(nullptr) - , type_(new InternalSystem::PrintRspPubSubType()) + , type_(new WeighingSystem::PrintRspPubSubType()) , matched_(0) , samples_sent_(0) , stop_(false) @@ -82,7 +82,7 @@ PublisherApp::PublisherApp( // Create the topic TopicQos topic_qos = TOPIC_QOS_DEFAULT; participant_->get_default_topic_qos(topic_qos); - topic_ = participant_->create_topic("PrintRspTopic", type_.get_type_name(), topic_qos); + topic_ = participant_->create_topic("PrintRsp", type_.get_type_name(), topic_qos); if (topic_ == nullptr) { throw std::runtime_error("InternalSystem::PrintRsp Topic initialization failed"); @@ -149,7 +149,7 @@ void PublisherApp::run(std::shared_ptr handler) { if(!MsgData::PrintReq_queue_.empty()) { - InternalSystem::PrintReq req = std::move(MsgData::PrintReq_queue_.front()); + WeighingSystem::PrintReq req = std::move(MsgData::PrintReq_queue_.front()); MsgData::PrintReq_queue_.pop(); lock.unlock(); @@ -189,7 +189,7 @@ bool PublisherApp::publish() if (!is_stopped()) { /* Initialize your structure here */ - InternalSystem::PrintReq sample_; + WeighingSystem::PrintReq sample_; ret = (RETCODE_OK == writer_->write(&sample_)); } return ret; @@ -204,4 +204,4 @@ void PublisherApp::stop() { stop_.store(true); cv_.notify_one(); -} \ No newline at end of file +} diff --git a/print/Publisher.hpp b/print/Publisher.hpp index 3b86061..282a145 100644 --- a/print/Publisher.hpp +++ b/print/Publisher.hpp @@ -73,4 +73,4 @@ private: std::atomic stop_; }; -#endif // FAST_DDS_GENERATED__PUBLISHERAPP_HPP \ No newline at end of file +#endif // FAST_DDS_GENERATED__PUBLISHERAPP_HPP diff --git a/print/Subscriber.cxx b/print/Subscriber.cxx index 96d2f30..82594b2 100644 --- a/print/Subscriber.cxx +++ b/print/Subscriber.cxx @@ -32,7 +32,7 @@ #include #include -#include "SystemPubSubTypes.hpp" +#include "WeighingDDSTypePubSubTypes.hpp" #include "msg.hpp" #include "DEBUG.hpp" @@ -46,7 +46,7 @@ SubscriberApp::SubscriberApp( , subscriber_(nullptr) , topic_(nullptr) , reader_(nullptr) - , type_(new InternalSystem::PrintReqPubSubType()) + , type_(new WeighingSystem::PrintReqPubSubType()) , samples_received_(0) , stop_(false) { @@ -133,9 +133,12 @@ void SubscriberApp::on_data_available( std::string topic_name = reader->get_topicdescription()->get_name(); DEBUG(topic_name << " Topic receviced."); + // 在第136行之前添加: + std::cout << "[Print] DEBUG: topic_name from DDS = [" << topic_name << "]" << std::endl; + std::cout << "[Print] DEBUG: topic_name == PrintReq ? " << (topic_name == "PrintReq" ? "YES" : "NO") << std::endl; if (topic_name == "PrintReq") { - InternalSystem::PrintReq sample_; + WeighingSystem::PrintReq sample_; while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) { if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) @@ -143,10 +146,15 @@ void SubscriberApp::on_data_available( { std::unique_lock lock(MsgData::queue_cv_mtx_); MsgData::PrintReq_queue_.push(std::move(sample_)); + + std::cout << "[Print] DEBUG: PUSHING to PrintReq_queue_ (queue size before: " << MsgData::PrintReq_queue_.size() << ")" << std::endl; + + std::cout << "[Print] DEBUG: Publisher polling queue, empty() = " << MsgData::PrintReq_queue_.empty() << std::endl; lock.unlock(); } } } + std::cout << "[Print] DEBUG: HandleDdsMsg called successfully" << std::endl; } } @@ -168,4 +176,4 @@ void SubscriberApp::stop() { stop_.store(true); terminate_cv_.notify_all(); -} \ No newline at end of file +} diff --git a/print/Subscriber.hpp b/print/Subscriber.hpp index 81132dc..f6d8448 100644 --- a/print/Subscriber.hpp +++ b/print/Subscriber.hpp @@ -29,7 +29,7 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener { @@ -72,4 +72,4 @@ private: std::condition_variable terminate_cv_; }; -#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP \ No newline at end of file +#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP diff --git a/print/main.cxx b/print/main.cxx index e96bfec..2073f2d 100644 --- a/print/main.cxx +++ b/print/main.cxx @@ -63,7 +63,7 @@ std::string parse_signal( } } -std::queue MsgData::PrintReq_queue_; +std::queue MsgData::PrintReq_queue_; std::mutex MsgData::queue_cv_mtx_; int main(int argc, char** argv) diff --git a/print/msg.hpp b/print/msg.hpp index 6068f3d..170f8c8 100644 --- a/print/msg.hpp +++ b/print/msg.hpp @@ -3,12 +3,12 @@ #include #include -#include "System.hpp" +#include "WeighingDDSType.hpp" class MsgData { public: - static std::queue PrintReq_queue_; + static std::queue PrintReq_queue_; static std::mutex queue_cv_mtx_; }; -#endif \ No newline at end of file +#endif diff --git a/readcard/MsgHandler.cxx b/readcard/MsgHandler.cxx new file mode 100644 index 0000000..9745b80 --- /dev/null +++ b/readcard/MsgHandler.cxx @@ -0,0 +1,1583 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "MsgHandler.hpp" +#include "DEBUG.hpp" +#include "../common/SerialMsgHandler.hpp" + +#include +#include + +#define BEEP_CARD 1 +#define FIND_CARD 2 +#define SET_PWD 3 +#define READ_CARD 4 +#define WRITE_CARD 5 +#define STOP_CARD 8 +#define WRITE_BLOCK_ID 0x04 // 写数据的块号 + +namespace +{ +const char* PendingCommandName(PendingCommand command) +{ + switch (command) + { + case PendingCommand::Find: return "FIND"; + case PendingCommand::SetPassword: return "SET_PASSWORD"; + case PendingCommand::ReadBlock: return "READ_BLOCK"; + case PendingCommand::WriteBlock: return "WRITE_BLOCK"; + case PendingCommand::Stop: return "STOP"; + case PendingCommand::Beep: return "BEEP"; + default: return "NONE"; + } +} + +uint16_t MapDeviceError(uint8_t command, uint8_t status) +{ + if (status == 0) return 0; + if (status == 0x0B) return 0x0012; // authentication failure + if (status == 0x0C) return command == READ_CARD ? 0x0013 : 0x0014; + if (status == 0x0A) return 0x001A; // invalid block + return command == WRITE_CARD ? 0x0014 : 0x0013; +} +std::string CardStateName(CardState state) +{ + switch (state) + { + case CardState::AUTO_FIND: return "AUTO_FIND"; + case CardState::WAIT_DDS_READ: return "WAIT_DDS_READ"; + case CardState::WAIT_DDS_WRITE: return "WAIT_DDS_WRITE"; + case CardState::WAIT_DDS_DECISION: return "WAIT_DDS_DECISION"; + case CardState::WAIT_DDS_WRITE_NEXT: return "WAIT_DDS_WRITE_NEXT"; + } + return "UNKNOWN"; +} + +std::string HexBytes(const std::vector& bytes) +{ + std::ostringstream out; + out << std::hex << std::uppercase << std::setfill('0'); + for (uint8_t byte : bytes) + { + out << std::setw(2) << static_cast(byte) << ' '; + } + return out.str(); +} +} + +MsgHandler::MsgHandler() : fd(-1), m_CardState(CardState::AUTO_FIND), + m_CurrentIndex(0), + m_ResultCode(0), m_BlockCount(0), + m_BlockOpStartTime(std::chrono::steady_clock::now()), + m_CurrentOperatingBlock(0), + m_PendingReadResponse(std::vector()), + OnCardDetected(nullptr) +{ + +} + +bool MsgHandler::OpenPort(const std::string& port, const std::string& baudrate) +{ + return true; +} + +void MsgHandler::ClosePort() +{ + if (fd != -1) + { + close(fd); + fd = -1; + } +} + +bool MsgHandler::SetDevice(const std::string& device) +{ + this->device = device; + return true; +} + +int MsgHandler::SendDeviceMsg(const std::vector& data) +{ + DEBUG("SERIAL TX device=" << this->device << " size=" << data.size() + << " bytes=" << HexBytes(data)); + + int bytesWritten = SendMsg(data); + DEBUG("SERIAL TX result=" << bytesWritten << "/" << data.size()); + return bytesWritten; +} + +int MsgHandler::RecvDeviceMsg(std::vector& data, int timeoutMs) +{ + int bytesRead = RecvMsg(data, timeoutMs); + + if (bytesRead > 0) + { + DEBUG("SERIAL RX device=" << this->device << " size=" << data.size() + << " bytes=" << HexBytes(data)); + } + return bytesRead; +} + +int MsgHandler::SendMsg(const std::vector& data) +{ + std::lock_guard lock(mtx_); + + if (fd == -1) + { + perror("设备未打开"); + return -1; + } + + size_t totalWritten = 0; + while (totalWritten < data.size()) + { + const ssize_t written = write(fd, data.data() + totalWritten, + data.size() - totalWritten); + if (written < 0) + { + perror("发送数据失败"); + return -1; + } + if (written == 0) + { + break; + } + totalWritten += static_cast(written); + } + + return static_cast(totalWritten); +} + +int MsgHandler::RecvMsg(std::vector& data, int timeoutMs) +{ + std::lock_guard lock(mtx_); + + if (fd == -1) + { + perror("设备未打开\n"); + return -1; + } + + const auto deadline = std::chrono::steady_clock::now() + + std::chrono::milliseconds(std::max(0, timeoutMs)); + + while (true) + { + if (TryExtractDeviceFrame(data)) + { + return static_cast(data.size()); + } + + const auto remaining = std::chrono::duration_cast( + deadline - std::chrono::steady_clock::now()).count(); + if (remaining <= 0) + { + // 兼容现场设备短读帧:只要块号和 16 字节数据已经到齐, + // 即 LEN + header + block + data 至少 21 字节,就交给读卡解析。 + if (m_ReceiveBuffer.size() >= 21U + && m_ReceiveBuffer[1] == 0x01U + && m_ReceiveBuffer[2] == READ_CARD + && m_ReceiveBuffer[3] == 0x00U) + { + data = m_ReceiveBuffer; + m_ReceiveBuffer.clear(); + DEBUG("SERIAL RX short READ_BLOCK frame accepted for data extraction, size=" + << data.size() << " bytes=" << HexBytes(data)); + return static_cast(data.size()); + } + if (!m_ReceiveBuffer.empty()) + { + const std::string incomplete = HexBytes(m_ReceiveBuffer); + const size_t bufferedSize = m_ReceiveBuffer.size(); + m_ReceiveBuffer.clear(); + DEBUG("SERIAL RX incomplete frame timeout buffered=" + << bufferedSize << " bytes=" << incomplete); + if (RetryCurrentReadBlock("incomplete frame")) + { + continue; + } + } + return 0; + } + + fd_set readfds; + struct timeval tv; + FD_ZERO(&readfds); + FD_SET(fd, &readfds); + tv.tv_sec = static_cast(remaining / 1000); + tv.tv_usec = static_cast((remaining % 1000) * 1000); + + const int ret = select(fd + 1, &readfds, nullptr, nullptr, &tv); + if (ret < 0) + { + if (errno == EINTR) + { + continue; + } + perror("select错误"); + return -1; + } + if (ret == 0) + { + continue; + } + + int available = 0; + if (ioctl(fd, FIONREAD, &available) < 0) + { + perror("ioctl FIONREAD失败"); + return -1; + } + if (available <= 0) + { + continue; + } + + std::vector received(static_cast(available)); + const ssize_t bytesRead = read(fd, received.data(), received.size()); + if (bytesRead < 0) + { + if (errno == EINTR) + { + continue; + } + perror("读取数据失败"); + return -1; + } + if (bytesRead == 0) + { + continue; + } + + received.resize(static_cast(bytesRead)); + const auto rx_ms = std::chrono::duration_cast( + std::chrono::steady_clock::now().time_since_epoch()).count(); + DEBUG("SERIAL RX RAW t_ms=" << rx_ms << " available=" << available + << " read=" << bytesRead << " buffered_before=" << m_ReceiveBuffer.size() + << " bytes=" << HexBytes(received)); + + m_ReceiveBuffer.insert(m_ReceiveBuffer.end(), received.begin(), received.end()); + } +} + +bool MsgHandler::TryExtractDeviceFrame(std::vector& data) +{ + data.clear(); + + while (!m_ReceiveBuffer.empty()) + { + const size_t expectedSize = static_cast(m_ReceiveBuffer.front()) + 1U; + if (expectedSize < 6U || expectedSize > 256U) + { + DEBUG("Discarding invalid device frame length=" + << static_cast(m_ReceiveBuffer.front())); + m_ReceiveBuffer.erase(m_ReceiveBuffer.begin()); + continue; + } + + if (m_ReceiveBuffer.size() < expectedSize) + { + return false; + } + + std::vector frame(m_ReceiveBuffer.begin(), + m_ReceiveBuffer.begin() + expectedSize); + m_ReceiveBuffer.erase(m_ReceiveBuffer.begin(), + m_ReceiveBuffer.begin() + expectedSize); + + if (!IsValidDeviceFrame(frame)) + { + DEBUG("Discarding invalid device frame, length=" << frame.size() + << " bytes=" << HexBytes(frame)); + if (frame.size() >= 4U + && frame[1] == 0x01U + && frame[2] == READ_CARD + && m_PendingCommand == PendingCommand::ReadBlock + && RetryCurrentReadBlock("CRC validation failure")) + { + return false; + } + continue; + } + + data = std::move(frame); + return true; + } + + return false; +} + +bool MsgHandler::RetryCurrentReadBlock(const char* reason) +{ + if (m_PendingCommand != PendingCommand::ReadBlock + || !m_BlockOperationPending + || m_ReadBlockRetryCount >= READ_BLOCK_MAX_RETRIES) + { + DEBUG("Read block retry unavailable: reason=" << reason + << " attempts=" << static_cast(m_ReadBlockRetryCount) + << " max=" << static_cast(READ_BLOCK_MAX_RETRIES)); + return false; + } + + const uint8_t block = m_PendingBlock; + ++m_ReadBlockRetryCount; + DEBUG("Retrying read block=" << static_cast(block) + << " attempt=" << static_cast(m_ReadBlockRetryCount) + << "/" << static_cast(READ_BLOCK_MAX_RETRIES) + << " reason=" << reason); + + std::this_thread::sleep_for(std::chrono::milliseconds(READ_BLOCK_RETRY_DELAY_MS)); + m_ReceiveBuffer.clear(); + if (fd != -1) + { + tcflush(fd, TCIFLUSH); + } + DEBUG("Read block retry buffer cleared, block=" << static_cast(block)); + ReadCard({block}); + return true; +} + +bool MsgHandler::HasActiveDeviceOperation() const +{ + return m_PendingCommand != PendingCommand::None || m_BlockOperationPending; +} + +int MsgHandler::HandleFindResponse(const std::vector& data, + WeighingSystem::ReadCardRsp& rsp) +{ + m_PendingCommand = PendingCommand::None; + if (data[3] != 0) + { + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + rsp.msg()["find"].push_back(data[3]); + return 1; + } + if (data.size() < 10U) + { + DEBUG("FindCard success frame too short, size=" << data.size()); + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + return 0; + } + + const uint32_t cardIdValue = (data[4] << 24) | (data[5] << 16) + | (data[6] << 8) | data[7]; + std::stringstream ss; + ss << std::hex << std::uppercase << std::setw(8) << std::setfill('0') << cardIdValue; + m_CardId = ss.str(); + m_AutoFind = false; + SetCardState(CardState::WAIT_DDS_READ); + rsp.msg()["find"].insert(rsp.msg()["find"].end(), data.begin() + 4, data.begin() + 8); + { + std::lock_guard lock(trigger_mtx_); + pending_trigger_card_ = m_CardId; + } + DEBUG("Card found: " << m_CardId << ", ready for DDS read or write command"); + return 1; +} + +bool MsgHandler::IsValidDeviceFrame(const std::vector& data) +{ + if (data.size() < 6U) + { + return false; + } + const bool shortReadFrame = data.size() >= 21U + && data[0] != static_cast(data.size() - 1U) + && data[1] == 0x01U + && data[2] == READ_CARD + && data[3] == 0x00U; + if (!shortReadFrame && data.size() != static_cast(data[0]) + 1U) + { + return false; + } + if (data[1] != 0x01) + { + DEBUG("Invalid device fixed byte=" << std::hex << static_cast(data[1])); + return false; + } + + if (shortReadFrame) + { + DEBUG("Accepting short READ_BLOCK frame without length/CRC enforcement, size=" + << data.size()); + return true; + } + if (!VERIFY_DEVICE_CRC) + { + DEBUG("CRC_BYPASS device frame accepted, size=" << std::dec << data.size() + << " cmd=0x" << std::hex << static_cast(data[2])); + return true; + } + + std::vector crcData(data.begin(), data.end() - 2); + CRC16(crcData); + // 现场实帧确认:响应 CRC 与本地发送方向一致,高字节在前、低字节在后。 + const bool valid = crcData[crcData.size() - 2] == data[data.size() - 2] + && crcData[crcData.size() - 1] == data[data.size() - 1]; + if (!valid) + { + DEBUG("Invalid device CRC expected(high/low)=" + << std::hex << static_cast(crcData[crcData.size() - 2]) << "/" + << static_cast(crcData[crcData.size() - 1]) + << " actual(high/low)=" << static_cast(data[data.size() - 2]) + << "/" << static_cast(data[data.size() - 1])); + } + return valid; +} + +bool MsgHandler::IsDataBlock(uint8_t block) +{ + return block < 64U && (block % 4U) != 3U; +} + +void MsgHandler::HandleDdsMsg(const std::map>& msg, + unsigned long index) +{ + std::lock_guard lock(mtx_); + if (msg.size() != 1U) + { + DEBUG("Rejecting DDS command: expected exactly one msg key, actual=" << msg.size()); + return; + } + auto cmd = msg.begin(); + + DEBUG("HandleDdsMsg: cmd=" << cmd->first << ", index=" << index); + DEBUG("COMMAND state=" << CardStateName(m_CardState) + << " auto_find=" << m_AutoFind << " payload_size=" << cmd->second.size()); + + // ========== read 命令处理 ========== + if (cmd->first == "read") + { + // 【新增】如果在恢复序列执行期间收到了新命令,说明恢复被新命令打断 + // 此时要:1)停止旧恢复,2)清空旧状态,3)开始新命令 + if (m_IsInTimeoutRecovery) { + DEBUG("HandleDdsMsg: new read command arrived during timeout recovery, aborting old recovery"); + // 清除旧的恢复标志(让 SkipCurrentBlock 不要再发了) + m_IsInTimeoutRecovery = false; + } + + // 【新增】开始计时 + m_ReadStartTime = std::chrono::steady_clock::now(); + + + if (m_CardState != CardState::WAIT_DDS_READ) + { + DEBUG("Unexpected read command, current state=" << (int)m_CardState); + return; + } + if (HasActiveDeviceOperation()) + { + DEBUG("Rejecting read command: device operation is active"); + return; + } + + // 解析 read 请求协议: + // 版本(1) | 卡号长度(1) | 卡号ASCII | 块数量(1) | 块号列表 + const std::vector& data = cmd->second; + + DEBUG("DDS raw data: size=" << data.size()); + for (size_t i = 0; i < data.size() && i < 20; i++) { + std::cout << std::hex << std::setw(2) << std::setfill('0') + << (int)data[i] << " "; + } + std::cout << std::endl; + + if (data.size() < 3) + { + DEBUG("Invalid read request, size=" << data.size()); + return; + } + + uint8_t version = data[0]; + uint8_t cardIdLen = data[1]; + if (data.size() < static_cast(3U + cardIdLen)) + { + DEBUG("Invalid read request card ID length=" << static_cast(cardIdLen)); + return; + } + std::string reqCardId(data.begin() + 2, data.begin() + 2 + cardIdLen); + uint8_t blockCount = data[2 + cardIdLen]; + if (data.size() < static_cast(3U + cardIdLen + blockCount)) + { + DEBUG("Invalid read request block count=" << static_cast(blockCount)); + return; + } + + DEBUG("Read req: version=" << (int)version + << ", cardId=" << reqCardId + << ", blockCount=" << (int)blockCount); + + // 验证卡号(与检测到的卡号匹配) + if (reqCardId != m_CardId) + { + DEBUG("Card ID mismatch: req=" << reqCardId << ", found=" << m_CardId); + return; + } + + // 清空读卡缓冲区 + ClearReadBuffer(); + m_CardId = reqCardId; + + // 保存请求的块号列表。块 4、5 是扇区 1 的数据块,不能特殊跳过。 + m_RequestedBlocks.clear(); + for (int i = 0; i < blockCount; i++) + { + uint8_t blockNum = data[3 + cardIdLen + i]; + if (!IsDataBlock(blockNum)) + { + DEBUG("Rejecting sector trailer/control block " << static_cast(blockNum)); + ClearReadBuffer(); + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + return; + } + m_RequestedBlocks.push_back(blockNum); + DEBUG("Queuing block " << (int)blockNum << " for reading"); + } + m_BlockCount = static_cast(m_RequestedBlocks.size()); + + if (m_RequestedBlocks.empty()) + { + DEBUG("Read request contains no blocks"); + return; + } + + // 【修改】只发送第一个读卡命令 + m_CurrentReadIndex = 0; + m_ReadBlockRetryCount = 0; + m_CurrentIndex = index; + if (!m_RequestedBlocks.empty()) + { + ReadCard({m_RequestedBlocks[0]}); + DEBUG("Sent first read command for block " << (int)m_RequestedBlocks[0]); + } + // 切换到等待读卡完成状态 + SetCardState(CardState::WAIT_DDS_READ); + m_StateEnterTime = std::chrono::steady_clock::now(); + // 保存 index 以便后续使用 + m_CurrentIndex = index; + return; + } + + // ========== write 命令处理 ========== + if (cmd->first == "write") + { + // 已寻到并验证卡号后,读和写都是独立 DDS 操作;写卡不要求先读卡。 + if (m_CardState != CardState::WAIT_DDS_READ) + { + DEBUG("Unexpected write command, current state=" << (int)m_CardState); + return; + } + if (HasActiveDeviceOperation()) + { + DEBUG("Rejecting write command: device operation is active"); + return; + } + + // 解析 write 请求协议: + // 版本(1) | 卡号长度(1) | 卡号ASCII | 块号(1) | 16字节块数据 + const std::vector& data = cmd->second; + if (data.size() < 3) + { + DEBUG("Invalid write request, size=" << data.size()); + return; + } + + uint8_t version = data[0]; + uint8_t cardIdLen = data[1]; + if (data.size() < static_cast(3U + cardIdLen + 16U)) + { + DEBUG("Invalid write request length=" << data.size() + << ", card ID length=" << static_cast(cardIdLen)); + return; + } + std::string reqCardId(data.begin() + 2, data.begin() + 2 + cardIdLen); + uint8_t blockNum = data[2 + cardIdLen]; + if (!IsDataBlock(blockNum)) + { + DEBUG("Rejecting sector trailer/control block " << static_cast(blockNum)); + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + return; + } + + DEBUG("Write req: version=" << (int)version + << ", cardId=" << reqCardId + << ", block=" << (int)blockNum); + + // 验证卡号(先校验,校验通过再切状态) + if (reqCardId != m_CardId) + { + DEBUG("Card ID mismatch: req=" << reqCardId << ", found=" << m_CardId); + return; // ← 此时还是 WAIT_DDS_DECISION,状态不会卡死 + } + + // 校验通过,进入"等 RC522 写卡响应"状态 + m_CurrentIndex = index; + SetCardState(CardState::WAIT_DDS_WRITE); + + // 构造写卡数据(块号 + 16字节数据) + std::vector writeData; + writeData.push_back(blockNum); + writeData.insert(writeData.end(), + data.begin() + 3 + cardIdLen, + data.begin() + 3 + cardIdLen + 16); + + DEBUG("Writing block " << (int)blockNum); + WriteCard(writeData); + + return; + } + + // ========== 其他命令保持不变 ========== + if (cmd->first == "find") + { + if (HasActiveDeviceOperation()) + { + DEBUG("Ignoring find command while a device operation is active"); + return; + } + m_AutoFind = true; + m_PreCard.clear(); + m_CardId.clear(); + SetCardState(CardState::AUTO_FIND); + FindCard(); + m_FindIntervalMs = 5000; + m_LastFindTime = std::chrono::steady_clock::now(); + } + else if (cmd->first == "stop") + { + if (HasActiveDeviceOperation()) + { + DEBUG("Ignoring stop command while a device operation is active"); + return; + } + m_AutoFind = false; + SetCardState(CardState::AUTO_FIND); + StopCard(); + } + else if (cmd->first == "beep") + { + if (HasActiveDeviceOperation()) + { + DEBUG("Ignoring beep command while a device operation is active"); + return; + } + m_AutoFind = false; + BeepCard(cmd->second); + } + else if (cmd->first == "reset") + { + if (HasActiveDeviceOperation()) + { + DEBUG("Ignoring reset command while a device operation is active"); + return; + } + m_AutoFind = false; + SetCardState(CardState::AUTO_FIND); + ResetCard(); + } +} + + +int MsgHandler::HandleDeviceMsg(WeighingSystem::ReadCardRsp& rsp) +{ + std::lock_guard lock(mtx_); + std::vector m_RecvData; + + if (RecvDeviceMsg(m_RecvData, 200) > 0) + { + // for (int num : m_RecvData) + // { + // std::cout << std::hex << std::setw(2) << std::setfill('0') + // << num << " "; + // } + // std::cout << std::endl; + return (ParseDeviceMsg(m_RecvData, rsp)); + } + return 0; +} + +void MsgHandler::CRC16(std::vector& data) +{ + uint8_t chCRCHi = 0xFF; + uint8_t chCRCLo = 0xFF; + + for (size_t i = 0; i < data.size(); i++) + { + uint8_t wIndex = chCRCLo ^ data[i]; + chCRCLo = chCRCHi ^ chCRCHTalbe[wIndex]; + chCRCHi = chCRCLTalbe[wIndex]; + } + // 保持当前运行环境既有 CRC 字节序:高字节在前、低字节在后。 + data.insert(data.end(), {chCRCHi, chCRCLo}); +} + + + + +int MsgHandler::ParseDeviceMsg(std::vector& data, WeighingSystem::ReadCardRsp& rsp) +{ + + // 【新增】清理之前的响应消息,避免键累积 + rsp.msg().clear(); + + // 仅接受已完整接收且通过协议校验的帧。 + if (!IsValidDeviceFrame(data)) + { + DEBUG("ParseDeviceMsg: invalid device frame, size=" << data.size()); + return 0; + } + + DEBUG("DEVICE FRAME seq=" << std::dec << m_OperationSequence + << " expected=" << PendingCommandName(m_PendingCommand) + << " cmd=0x" << std::hex << static_cast(data[2]) + << " status=0x" << static_cast(data[3]) + << " state=" << CardStateName(m_CardState) + << " dds_index=" << std::dec << m_CurrentIndex + << " pending_block=" << static_cast(m_CurrentOperatingBlock) + << " pending=" << m_BlockOperationPending); + + switch (data[2]) + { + case BEEP_CARD: + if (m_PendingCommand != PendingCommand::Beep) return 0; + m_PendingCommand = PendingCommand::None; + rsp.msg()["beep"].insert(rsp.msg()["beep"].end(), data[3]); + break; + case STOP_CARD: + if (m_PendingCommand == PendingCommand::Find) + { + return HandleFindResponse(data, rsp); + } + if (m_PendingCommand != PendingCommand::Stop) return 0; + m_PendingCommand = PendingCommand::None; + rsp.msg()["stop"].insert(rsp.msg()["stop"].end(), data[3]); + break; + case FIND_CARD: + if (m_PendingCommand != PendingCommand::Find) return 0; + return HandleFindResponse(data, rsp); + case READ_CARD: + { + if (m_PendingCommand != PendingCommand::ReadBlock) + { + DEBUG("Ignoring unmatched READ_CARD response"); + return 0; + } + const uint8_t status = data[3]; + if (status != 0) + { + DEBUG("ReadCard FAIL: error code=0x" << std::hex << static_cast(status)); + + std::vector rsp_data; + rsp_data.push_back(1); + const uint16_t error = MapDeviceError(READ_CARD, status); + rsp_data.push_back(static_cast(error >> 8)); + rsp_data.push_back(static_cast(error & 0xFF)); + rsp_data.push_back(static_cast(m_CardId.length())); + rsp_data.insert(rsp_data.end(), m_CardId.begin(), m_CardId.end()); + rsp_data.push_back(0); + + rsp.msg()["read"] = rsp_data; + ClearReadBuffer(); + m_CurrentOperatingBlock = 0; + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + return 1; + } + + if (m_RequestedBlocks.empty() || m_CurrentReadIndex >= m_RequestedBlocks.size()) + { + DEBUG("ReadCard success without a pending requested block"); + return 0; + } + + const size_t payloadSize = data.size() - 6U; + uint8_t blockNum = m_RequestedBlocks[m_CurrentReadIndex]; + std::vector block16; + if (data.size() >= 21U) + { + // 兼容参考驱动的固定偏移:data[4] 为块号,data[5..20] 为 16 字节数据。 + const uint8_t responseBlock = data[4]; + if (responseBlock != blockNum) + { + DEBUG("ReadCard response block mismatch, expected=" << static_cast(blockNum) + << ", actual=" << static_cast(responseBlock)); + return 0; + } + block16.assign(data.begin() + 5, data.begin() + 21); + } + else if (payloadSize == 16U) + { + block16.assign(data.begin() + 4, data.begin() + 20); + } + else if (payloadSize == 17U) + { + const uint8_t responseBlock = data[4]; + if (responseBlock != blockNum) + { + DEBUG("ReadCard response block mismatch, expected=" << static_cast(blockNum) + << ", actual=" << static_cast(responseBlock)); + RetryCurrentReadBlock("response block mismatch"); + return 0; + } + block16.assign(data.begin() + 5, data.begin() + 21); + } + else + { + DEBUG("ReadCard success payload length invalid, size=" << payloadSize); + RetryCurrentReadBlock("invalid payload length"); + return 0; + } + + m_BlockOpStartTime = std::chrono::steady_clock::now(); + m_CurrentOperatingBlock = 0; + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + m_ReadBlockRetryCount = 0; + + DEBUG("ReadCard OK, block=" << (int)blockNum); + + m_BlockData.push_back({blockNum, block16}); + + if (m_BlockData.size() >= m_RequestedBlocks.size()) + { + // 所有块读取完成,构建完整 DDS 响应 + DEBUG("All blocks read, building complete DDS response"); + + std::vector rsp_data; + rsp_data.push_back(1); // 版本 + rsp_data.push_back(0x00); // 结果码高 + rsp_data.push_back(0x00); // 结果码低 + rsp_data.push_back(m_CardId.length()); // 卡号长度 + rsp_data.insert(rsp_data.end(), m_CardId.begin(), m_CardId.end()); // 卡号 + rsp_data.push_back(m_BlockData.size()); // 块数量 + + // 添加所有块的数据 + for (const auto& block : m_BlockData) + { + rsp_data.push_back(block.first); // 块号 + rsp_data.insert(rsp_data.end(), block.second.begin(), block.second.end()); // 16字节 + } + + rsp.msg()["read"] = rsp_data; + + // 清理并恢复状态 + m_BlockData.clear(); + m_RequestedBlocks.clear(); + m_CurrentReadIndex = 0; + // 读卡事务结束后保留当前卡 10 秒,期间可继续接收 DDS 读写命令。 + m_AutoFind = false; + SetCardState(CardState::WAIT_DDS_READ); + + + + // 【新增】结束计时并打印 + m_ReadEndTime = std::chrono::steady_clock::now(); + auto elapsed = std::chrono::duration_cast( + m_ReadEndTime - m_ReadStartTime).count(); + DEBUG("Read card elapsed: " << elapsed << " ms (" + << elapsed / 1000.0 << " seconds)"); + + return 1; // ← 返回1表示需要发布 DDS 响应 + } + + m_CurrentReadIndex++; + if (m_CurrentReadIndex < m_RequestedBlocks.size()) + { + uint8_t nextBlock = m_RequestedBlocks[m_CurrentReadIndex]; + DEBUG("Sending next read command for block " << (int)nextBlock); + m_ReadBlockRetryCount = 0; + ReadCard({nextBlock}); + std::this_thread::sleep_for(std::chrono::milliseconds(30)); + } + + return 0; // ← 未全部完成,不发布响应 + } + break; + case WRITE_CARD: + { + if (m_PendingCommand != PendingCommand::WriteBlock) + { + DEBUG("Ignoring unmatched WRITE_CARD response"); + return 0; + } + + if (data[3] == 0) // 写卡成功 + { + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + DEBUG("WriteCard OK: block=" << (int)m_PendingWriteBlock); + + SetCardState(CardState::WAIT_DDS_READ); + DEBUG("Write complete, card remains ready for next DDS command"); + + // ★ 与 read 响应同协议:1 键 + vector + std::vector write_rsp; + write_rsp.push_back(1); // 版本 + write_rsp.push_back(0x00); // 结果码高 + write_rsp.push_back(0x00); // 结果码低(成功) + write_rsp.push_back((uint8_t)m_CardId.size()); // 卡号长度 + write_rsp.insert(write_rsp.end(), + m_CardId.begin(), m_CardId.end()); // 卡号 + write_rsp.push_back(1); // 块数量 = 1 + write_rsp.push_back(m_PendingWriteBlock); // 块号 + write_rsp.push_back(0x00); // 块结果码高 = 0(成功) + write_rsp.push_back(0x00); // 块结果码低 = 0(成功) // 块数量 = 0 + rsp.msg()["write"] = write_rsp; + + rsp.index(m_CurrentIndex); + return 1; + } + else // 写卡失败 + { + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + DEBUG("WriteCard FAIL: block=" << (int)m_PendingWriteBlock + << " error code=0x" << std::hex << (int)data[3]); + + // ★ 失败也用 1 键 + vector + std::vector write_rsp; + write_rsp.push_back(1); // 版本 + const uint16_t error = MapDeviceError(WRITE_CARD, data[3]); + write_rsp.push_back(static_cast(error >> 8)); + write_rsp.push_back(static_cast(error & 0xFF)); // 结果码 + write_rsp.push_back((uint8_t)m_CardId.size()); // 卡号长度 + write_rsp.insert(write_rsp.end(), + m_CardId.begin(), m_CardId.end()); // 卡号 + write_rsp.push_back(1); // 块数量 = 1 + write_rsp.push_back(m_PendingWriteBlock); // 块号 + write_rsp.push_back(static_cast(error >> 8)); + write_rsp.push_back(static_cast(error & 0xFF)); // 块结果码 + rsp.msg()["write"] = write_rsp; + + rsp.index(m_CurrentIndex); + return 1; + } + } + break; + default: + break; + } + + return 0; +} +void MsgHandler::StorePasswd(std::map>& data) +{ + m_PassWord = data; +} + +void MsgHandler::SetPasswd(const std::vector& data) +{ + + std::this_thread::sleep_for(std::chrono::milliseconds(50)); // 添加延迟 + + std::vector m_SendData; + m_PendingCommand = PendingCommand::SetPassword; + ++m_OperationSequence; + + m_SendData.insert(m_SendData.end(), {0x0C, 0x01, 0x03, 60, data[0]}); + auto it = m_PassWord.find(data[0]); + if (it != m_PassWord.end()) + { + m_SendData.insert(m_SendData.end(), it->second.begin(), it->second.end()); + } + + CRC16(m_SendData); + SendDeviceMsg(m_SendData); +} + +void MsgHandler::StopCard(void) +{ + std::vector m_SendData; + m_PendingCommand = PendingCommand::Stop; + ++m_OperationSequence; + + m_SendData.insert(m_SendData.end(), {0x04, 0x01, 0x08}); + CRC16(m_SendData); + SendDeviceMsg(m_SendData); +} + +void MsgHandler::FindCard(void) +{ + std::vector m_SendData; + m_PendingCommand = PendingCommand::Find; + ++m_OperationSequence; + + m_SendData.insert(m_SendData.end(), {0x04, 0x01, 0x02}); + CRC16(m_SendData); + SendDeviceMsg(m_SendData); +} + +void MsgHandler::ReadCard(const std::vector& data) +{ + std::vector m_SendData; + + + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + + m_SendData.insert(m_SendData.end(), {0x05, 0x01, 0x04, data[0]}); + // ========== 新增:记录当前块操作开始时间 ========== + m_CurrentOperatingBlock = data[0]; + m_BlockOpStartTime = std::chrono::steady_clock::now(); + m_BlockOperationPending = true; + m_PendingCommand = PendingCommand::ReadBlock; + m_PendingBlock = data[0]; + ++m_OperationSequence; + + + CRC16(m_SendData); + SendDeviceMsg(m_SendData); + // 【新增】保护延时:给 RC522 和 STM32 固件留出处理时间 + // 原因:连续发读块命令时,RC522 内部认证状态可能丢失 + std::this_thread::sleep_for(std::chrono::milliseconds(100)); +} + +void MsgHandler::WriteCard(const std::vector& data) +{ + // ★ 在调串口之前先存请求参数(响应时要用) + // data = [blockNum(1)] + [16 字节块数据] + if (data.size() != 17U) + { + DEBUG("WriteCard rejected: expected block plus 16 data bytes, size=" << data.size()); + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + return; + } + + m_PendingWriteBlock = data[0]; + m_PendingWriteValue.assign(data.begin() + 1, data.end()); + + DEBUG("WriteCard request block=" << static_cast(m_PendingWriteBlock) + << " data_size=" << m_PendingWriteValue.size() + << " data=" << HexBytes(m_PendingWriteValue)); + + // ========== 新增:记录当前块操作开始时间 ========== + m_CurrentOperatingBlock = data[0]; + m_BlockOpStartTime = std::chrono::steady_clock::now(); + m_BlockOperationPending = true; + m_PendingCommand = PendingCommand::WriteBlock; + m_PendingBlock = data[0]; + ++m_OperationSequence; + + + std::vector m_SendData; + m_SendData.insert(m_SendData.end(), {0x15, 0x01, 0x05}); + m_SendData.insert(m_SendData.end(), data.begin(), data.end()); + + DEBUG("WriteCard frame_without_crc size=" << m_SendData.size() + << " bytes=" << HexBytes(m_SendData)); + + CRC16(m_SendData); + + DEBUG("WriteCard frame_with_crc size=" << m_SendData.size() + << " bytes=" << HexBytes(m_SendData)); + SendDeviceMsg(m_SendData); +} + +void MsgHandler::BeepCard(const std::vector& data) +{ + std::vector m_SendData; + m_PendingCommand = PendingCommand::Beep; + ++m_OperationSequence; + + uint8_t duration = data.empty() ? 0x0F : data[0]; + m_SendData.insert(m_SendData.end(), {0x05, 0x01, 0x01, duration}); + CRC16(m_SendData); + SendDeviceMsg(m_SendData); +} + +void MsgHandler::ResetCard(void) +{ + if (fd != -1) + { + tcflush(fd, TCIOFLUSH); + } + m_ReceiveBuffer.clear(); + DEBUG("ResetCard: serial buffer flushed"); +} + + + +// ========== 重置串口并重新初始化 RC522 ========== +// 用于块操作超时后的恢复,因为 RC522 可能在某些情况下完全无响应 +bool MsgHandler::ResetSerialAndReinit() +{ + DEBUG("ResetSerialAndReinit: resetting serial port and RC522"); + m_ReceiveBuffer.clear(); + + // 第一步:关闭当前串口 + ClosePort(); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + // 第二步:重新打开串口(使用保存的端口) + if (m_Port.empty()) + { + DEBUG("ResetSerialAndReinit: m_Port is empty, cannot reopen"); + return false; + } + std::string tty = "/dev/" + m_Port; + DEBUG("ResetSerialAndReinit: reopening " << tty << " with baudrate " << (int)m_Baudrate); + + fd = open(tty.c_str(), O_RDWR | O_NOCTTY | O_NDELAY); + if (fd == -1) + { + DEBUG("ResetSerialAndReinit: failed to reopen serial port " << tty); + return false; + } + + // 第三步:重新配置串口参数(使用保存的波特率) + struct termios options; + if (tcgetattr(fd, &options) != 0) + { + DEBUG("ResetSerialAndReinit: failed to get serial attributes"); + close(fd); + fd = -1; + return false; + } + + cfmakeraw(&options); + cfsetispeed(&options, m_Baudrate); + cfsetospeed(&options, m_Baudrate); + options.c_cflag |= CS8; + options.c_cflag &= ~PARENB; + options.c_cflag &= ~CSTOPB; + options.c_cflag &= ~CRTSCTS; + options.c_cc[VMIN] = 0; + options.c_cc[VTIME] = 10; + + tcflush(fd, TCIOFLUSH); + if (tcsetattr(fd, TCSANOW, &options) != 0) + { + DEBUG("ResetSerialAndReinit: failed to set serial attributes"); + close(fd); + fd = -1; + return false; + } + + DEBUG("ResetSerialAndReinit: serial port reopened successfully"); + + // 第四步:等待 RC522 准备好 + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + // 第五步:清空 RC522 内部状态(直接发命令,不等待响应) + StopCard(); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + // 第六步:重新下载所有扇区密码(直接发命令,不等待响应) + for (auto& kv : m_PassWord) { + SetPasswd({kv.first}); + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } + + // 第七步:启动寻卡(直接发命令,不等待响应) + FindCard(); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + DEBUG("ResetSerialAndReinit: commands sent, waiting for RC522 to recover..."); + + DEBUG("ResetSerialAndReinit: RC522 reinitialized successfully"); + return true; +} + + + + + +bool MsgHandler::WaitForResponse(uint8_t expected_cmd, int timeout_ms) +{ + int elapsed = 0; + const int poll_interval = 100; + + while (elapsed < timeout_ms) + { + std::vector data; + if (RecvDeviceMsg(data, poll_interval) > 0) + { + if (data.size() >= 4 && data[2] == expected_cmd && data[3] == 0x00) + { + return true; + } + } + elapsed += poll_interval; + } + + DEBUG("WaitForResponse timeout, expected_cmd=0x" + << std::hex << (int)expected_cmd); + return false; +} + +bool MsgHandler::InitSequence(void) +{ + // 第一步:停止寻卡 + StopCard(); + if (!WaitForResponse(STOP_CARD)) + { + DEBUG("InitSequence: StopCard failed"); + return false; + } + DEBUG("InitSequence: StopCard OK"); + + // 第二步:逐扇区下载密码(升序) + for (auto& kv : m_PassWord) + { + SetPasswd({kv.first}); + if (!WaitForResponse(SET_PWD)) + { + DEBUG("InitSequence: SetPasswd sector " + << (int)kv.first << " failed"); + return false; + } + DEBUG("InitSequence: SetPasswd sector " + << (int)kv.first << " OK"); + } + + // 第三步:启动寻卡 + FindCard(); + m_AutoFind = true; + m_FindIntervalMs = 5000; // 发送后5000ms超时保护 + m_LastFindTime = std::chrono::steady_clock::now(); + DEBUG("InitSequence: complete, auto-find enabled"); + + return true; +} + +void MsgHandler::AutoFindTick(void) +{ + std::lock_guard lock(mtx_); + + if (!m_AutoFind) + return; + + if (m_CardState != CardState::AUTO_FIND) + return; + + auto now = std::chrono::steady_clock::now(); + auto elapsed = std::chrono::duration_cast( + now - m_LastFindTime).count(); + + if (elapsed >= m_FindIntervalMs) + { + DEBUG("AUTO_FIND tick elapsed_ms=" << elapsed + << " interval_ms=" << m_FindIntervalMs); + FindCard(); + m_FindIntervalMs = 5000; // 发送后5000ms超时保护 + m_LastFindTime = now; + } +} + +void MsgHandler::SetCardState(CardState state) +{ + std::lock_guard lock(mtx_); + const CardState oldState = m_CardState; + m_CardState = state; + m_StateEnterTime = std::chrono::steady_clock::now(); + DEBUG("STATE " << CardStateName(oldState) << " -> " << CardStateName(state)); +} + +unsigned long MsgHandler::GetCurrentIndex() const +{ + std::lock_guard lock(mtx_); + return m_CurrentIndex; +} + +bool MsgHandler::IsTimeoutRecovery() const +{ + std::lock_guard lock(mtx_); + return m_IsInTimeoutRecovery; +} + +uint64_t MsgHandler::GetOperationSequence() const +{ + std::lock_guard lock(mtx_); + return m_OperationSequence; +} + +bool MsgHandler::IsReadResponseReady() const +{ + // 检查读卡响应是否准备好(块数据已累积完成) + return (m_CardState == CardState::WAIT_DDS_WRITE) && (m_BlockCount > 0); +} + +bool MsgHandler::IsWriteResponseReady() const +{ + // 写卡响应在每次写成功后立即可用 + return false; // 由 ParseDeviceMsg 实时处理 +} + +void MsgHandler::ClearReadBuffer() +{ + m_BlockData.clear(); + m_BlockCount = 0; + m_ResultCode = 0; + m_RequestedBlocks.clear(); // 【新增】清空块号列表 + m_SkippedBlocks.clear(); // 【新增】清空跳过的块记录 +} + +void MsgHandler::SetReadResult(uint8_t resultCode, const std::string& cardId, + uint8_t blockCount, + const std::vector>>& blockData) +{ + m_ResultCode = resultCode; + m_CardId = cardId; + m_BlockCount = blockCount; + m_BlockData = blockData; +} + +void MsgHandler::SetWriteResult(uint8_t resultCode, const std::string& cardId, uint8_t blockNum) +{ + m_ResultCode = resultCode; + m_CardId = cardId; + // blockNum 已在写卡命令中处理 +} + +int MsgHandler::CheckDdsTimeout() +{ + std::lock_guard lock(mtx_); + + // 设备读写事务期间不使用空闲超时,避免中断块序列。 + if (m_CardState == CardState::WAIT_DDS_READ) + { + if (m_BlockOperationPending || m_PendingCommand != PendingCommand::None) + return 0; + + const auto now = std::chrono::steady_clock::now(); + const auto elapsed = std::chrono::duration_cast( + now - m_StateEnterTime).count(); + if (elapsed >= CARD_READY_IDLE_TIMEOUT_MS) + { + DEBUG("Card ready idle timeout (" << CARD_READY_IDLE_TIMEOUT_MS + << "ms), reverting to AUTO_FIND"); + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = now; + SetCardState(CardState::AUTO_FIND); + return 1; + } + return 0; + } + + + // 【新增】WAIT_DDS_WRITE 写卡块操作超时:等 RC522 响应超过 2s 视为失败,回 AUTO_FIND + if (m_CardState == CardState::WAIT_DDS_WRITE) + { + if (!m_BlockOperationPending) + return 0; + const auto writeNow = std::chrono::steady_clock::now(); + const auto writeElapsed = std::chrono::duration_cast( + writeNow - m_BlockOpStartTime).count(); + if (writeElapsed >= WRITE_BLOCK_OPERATION_TIMEOUT_MS) + { + DEBUG("Write block operation timeout (" << WRITE_BLOCK_OPERATION_TIMEOUT_MS + << "ms), reverting to AUTO_FIND"); + // 清理 pending 标志 + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + // 清串口残留帧(避免下个循环再拿到那 5 字节尾巴) + m_ReceiveBuffer.clear(); + if (fd != -1) + tcflush(fd, TCIFLUSH); + // 恢复自动寻卡 + m_AutoFind = true; + m_FindIntervalMs = 5000; + //m_LastFindTime = writeNow; + m_LastFindTime = writeNow - std::chrono::milliseconds(m_FindIntervalMs); + SetCardState(CardState::AUTO_FIND); + return 1; + } + return 0; + } + + + if (m_CardState != CardState::WAIT_DDS_DECISION + && m_CardState != CardState::WAIT_DDS_WRITE_NEXT) + return 0; + + auto now = std::chrono::steady_clock::now(); + auto elapsed = std::chrono::duration_cast( + now - m_StateEnterTime).count(); + + // ★ 不同状态用不同的超时阈值 + int timeout_ms = DDS_TIMEOUT_MS; + if (m_CardState == CardState::WAIT_DDS_DECISION) + { + timeout_ms = DDS_DECISION_TIMEOUT_MS; + } + + else if (m_CardState == CardState::WAIT_DDS_WRITE_NEXT) // 【新增】 + { + timeout_ms = DDS_WRITE_TIMEOUT_MS; // 【新增】10秒 + } + + if (elapsed >= timeout_ms) + { + DEBUG("DDS timeout (" << timeout_ms << "ms), reverting to AUTO_FIND"); + + // 恢复自动寻卡 + m_AutoFind = true; + m_FindIntervalMs = 5000; + m_LastFindTime = now; + + // 清空读卡缓冲区 + ClearReadBuffer(); + + // 切换状态 + SetCardState(CardState::AUTO_FIND); + return 1; // 返回1表示触发了超时 + } + return 0; +} + +void MsgHandler::ResetWriteTimeout() +{ + if (m_CardState == CardState::WAIT_DDS_WRITE_NEXT) + m_StateEnterTime = std::chrono::steady_clock::now(); +} + +// ========== 单块操作超时控制实现 ========== + +int MsgHandler::GetBlockOpElapsed() const +{ + std::lock_guard lock(mtx_); + auto now = std::chrono::steady_clock::now(); + return std::chrono::duration_cast( + now - m_BlockOpStartTime).count(); +} + +uint8_t MsgHandler::GetCurrentOperatingBlock() const +{ + std::lock_guard lock(mtx_); + return m_CurrentOperatingBlock; +} + +bool MsgHandler::IsBlockOperationPending() const +{ + std::lock_guard lock(mtx_); + return m_BlockOperationPending; +} + +bool MsgHandler::HasPendingReadResponse() const +{ + return !m_PendingReadResponse.empty(); +} + +std::vector MsgHandler::GetPendingReadResponse() +{ + auto tmp = m_PendingReadResponse; + m_PendingReadResponse.clear(); + return tmp; +} + +void MsgHandler::SkipCurrentBlock() +{ + + + DEBUG("SkipCurrentBlock: state=" << (int)m_CardState + << ", index=" << (int)m_CurrentReadIndex + << ", total=" << (int)m_RequestedBlocks.size()); + + + // 【新增】标记正在恢复,防止 HandleDdsMsg 在此期间发新命令 + m_IsInTimeoutRecovery = true; + + + if (m_CardState != CardState::WAIT_DDS_READ) + { + DEBUG("SkipCurrentBlock: not in WAIT_DDS_READ state, ignored"); + m_IsInTimeoutRecovery = false; + return; + } + + if (m_RequestedBlocks.empty() || m_CurrentReadIndex >= m_RequestedBlocks.size()) + { + DEBUG("SkipCurrentBlock: no more blocks to skip"); + m_IsInTimeoutRecovery = false; + return; + } + + uint8_t skipBlock = m_RequestedBlocks[m_CurrentReadIndex]; + DEBUG("Read block timeout, block=" << static_cast(skipBlock)); + + // 超时不是成功数据,使用 README 约定的设备超时错误码 0x0015。 + std::vector rsp_data; + rsp_data.push_back(1); + // README 约定:设备超时使用大端结果码 0x0015。 + rsp_data.push_back(0x00); + rsp_data.push_back(0x15); + rsp_data.push_back(static_cast(m_CardId.size())); + rsp_data.insert(rsp_data.end(), m_CardId.begin(), m_CardId.end()); + rsp_data.push_back(0); + + m_PendingReadResponse = rsp_data; + ClearReadBuffer(); + m_CurrentOperatingBlock = 0; + m_BlockOperationPending = false; + m_IsInTimeoutRecovery = false; + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + SetCardState(CardState::AUTO_FIND); + DEBUG("Read block timeout response ready, block=" << static_cast(skipBlock)); + return; + + +} +CardState MsgHandler::GetCardState() const +{ + std::lock_guard lock(mtx_); + return m_CardState; +} + +void MsgHandler::ForceResetToAutoFind() +{ + std::lock_guard lock(mtx_); + DEBUG("ForceResetToAutoFind: reverting to AUTO_FIND"); + m_AutoFind = true; + m_FindIntervalMs = 500; + m_LastFindTime = std::chrono::steady_clock::now(); + m_BlockOperationPending = false; + m_PendingCommand = PendingCommand::None; + m_CurrentOperatingBlock = 0; + m_ReadBlockRetryCount = 0; + SetCardState(CardState::AUTO_FIND); +} + +void MsgHandler::PauseAutoFind() +{ + std::lock_guard lock(mtx_); + DEBUG("PauseAutoFind: state=AUTO_FIND, m_AutoFind=false (waiting after QueueTrigger)"); + m_AutoFind = false; + SetCardState(CardState::AUTO_FIND); +} + +// ========== refreshPort 默认实现 ========== +bool MsgHandler::refreshPort() +{ + DEBUG("MsgHandler::refreshPort: base class default implementation, no-op"); + return true; +} diff --git a/readcard/MsgHandler.hpp b/readcard/MsgHandler.hpp new file mode 100644 index 0000000..f7538e3 --- /dev/null +++ b/readcard/MsgHandler.hpp @@ -0,0 +1,252 @@ +#ifndef _MSGHANDLER_HPP_ +#define _MSGHANDLER_HPP_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "WeighingDDSType.hpp" +#include + +#define BEEP_CARD 1 +#define FIND_CARD 2 // 发送命令号 +#define FIND_CARD_RSP 0x08 // FindCard 响应命令号(固件返回0x08) +#define SET_PWD 3 +#define READ_CARD 4 +#define WRITE_CARD 5 +#define STOP_CARD 8 // 发送/响应命令号(Pause) + + +enum class CardState { + AUTO_FIND, // 自动寻卡状态 + WAIT_DDS_READ, // 等待 DDS read 命令 + WAIT_DDS_WRITE, // 等待 DDS write 命令 + WAIT_DDS_DECISION, // 读卡完成,等待 DDS 决定(write / stop / ack) + WAIT_DDS_WRITE_NEXT // 写卡成功,等待下一个 write 命令(10秒超时) +}; + +enum class PendingCommand : uint8_t { None, Find, SetPassword, ReadBlock, WriteBlock, Stop, Beep }; + + +class MsgHandler { +public: + int fd; + std::string device; + std::map> m_PassWord; + + MsgHandler(); + ~MsgHandler() = default; + + void HandleDdsMsg(const std::map>& msg, unsigned long index); + int HandleDeviceMsg(WeighingSystem::ReadCardRsp& rsp); + bool SetDevice(const std::string& device); + bool InitSequence(void); + void AutoFindTick(void); + + void StorePasswd(std::map>& data); + void SetPasswd(const std::vector& data); + void FindCard(void); + void ReadCard(const std::vector& data); + void WriteCard(const std::vector& data); + void StopCard(void); + void BeepCard(const std::vector& data); + void ResetCard(void); + + int ParseDeviceMsg(std::vector& data, WeighingSystem::ReadCardRsp& rsp); + + bool WaitForResponse(uint8_t expected_cmd, int timeout_ms = 3000); + + virtual bool OpenPort(const std::string& port, const std::string& baudrate); + virtual int SendDeviceMsg(const std::vector& data); + virtual int RecvDeviceMsg(std::vector& data, int timeoutMs); + int SendMsg(const std::vector& data); + int RecvMsg(std::vector& data, int timeoutMs); + bool isOpen() const { + return fd != -1; + } + void ClosePort(); + + + // 【新增】内部版本,不加锁,供 ParseDeviceMsg 的 drain 循环使用 + int RecvMsgInternal(std::vector& data, int timeoutMs); + + + + void SetCardState(CardState state); + unsigned long GetCurrentIndex() const; + bool IsTimeoutRecovery() const; + uint64_t GetOperationSequence() const; + bool IsReadResponseReady() const; + bool IsWriteResponseReady() const; + void ClearReadBuffer(); + void SetReadResult(uint8_t resultCode, const std::string& cardId, uint8_t blockCount, + const std::vector>>& blockData); + void SetWriteResult(uint8_t resultCode, const std::string& cardId, uint8_t blockNum); + int CheckDdsTimeout(); + + void ResetWriteTimeout(); + + std::function OnCardDetected; + + // 【新增】由业务层填充:HandleDeviceMsg 检测到卡后写入,主循环读取并发送 QueueTrigger + std::string pending_trigger_card_; + std::mutex trigger_mtx_; + + + // ========== 单块操作超时控制 ========== + int GetBlockOpElapsed() const; + static constexpr int BLOCK_OPERATION_TIMEOUT_MS = 3000; + static constexpr bool VERIFY_DEVICE_CRC = true; + // 通信帧不完整或 CRC/数据校验失败时,同一读块允许额外重发的次数。 + static constexpr uint8_t READ_BLOCK_MAX_RETRIES = 1; + static constexpr int READ_BLOCK_RETRY_DELAY_MS = 100; + uint8_t GetCurrentOperatingBlock() const; + bool IsBlockOperationPending() const; + void SkipCurrentBlock(); + bool HasPendingReadResponse() const; + std::vector GetPendingReadResponse(); + CardState GetCardState() const; + + // 【新增】业务层主动取消等待、立即回到自动寻卡 + void ForceResetToAutoFind(); + + // 【新增】业务层暂停自动寻卡(state 切到 AUTO_FIND,m_AutoFind=false), + // 用于刚发完 QueueTrigger 后的 3 秒等待期:阻止 HandleDdsMsg 接收 read/write。 + void PauseAutoFind(); + + // 【新增】标记:是否正在执行超时恢复序列 + // 原因:SkipCurrentBlock 发的恢复命令可能和 HandleDdsMsg 的新命令冲突 + bool m_IsInTimeoutRecovery = false; + + // 【新增】重置串口并重新初始化 RC522(用于块操作超时后的恢复) + bool ResetSerialAndReinit(); + + // 【新增】刷新串口配置(供 SkipCurrentBlock 使用) + bool refreshPort(); + + // 【新增】保存串口参数,供 ResetSerialAndReinit 使用 + std::string m_Port; // 端口名,如 "ttyS1" + speed_t m_Baudrate; // 波特率(speed_t 类型) + + +private: + bool TryExtractDeviceFrame(std::vector& data); + bool IsValidDeviceFrame(const std::vector& data); + bool RetryCurrentReadBlock(const char* reason); + bool HasActiveDeviceOperation() const; + int HandleFindResponse(const std::vector& data, + WeighingSystem::ReadCardRsp& rsp); + static bool IsDataBlock(uint8_t block); + + bool m_AutoFind = false; + int m_FindIntervalMs = 500; + std::chrono::steady_clock::time_point m_LastFindTime; + std::string m_PreCard; + + // 【新增】保存 WaitForResponse 接收到的 ReadCard 响应数据 + std::vector m_LastReadCardRsp; + + //std::mutex mtx_; // 添加这行 - 保护串口访问 + mutable std::recursive_mutex mtx_; + std::vector m_ReceiveBuffer; + + + CardState m_CardState; // 当前状态 + unsigned long m_CurrentIndex; // 保存收到的 index + std::chrono::steady_clock::time_point m_StateEnterTime; // 状态进入时间 + static constexpr int DDS_TIMEOUT_MS = 20000; // DDS 命令 10 秒超时 + static constexpr int DDS_DECISION_TIMEOUT_MS = 20000; // WAIT_DDS_DECISION 超时 + static constexpr int DDS_WRITE_TIMEOUT_MS = 10000; // 写卡序列 10 秒超时 + static constexpr int CARD_READY_IDLE_TIMEOUT_MS = 20000; // 卡就绪无任务后恢复寻卡 + static constexpr int WRITE_BLOCK_OPERATION_TIMEOUT_MS = 2000; + + + // 读卡结果缓存 + uint8_t m_ResultCode; // 结果码 + std::string m_CardId; // 当前操作的卡号 + uint8_t m_BlockCount; // 当前读取的块数量 + std::vector>> m_BlockData; // 块数据 + std::vector m_RequestedBlocks; // 【新增】请求的块号列表 + uint8_t m_CurrentReadIndex = 0; // 【新增】当前正在读取的块索引 + + std::chrono::steady_clock::time_point m_ReadStartTime; + std::chrono::steady_clock::time_point m_ReadEndTime; + + // 写卡请求的 pending 信息(响应时用) + uint8_t m_PendingWriteBlock = 0; + std::vector m_PendingWriteValue; + std::string m_WriteCardId; + + + // ========== 单块操作超时控制 ========== + std::chrono::steady_clock::time_point m_BlockOpStartTime; // 当前块操作开始时间 + uint8_t m_CurrentOperatingBlock = 0; // 当前正在操作的块号 + bool m_BlockOperationPending = false; // 当前是否存在待读写响应 + PendingCommand m_PendingCommand = PendingCommand::None; + uint8_t m_PendingBlock = 0; + uint8_t m_ReadBlockRetryCount = 0; + uint64_t m_OperationSequence = 0; + std::vector m_PendingReadResponse; // 超时跳转时准备的响应 + std::vector m_SkippedBlocks; // 【新增】记录跳过的超时块号 + + + + uint8_t chCRCHTalbe[256] = { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40 + }; + + uint8_t chCRCLTalbe[256] = { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, + 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, + 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, + 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, + 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, + 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, + 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, + 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, + 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, + 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, + 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, + 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, + 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, + 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, + 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, + 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, + 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, + 0x41, 0x81, 0x80, 0x40 + }; + + void CRC16(std::vector& data); +}; + +#endif diff --git a/readcard/Publisher.cxx b/readcard/Publisher.cxx new file mode 100644 index 0000000..d49d703 --- /dev/null +++ b/readcard/Publisher.cxx @@ -0,0 +1,329 @@ +#include "Publisher.hpp" + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "WeighingDDSTypePubSubTypes.hpp" +#include "msg.hpp" +#include "MsgHandler.hpp" +#include "DEBUG.hpp" + +using namespace eprosima::fastdds::dds; + +PublisherApp::PublisherApp( + const int& domain_id) + : factory_(nullptr) + , participant_(nullptr) + , publisher_(nullptr) + , topic_(nullptr) + , writer_(nullptr) + , type_(new WeighingSystem::ReadCardRspPubSubType()) + , matched_(0) + , samples_sent_(0) + , stop_(false) + , queue_trigger_publisher_(nullptr) + , queue_trigger_topic_(nullptr) + , queue_trigger_writer_(nullptr) + , queue_trigger_type_(new Queue::QueueTriggerPubSubType()) + , current_date_() + , sequence_num_(0) + , last_card_() + , current_message_id_() + , wait_end_time_(std::chrono::steady_clock::now() - std::chrono::seconds(10)) // 初始化为过去时间,启动时不等待 + , last_trigger_card_() + , wait_active_(false) // 启动后不处于等待期,由 OnCardDetected 激活 +{ + // Create the participant + DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT; + pqos.name("ReadCard_pub_participant"); + pqos.wire_protocol().builtin.discovery_config.leaseDuration = Duration_t(60, 0); + pqos.wire_protocol().builtin.discovery_config.leaseDuration_announcementperiod = Duration_t(30, 0); + factory_ = DomainParticipantFactory::get_shared_instance(); + participant_ = factory_->create_participant(domain_id, pqos, nullptr, StatusMask::none()); + if (participant_ == nullptr) + { + throw std::runtime_error("ReadCard Participant initialization failed"); + } + + // Register ReadCardRsp type + type_.register_type(participant_); + + // Create the publisher (for ReadCardRsp) + PublisherQos pub_qos = PUBLISHER_QOS_DEFAULT; + participant_->get_default_publisher_qos(pub_qos); + publisher_ = participant_->create_publisher(pub_qos, nullptr, StatusMask::none()); + if (publisher_ == nullptr) + { + throw std::runtime_error("ReadCard Publisher initialization failed"); + } + + // Create the topic (ReadCardRsp) + TopicQos topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(topic_qos); + topic_ = participant_->create_topic("ReadCardRsp", type_.get_type_name(), topic_qos); + if (topic_ == nullptr) + { + throw std::runtime_error("ReadCard Topic initialization failed"); + } + + // Create the data writer (ReadCardRsp) + DataWriterQos writer_qos = DATAWRITER_QOS_DEFAULT; + publisher_->get_default_datawriter_qos(writer_qos); + writer_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + writer_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + writer_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + writer_ = publisher_->create_datawriter(topic_, writer_qos, this, StatusMask::all()); + if (writer_ == nullptr) + { + throw std::runtime_error("ReadCard DataWriter initialization failed"); + } + + // ── 创建 QueueTrigger 发布者 ── + queue_trigger_type_.register_type(participant_); + + PublisherQos qt_pub_qos = PUBLISHER_QOS_DEFAULT; + participant_->get_default_publisher_qos(qt_pub_qos); + queue_trigger_publisher_ = participant_->create_publisher(qt_pub_qos, nullptr, StatusMask::none()); + + TopicQos qt_topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(qt_topic_qos); + queue_trigger_topic_ = participant_->create_topic( + "QueueTrigger", + queue_trigger_type_.get_type_name(), + qt_topic_qos); + + DataWriterQos qt_writer_qos = DATAWRITER_QOS_DEFAULT; + queue_trigger_publisher_->get_default_datawriter_qos(qt_writer_qos); + qt_writer_qos.reliability().kind = RELIABLE_RELIABILITY_QOS; + qt_writer_qos.durability().kind = VOLATILE_DURABILITY_QOS; + qt_writer_qos.history().kind = KEEP_LAST_HISTORY_QOS; + queue_trigger_writer_ = queue_trigger_publisher_->create_datawriter( + queue_trigger_topic_, qt_writer_qos, this, StatusMask::all()); +} + +PublisherApp::~PublisherApp() +{ + if (nullptr != participant_) + { + participant_->delete_contained_entities(); + factory_->delete_participant(participant_); + } +} + +void PublisherApp::on_publication_matched( + DataWriter* writer, + const PublicationMatchedStatus& info) +{ + if (info.current_count_change == 1) + { + { + std::lock_guard lock(mutex_); + matched_ = info.current_count; + } + DEBUG(writer->get_topic()->get_name() << " Publisher matched."); + cv_.notify_one(); + } + else if (info.current_count_change == -1) + { + { + std::lock_guard lock(mutex_); + matched_ = info.current_count; + } + DEBUG(writer->get_topic()->get_name() << " Publisher unmatched."); + } +} + +void PublisherApp::run(std::shared_ptr handler) +{ + // ── 拉卡检测回调:替代方案下放给主循环处理,这里不再绑定 ── + // 真正的触发逻辑在 run() 主循环里: + // HandleDeviceMsg → 把卡号写入 handler->pending_trigger_card_ + // 主循环检测字段非空 → PublishQueueTrigger + PauseAutoFind + 启动 3s 等待期 + + // Device->Core 的响应(DDS 载荷:index + map>) + WeighingSystem::ReadCardRsp rsp; + + while (!is_stopped()) + { + if (handler->isOpen() == true) + { + // ── 处理设备消息(FindCard 响应会更新 m_CardId 并写入 pending_trigger_card_) ── + if (handler->HandleDeviceMsg(rsp)) + { + // 当前版本不主动读卡,设备消息主要是 FindCard 响应 + rsp.msg().clear(); + } + + // ── 检测新卡:发 QueueTrigger + 启动 3s 等待期 ── + std::string cardToTrigger; + { + std::lock_guard lock(handler->trigger_mtx_); + if (!handler->pending_trigger_card_.empty()) + { + cardToTrigger = handler->pending_trigger_card_; + handler->pending_trigger_card_.clear(); // 消费掉 + } + } + if (!cardToTrigger.empty()) + { + // 防止同一张卡短时间内重复触发(3 秒等待期内忽略) + auto now = std::chrono::steady_clock::now(); + if (now < wait_end_time_ && cardToTrigger == last_trigger_card_) + { + DEBUG("Card " << cardToTrigger + << " still in 3s wait period, skipping QueueTrigger"); + } + else + { + PublishQueueTrigger(cardToTrigger); + + // 暂停自动寻卡(state 切到 AUTO_FIND,m_AutoFind=false), + // 阻止 3 秒等待期内 HandleDdsMsg 接收 read/write + handler->PauseAutoFind(); + + wait_end_time_ = now + std::chrono::seconds(10); + wait_active_ = true; // 标记等待期,主循环在 3s 后才调 ForceReset + last_trigger_card_ = cardToTrigger; + DEBUG("QueueTrigger sent for card=" << cardToTrigger + << ", waiting 10s before resuming auto-find"); + } + } + + // ── 等待期检查 ── + auto now2 = std::chrono::steady_clock::now(); + if (now2 >= wait_end_time_) + { + // 等待期刚结束:仅在这一次调用时恢复 AUTO_FIND + if (wait_active_) + { + static auto last_resume_log = std::chrono::steady_clock::time_point{}; + if (last_resume_log.time_since_epoch().count() == 0 + || now2 - last_resume_log > std::chrono::seconds(60)) + { + DEBUG("10s wait elapsed, resuming AUTO_FIND"); + last_resume_log = now2; + } + handler->ForceResetToAutoFind(); + wait_active_ = false; + } + + // pending read response(来自超时跳过) + if (handler->HasPendingReadResponse()) + { + auto pendingRsp = handler->GetPendingReadResponse(); + if (!pendingRsp.empty()) + { + rsp.msg()["read"] = pendingRsp; + rsp.index(handler->GetCurrentIndex()); + DEBUG("Publishing pending read response (from timeout skip)"); + writer_->write(&rsp); + rsp.msg().clear(); + } + } + handler->AutoFindTick(); + } + else + { + // ── 等待期内:不发 DDS、不触发读卡、不恢复自动寻卡 ── + auto remaining = std::chrono::duration_cast( + wait_end_time_ - now2).count(); + } + } + + std::unique_lock period_lock(mutex_); + cv_.wait_for(period_lock, std::chrono::milliseconds(10), [this]() + { + return is_stopped(); + }); + } +} + +bool PublisherApp::is_stopped() +{ + return stop_.load(); +} + +void PublisherApp::on_data_available(DataReader* /*reader*/) +{ + // 不再订阅任何 DDS Topic,无需处理 +} + +void PublisherApp::on_subscription_matched( + DataReader* /*reader*/, + const SubscriptionMatchedStatus& /*info*/) +{ + // 不再订阅任何 DDS Topic,无需处理 +} + +void PublisherApp::stop() +{ + stop_.store(true); + cv_.notify_one(); +} + +std::string PublisherApp::GenerateMessageId(const std::string& card_number) +{ + std::lock_guard lock(id_mtx_); + + time_t now = time(nullptr); + char date_buf[9]; + strftime(date_buf, sizeof(date_buf), "%Y%m%d", localtime(&now)); + std::string today(date_buf); + + // 日期变了:重置序号,清空上次的 card 和 message_id + if (today != current_date_) + { + current_date_ = today; + sequence_num_ = 0; + last_card_.clear(); + current_message_id_.clear(); + } + + // 同一天、相同卡号:复用上次的 message_id + if (!last_card_.empty() && card_number == last_card_ && !current_message_id_.empty()) + { + DEBUG("GenerateMessageId: card unchanged (" << card_number << "), reuse " << current_message_id_); + return current_message_id_; + } + + // 不同卡号:序号累加 + sequence_num_++; + last_card_ = card_number; + + char id[32]; + snprintf(id, sizeof(id), "qm-%s-%06u", today.c_str(), sequence_num_); + current_message_id_ = std::string(id); + + DEBUG("GenerateMessageId: new card=" << card_number + << " -> " << current_message_id_); + return current_message_id_; +} + +void PublisherApp::PublishQueueTrigger(const std::string& card_number) +{ + Queue::QueueTrigger msg; + const std::string mid = GenerateMessageId(card_number); + msg.message_id(mid); + msg.card_number(card_number); + msg.device_id("3"); // 本机读卡器设备编号 + msg.trigger_time(""); // 暂时为 null(空字符串) + queue_trigger_writer_->write(&msg); + DEBUG("Published QueueTrigger: message_id=" << mid + << " card=" << card_number << " device_id=3"); +} diff --git a/readcard/Publisher.hpp b/readcard/Publisher.hpp new file mode 100644 index 0000000..cd5b10c --- /dev/null +++ b/readcard/Publisher.hpp @@ -0,0 +1,87 @@ +#ifndef FAST_DDS_GENERATED__PUBLISHERAPP_HPP +#define FAST_DDS_GENERATED__PUBLISHERAPP_HPP + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "MsgHandler.hpp" + +class PublisherApp : public eprosima::fastdds::dds::DataWriterListener, + public eprosima::fastdds::dds::DataReaderListener +{ +public: + + PublisherApp( + const int& domain_id); + + ~PublisherApp(); + + //! Publisher matched method + void on_publication_matched( + eprosima::fastdds::dds::DataWriter* writer, + const eprosima::fastdds::dds::PublicationMatchedStatus& info) override; + + //! Run publisher + void run(std::shared_ptr handler); + + //! Trigger the end of execution + void stop(); + + void on_data_available( + eprosima::fastdds::dds::DataReader* reader) override; + void on_subscription_matched( + eprosima::fastdds::dds::DataReader* reader, + const eprosima::fastdds::dds::SubscriptionMatchedStatus& info) override; + + //! 发布 QueueTrigger + void PublishQueueTrigger(const std::string& card_number); + +private: + + //! Return the current state of execution + bool is_stopped(); + + //! 生成 message_id:相同卡号复用,不同卡号累加,跨日重置 + std::string GenerateMessageId(const std::string& card_number); + + std::shared_ptr factory_; + eprosima::fastdds::dds::DomainParticipant* participant_; + eprosima::fastdds::dds::Publisher* publisher_; + eprosima::fastdds::dds::Topic* topic_; + eprosima::fastdds::dds::DataWriter* writer_; + eprosima::fastdds::dds::TypeSupport type_; + std::condition_variable cv_; + int32_t matched_; + std::mutex mutex_; + const uint32_t period_ms_ = 100; + uint16_t samples_sent_; + std::atomic stop_; + + // ── QueueTrigger 发布者 ── + eprosima::fastdds::dds::Publisher* queue_trigger_publisher_; + eprosima::fastdds::dds::Topic* queue_trigger_topic_; + eprosima::fastdds::dds::DataWriter* queue_trigger_writer_; + eprosima::fastdds::dds::TypeSupport queue_trigger_type_; + + // ── message_id 生成状态 ── + std::mutex id_mtx_; + std::string current_date_; // 当前日期 "YYYYMMDD" + uint32_t sequence_num_; // 当日序号,从 1 开始 + std::string last_card_; // 上一次检测到的卡号 + std::string current_message_id_;// 当前 message_id(同卡复用) + + // ── 读卡触发逻辑:发 DDS 后等待 3 秒再恢复自动寻卡 ── + std::chrono::steady_clock::time_point wait_end_time_; // 等待结束时刻 + std::string last_trigger_card_; // 上次触发时的卡号(防重) + bool wait_active_; // 是否处于"等待期",仅在 OnCardDetected 时置 true +}; + +#endif // FAST_DDS_GENERATED__PUBLISHERAPP_HPP diff --git a/readcard/Subscriber.cxx b/readcard/Subscriber.cxx new file mode 100644 index 0000000..c20db87 --- /dev/null +++ b/readcard/Subscriber.cxx @@ -0,0 +1,168 @@ +#include "Subscriber.hpp" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "WeighingDDSTypePubSubTypes.hpp" + +#include "msg.hpp" +#include "DEBUG.hpp" + +using namespace eprosima::fastdds::dds; + +SubscriberApp::SubscriberApp( + const int& domain_id) + : factory_(nullptr) + , participant_(nullptr) + , subscriber_(nullptr) + , topic_(nullptr) + , reader_(nullptr) + , type_(new WeighingSystem::ReadCardReqPubSubType()) + , samples_received_(0) + , stop_(false) +{ + // Create the participant + DomainParticipantQos pqos = PARTICIPANT_QOS_DEFAULT; + pqos.name("ReadCard_sub_participant"); + pqos.wire_protocol().builtin.discovery_config.leaseDuration = Duration_t(60, 0); + pqos.wire_protocol().builtin.discovery_config.leaseDuration_announcementperiod = Duration_t(30, 0); + factory_ = DomainParticipantFactory::get_shared_instance(); + participant_ = factory_->create_participant(domain_id, pqos, nullptr, StatusMask::none()); + if (participant_ == nullptr) + { + throw std::runtime_error("InternalSystem::ReadCardReq Participant initialization failed"); + } + + // Register the type + type_.register_type(participant_); + + // Create the subscriber + SubscriberQos sub_qos = SUBSCRIBER_QOS_DEFAULT; + participant_->get_default_subscriber_qos(sub_qos); + subscriber_ = participant_->create_subscriber(sub_qos, nullptr, StatusMask::none()); + if (subscriber_ == nullptr) + { + throw std::runtime_error("InternalSystem::ReadCardReq Subscriber initialization failed"); + } + + // Create the topic + TopicQos topic_qos = TOPIC_QOS_DEFAULT; + participant_->get_default_topic_qos(topic_qos); + topic_ = participant_->create_topic("ReadCardReq", type_.get_type_name(), topic_qos); + if (topic_ == nullptr) + { + throw std::runtime_error("InternalSystem::ReadCardReq Topic initialization failed"); + } + + // Create the reader + DataReaderQos reader_qos = DATAREADER_QOS_DEFAULT; + subscriber_->get_default_datareader_qos(reader_qos); + reader_qos.reliability().kind = ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; + reader_qos.durability().kind = DurabilityQosPolicyKind::VOLATILE_DURABILITY_QOS; + reader_qos.history().kind = HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; + reader_ = subscriber_->create_datareader(topic_, reader_qos, this, StatusMask::all()); + if (reader_ == nullptr) + { + throw std::runtime_error("InternalSystem::ReadCardReq DataReader initialization failed"); + } +} + +SubscriberApp::~SubscriberApp() +{ + if (nullptr != participant_) + { + // Delete DDS entities contained within the DomainParticipant + participant_->delete_contained_entities(); + + // Delete DomainParticipant + factory_->delete_participant(participant_); + } +} + +void SubscriberApp::on_subscription_matched( + DataReader* reader, + const SubscriptionMatchedStatus& info) +{ + if (info.current_count_change == 1) + { + DEBUG(reader->get_topicdescription()->get_name() << " Subscriber matched."); + } + else if (info.current_count_change == -1) + { + DEBUG(reader->get_topicdescription()->get_name() << " Subscriber unmatched."); + } + else + { + DEBUG(info.current_count_change << " is not a valid value for SubscriptionMatchedStatus current count change"); + } +} + +void SubscriberApp::on_data_available( + DataReader* reader) +{ + SampleInfo info; + std::string topic_name = reader->get_topicdescription()->get_name(); + DEBUG(topic_name << " Topic receviced."); + + if (topic_name == "ReadCardReq") + { + WeighingSystem::ReadCardReq sample_; + while ((!is_stopped()) && (RETCODE_OK == reader->take_next_sample(&sample_, &info))) + { + if ((info.instance_state == ALIVE_INSTANCE_STATE) && info.valid_data) + { + { + std::unique_lock lock(MsgData::queue_cv_mtx_); + MsgData::ReadCardReq_queue_.push(std::move(sample_)); + lock.unlock(); + } + } + } + } +} + +void SubscriberApp::run(std::shared_ptr handler) +{ + while (!is_stopped()) + { + std::unique_lock lock(MsgData::queue_cv_mtx_, std::try_to_lock); + if (lock.owns_lock()) + { + if (!MsgData::ReadCardReq_queue_.empty()) + { + WeighingSystem::ReadCardReq req = std::move(MsgData::ReadCardReq_queue_.front()); + MsgData::ReadCardReq_queue_.pop(); + lock.unlock(); + handler->HandleDdsMsg(req.msg(), req.index()); + } + else + { + lock.unlock(); + } + } + + { + std::unique_lock period_lock(terminate_cv_mtx_); + terminate_cv_.wait_for(period_lock, std::chrono::milliseconds(period_ms_), [this](){return is_stopped();}); + } + } +} + +bool SubscriberApp::is_stopped() +{ + return stop_.load(); +} + +void SubscriberApp::stop() +{ + stop_.store(true); + terminate_cv_.notify_all(); +} diff --git a/readcard/Subscriber.hpp b/readcard/Subscriber.hpp new file mode 100644 index 0000000..8aa7fe8 --- /dev/null +++ b/readcard/Subscriber.hpp @@ -0,0 +1,56 @@ +#ifndef FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP +#define FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP + +#include + +#include +#include +#include +#include + +#include "WeighingDDSType.hpp" +#include "MsgHandler.hpp" + +class SubscriberApp : public eprosima::fastdds::dds::DataReaderListener +{ +public: + + SubscriberApp( + const int& domain_id); + + virtual ~SubscriberApp(); + + //! Subscription callback + void on_data_available( + eprosima::fastdds::dds::DataReader* reader) override; + + //! Subscriber matched method + void on_subscription_matched( + eprosima::fastdds::dds::DataReader* reader, + const eprosima::fastdds::dds::SubscriptionMatchedStatus& info) override; + + //! Run subscriber + void run(std::shared_ptr handler); + + //! Trigger the end of execution + void stop(); + +private: + + //! Return the current state of execution + bool is_stopped(); + + std::shared_ptr factory_; + eprosima::fastdds::dds::DomainParticipant* participant_; + eprosima::fastdds::dds::Subscriber* subscriber_; + eprosima::fastdds::dds::Topic* topic_; + eprosima::fastdds::dds::DataReader* reader_; + eprosima::fastdds::dds::TypeSupport type_; + uint16_t samples_received_; + std::atomic stop_; + uint32_t period_ms_ = 100; + mutable std::mutex terminate_cv_mtx_; + std::condition_variable terminate_cv_; +}; + +#endif // FAST_DDS_GENERATED__SUBSCRIBERAPP_HPP diff --git a/readcard/main.cxx b/readcard/main.cxx new file mode 100644 index 0000000..325280d --- /dev/null +++ b/readcard/main.cxx @@ -0,0 +1,189 @@ +#include +#include +#include +#include +#include +#include + +#include + +#include "Subscriber.hpp" +#include "Publisher.hpp" +#include "SerialMsgHandler.hpp" +#include "msg.hpp" +#include "DEBUG.hpp" + +using eprosima::fastdds::dds::Log; + +std::function stop_handler; +void signal_handler( + int signum) +{ + stop_handler(signum); +} + +std::string parse_signal( + const int& signum) +{ + switch (signum) + { + case SIGINT: + return "SIGINT"; + case SIGTERM: + return "SIGTERM"; +#ifndef _WIN32 + case SIGQUIT: + return "SIGQUIT"; + case SIGHUP: + return "SIGHUP"; +#endif // _WIN32 + default: + return "UNKNOWN SIGNAL"; + } +} + +std::queue MsgData::ReadCardReq_queue_; +std::mutex MsgData::queue_cv_mtx_; + +int main(int argc, char** argv) +{ + auto ret = EXIT_SUCCESS; + std::shared_ptr sub; + std::shared_ptr pub; + std::shared_ptr dev; + + int domain_id = 0; + const char* interface = "serial"; + const char* port = "ttyS1"; + const char* baudrate = "9600"; + const char* device = "RC522"; + + + + // std::map> password = { + // {0, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, // AUSEFT + // {1, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {2, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {3, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {4, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {5, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {6, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // {10, {0x41, 0x55, 0x53, 0x45, 0x46, 0x54}}, + // }; + + std::map> password = { + {0, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, // B7ML5F + {1, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + {2, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + {3, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + {4, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + {5, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + //{6, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + {6, {0xB1, 0x0A, 0x23, 0xD1, 0x8F, 0x20}}, // B10A23D18F20 + {10, {0x42, 0x37, 0x4D, 0x4C, 0x35, 0x46}}, + }; + + + for (int i = 1; i < argc; i++) + { + if (strcmp(argv[i], "--domain") == 0 && i + 1 < argc) + { + domain_id = atoi(argv[++i]); + } + else if (strcmp(argv[i], "--interface") == 0 && i + 1 < argc) + { + interface = argv[++i]; + } + else if (strcmp(argv[i], "--port") == 0 && i + 1 < argc) + { + port = argv[++i]; + } + else if (strcmp(argv[i], "--baudrate") == 0 && i + 1 < argc) + { + baudrate = argv[++i]; + } + else if (strcmp(argv[i], "--device") == 0 && i + 1 < argc) + { + device = argv[++i]; + } + else if (strcmp(argv[i], "--version") == 0) + { + std::cout << "Vesrion: " << PROGRAM_VERSION << "\n"; + return EXIT_SUCCESS; + } + else if (strcmp(argv[i], "--help") == 0) + { + std::cout << "Usage: [options]\n" + << "Options:\n" + << " --domain Set domain ID\n" + << " --interface Set interface (e.g., serial)\n" + << " --baudrate Set baudrate (e.g., 9600)\n" + << " --port Set port name (e.g., ttyS1)\n" + << " --device Set device name (e.g., RC522)\n" + << " --version Show software Version\n" + << " --help Show this help message\n"; + return EXIT_SUCCESS; + } + else + { + std::cerr << "Unknown option: " << argv[i] << "\n"; + std::cout << "Usage: [options]\n" + << "Options:\n" + << " --domain Set domain ID\n" + << " --interface Set interface (e.g., serial)\n" + << " --baudrate Set baudrate (e.g., 9600)\n" + << " --port Set port name (e.g., ttyS1)\n" + << " --device Set device name (e.g., RC522)\n" + << " --version Show software Version\n" + << " --help Show this help message\n"; + return EXIT_FAILURE; + } + } + + sub = std::make_shared(domain_id); + pub = std::make_shared(domain_id); + dev = std::make_shared(); + + dev->OpenPort(port, baudrate); + dev->SetDevice(device); + dev->StorePasswd(password); + + // ========== 新增:保存端口名,供 SkipCurrentBlock 使用 ========== + dev->m_Port = port; + + // ========== 设置卡检测回调,发布 QueueTrigger ========== + dev->OnCardDetected = [pub](const std::string& cardId) { + pub->PublishQueueTrigger(cardId); + }; + + if (!dev->InitSequence()) + { + DEBUG("Device initialization failed, exiting."); + return EXIT_FAILURE; + } + + std::thread sub_thread(&SubscriberApp::run, sub, dev); + std::thread pub_thread(&PublisherApp::run, pub, dev); + + DEBUG("Program is running. Please press Ctrl+C to stop at any time."); + + stop_handler = [&](int signum) + { + std::cout << "\n" << parse_signal(signum) << " received, stopping execution." << std::endl; + sub->stop(); + pub->stop(); + }; + + signal(SIGINT, signal_handler); + signal(SIGTERM, signal_handler); +#ifndef _WIN32 + signal(SIGQUIT, signal_handler); + signal(SIGHUP, signal_handler); +#endif // _WIN32 + + sub_thread.join(); + pub_thread.join(); + + Log::Reset(); + return ret; +} diff --git a/readcard/msg.hpp b/readcard/msg.hpp new file mode 100644 index 0000000..d12d312 --- /dev/null +++ b/readcard/msg.hpp @@ -0,0 +1,14 @@ +#ifndef _MSG_HPP_ +#define _MSG_HPP_ + +#include +#include +#include "WeighingDDSType.hpp" + +class MsgData { +public: + static std::queue ReadCardReq_queue_; + static std::mutex queue_cv_mtx_; +}; + +#endif diff --git a/readcard/readcard.md b/readcard/readcard.md new file mode 100644 index 0000000..9598ab4 --- /dev/null +++ b/readcard/readcard.md @@ -0,0 +1,121 @@ +# ReadCard 程序流程文档 + +## 启动流程 + +``` +main() + │ + ├─ OpenPort(port, baudrate) 打开串口 + ├─ SetDevice(device) 设置设备名 + ├─ StorePasswd(password) 存储扇区密码表 + │ + ├─ InitSequence() 初始化序列(同步阻塞) + │ ├─ StopCard() → 等待应答 (3s超时) + │ ├─ SetPasswd(1) → 等待应答 + │ ├─ SetPasswd(2) → 等待应答 + │ ├─ SetPasswd(3) → 等待应答 + │ ├─ SetPasswd(4) → 等待应答 + │ ├─ SetPasswd(5) → 等待应答 + │ ├─ SetPasswd(10) → 等待应答 + │ └─ FindCard() 发出首次寻卡, AutoFind=true + │ (任一步失败 → 程序退出) + │ + ├─ 启动 sub_thread DDS命令接收线程 + └─ 启动 pub_thread 设备响应发布线程 +``` + +## 运行时两个线程 + +``` +sub_thread (DDS命令接收) pub_thread (设备响应发布, 100ms周期) + │ │ + │ 收到 ReadCardReq │ HandleDeviceMsg() + │ → HandleDdsMsg() │ → RecvDeviceMsg() 读串口 + │ │ → ParseDeviceMsg() 解析响应 + │ │ → 有数据则 writer_->write() 发布DDS + │ │ + │ │ AutoFindTick() + │ │ → AutoFind开启时按间隔发FindCard +``` + +## DDS 对外接口 + +### 订阅 Topic: `ReadCardReq` + +| 命令 | 参数 | 行为 | +|------|------|------| +| `"find"` | 无 | 清空重复卡记录,启动自动寻卡 | +| `"read"` | `{扇区号}` | 暂停自动寻卡,读指定扇区 | +| `"write"` | `{扇区号, 数据...}` | 暂停自动寻卡,写指定扇区 | +| `"stop"` | 无 | 停止自动寻卡 | +| `"beep"` | `{时长}` 或空 | 暂停自动寻卡,蜂鸣(默认0x0F) | +| `"reset"` | 无 | 暂停自动寻卡,清空串口缓冲区 | + +### 发布 Topic: `ReadCardRsp` + +| 响应 | 内容 | 说明 | +|------|------|------| +| `"find"` | 成功:`{卡号4字节}` 失败:`{错误码}` | 寻卡结果 | +| `"read"` | 成功:`{数据17字节}` 失败:`{错误码}` | 读卡结果 | +| `"write"` | `{状态码}` | 写卡结果 | +| `"stop"` | `{状态码}` | 停止结果 | +| `"beep"` | `{状态码}` | 蜂鸣结果 | + +## 自动寻卡状态机 + +``` + ┌──────────────────────────┐ + │ AutoFind = true │ + │ (自动寻卡运行中) │ + │ │ + │ AutoFindTick按间隔 │ + │ 发送FindCard │ + └──┬────────┬───────────┬──┘ + │ │ │ + 寻卡失败 │ 寻卡成功(新卡)│ 寻卡成功(重复卡) + interval=500ms│ AutoFind=false│ interval=5000ms + 继续重试 │ 发布卡号 │ 不发布,继续寻卡 + │ │ │ + │ ▼ │ + │ ┌────────────┐ │ + │ │AutoFind=false│ │ + │ │(等待业务处理)│ │ + │ └──┬─────┬───┘ │ + │ │ │ │ + │ DDS下发 DDS下发 │ + │ read write │ + │ │ │ │ + │ ▼ ▼ │ + │ 设备响应返回 │ + │ AutoFind=true │ + │ interval=500ms │ + │ │ │ + └──────┘──────────────┘ + (回到自动寻卡状态) + + 特殊命令: + "stop" → AutoFind=false, 完全停止寻卡 + "find" → AutoFind=true, 清空PreCard, 重新开始寻卡 + "beep"/"reset" → AutoFind=false, 暂停寻卡(需DDS重发find恢复) +``` + +## 定时间隔策略 + +| 时机 | 间隔 | 说明 | +|------|------|------| +| 发送FindCard后 | 5000ms | 超时保护,无应答则重发 | +| 寻卡失败 | 500ms | 快速重试 | +| 重复刷卡 | 5000ms | 同一张卡不重复处理 | +| 读写完成恢复 | 500ms | 业务结束后快速恢复寻卡 | + +## 启动参数 + +| 参数 | 默认值 | 说明 | +|------|--------|------| +| `--domain` | 0 | DDS域ID | +| `--interface` | serial | 接口类型 | +| `--port` | ttyS1 | 串口端口 | +| `--baudrate` | 9600 | 波特率 | +| `--device` | RC522 | 设备名称 | +| `--version` | - | 显示版本号 | +| `--help` | - | 显示帮助信息 | diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..745b4cb --- /dev/null +++ b/readme.txt @@ -0,0 +1,51 @@ +./Weigh --port ttyS5 --device Keli +./Print --port ttyS2 --device NP80A +./Core --addr mqtt://192.168.1.1:1883 + + + +./Weigh --port ttyS3 --device Keli +./Print --port ttyS2 --device NP80A +./Core --addr mqtt://10.180.4.101:1883 + + +./print-test publisher + +{ + "bar_ctrl": + { + "FrontBar": "down", + "BackBar": "down" + } +} + +{ + "light_ctrl": + { + "FrontLED": "red", + "BackLED": "red" + } +} + + +ScaleInfo VOLATILE_DURABILITY_QOS +ScaleCommand VOLATILE_DURABILITY_QOS +WeightInfoOk VOLATILE_DURABILITY_QOS +WeightInfoError VOLATILE_DURABILITY_QOS +BarCommandUpdate VOLATILE_DURABILITY_QOS +LightsCommandUpdate VOLATILE_DURABILITY_QOS +InfraredCommandUpdate VOLATILE_DURABILITY_QOS +BarUpdate TRANSIENT_LOCAL_DURABILITY_QOS +LightsUpdate TRANSIENT_LOCAL_DURABILITY_QOS +InfraredUpdate TRANSIENT_LOCAL_DURABILITY_QOS +LicenseSnapUpdate VOLATILE_DURABILITY_QOS +Voice VOLATILE_DURABILITY_QOS +SummaryUpdate VOLATILE_DURABILITY_QOS + + + +./Core --domain 12 & +./GateCtrl --domain 12 & +./HttpServer --domain 12 --port 8081 & +./Print --domain 12 --port ttyS2 & +./Weigh --domain 12 --port ttyS3 & diff --git a/weigh/MsgHandler.cxx b/weigh/MsgHandler.cxx index cf0136c..5c05b52 100644 --- a/weigh/MsgHandler.cxx +++ b/weigh/MsgHandler.cxx @@ -127,7 +127,10 @@ int MsgHandler::RecvMsg(std::vector& data, int timeoutMs) } // 有数据可读 - uint8_t bytes; + //uint8_t bytes; + int bytes; + + if (ioctl(fd, FIONREAD, &bytes) < 0) { perror("ioctl FIONREAD失败"); @@ -141,6 +144,9 @@ int MsgHandler::RecvMsg(std::vector& data, int timeoutMs) return -1; } + data.resize(bytesRead); // 调整 data 大小为实际读取的字节数 + + return bytesRead; } @@ -171,7 +177,8 @@ bool MsgHandler::get_frame(std::vector& frame, uint8_t frame_size, uint } // 检查是否有足够的数据(至少一个完整帧) - if (m_WeightData.size() >= 12) + //if (m_WeightData.size() >= 12) + if (m_WeightData.size() >= frame_size) { // 检查结束字节 if (m_WeightData[frame_size - 1] == end) @@ -490,13 +497,44 @@ bool MsgHandler::get_weight_2(float& weight, std::vector& frame) } } - int decimalPos = frame[1]&0x07 - 2; - if (decimalPos < 0) + // ========== 新增:调试打印 weightDigits ========== + //std::cout << "[DEBUG] weightDigits='" << weightDigits << "' (len=" << weightDigits.size() << ")" << std::endl; + + + + // int decimalPos = frame[1]&0x07 - 2; + // if (decimalPos < 0) + // { + // decimalPos = 0; + // } + + // 判断是否为国产仿制协议: + // 特征:frame[1] == '1' 且 frame[2] == '0'(固定标识"10") + // 这种情况下没有小数点指示,整数就是 kg + int decimalPos = 0; + bool is_domestic_clone = (frame[1] == '1' && frame[2] == '0'); + if (!is_domestic_clone) { - decimalPos = 0; + // 标准 Toledo:按字节 [1] 的 ASCII 数字解析小数位数 + if (frame[1] >= '0' && frame[1] <= '4') + { + decimalPos = frame[1] - '0'; + } } + // 否则 decimalPos = 0(国产仿制视为整数) + // 防止 divisors 数组越界 + if (decimalPos < 0) decimalPos = 0; + if (decimalPos > 5) decimalPos = 5; + // ================================= + raw_value = std::stof(weightDigits); + + // ========== 新增:调试打印 raw_value ========== + //std::cout << "[DEBUG] raw_value=" << raw_value << " decimalPos=" << decimalPos << std::endl; + + + weight = raw_value / divisors[decimalPos]; if (frame[2] & 0x02) @@ -504,6 +542,9 @@ bool MsgHandler::get_weight_2(float& weight, std::vector& frame) weight = 0 - weight; } + + + return true; } @@ -515,6 +556,26 @@ bool MsgHandler::HandleDeviceMsg(T& msg) if (RecvDeviceMsg(m_Data, 100) > 0) { + + // 清空累积,避免错位数据影响 + m_WeightData.clear(); + + // ========== 新增:每次读取前重新配置串口 ========== + // SerialMsgHandler* serial = dynamic_cast(this); + // if (serial != nullptr) { + // serial->refreshPort(); + // } + + // ========== 新增:调试打印原始数据 ========== + // std::cout << "[DEBUG] Recv bytes: " << m_Data.size() << " Data: "; + // for (size_t i = 0; i < m_Data.size() && i < 32; i++) { + // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)m_Data[i] << " "; + // } + // std::cout << std::dec << std::endl; + // ========================================== + + + m_WeightData.insert(m_WeightData.end(), m_Data.begin(), m_Data.end()); } @@ -531,6 +592,14 @@ bool MsgHandler::HandleDeviceMsg(T& msg) { if (get_frame(frame, 17, STX, CR) == true) { + + // ========== 新增:调试打印 frame 内容 ========== + // std::cout << "[DEBUG] Frame extracted: "; + // for (size_t i = 0; i < frame.size(); i++) { + // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)frame[i] << " "; + // } + // std::cout << std::dec << " (size=" << frame.size() << ")" << std::endl; + return get_weight_2(msg, frame); } } diff --git a/weigh/Publisher.cxx b/weigh/Publisher.cxx index a138c50..bacb8fa 100644 --- a/weigh/Publisher.cxx +++ b/weigh/Publisher.cxx @@ -214,6 +214,11 @@ void PublisherApp::run(std::shared_ptr handler) if (handler->HandleDeviceMsg(weight) == true) { bool success = detector.processWeight(weight); + + // ========== 调试打印1:串口收到数据 ========== + //std::cout << "[DEBUG] Recv from ttyS3, weight=" << weight << std::endl; + + if (!success) { std::cout << "Failed to process weight!" << std::endl; @@ -253,18 +258,24 @@ void PublisherApp::run(std::shared_ptr handler) if (detector.isStable()) { info.WeightOK() = true; - info.Value() = weight; - info.StableValue() = weight; + info.Value() = weight / 1000.0f; + info.StableValue() = weight / 1000.0f; } else { info.WeightOK() = false; - info.Value() = weight; + info.Value() = weight / 1000.0f; info.StableValue() = 0; } if (send_time >= 50) { + + // ========== 调试打印2:DDS发布前 ========== + // std::cout << "[DEBUG] DDS Publish: Value=" << info.Value() + // << " StableValue=" << info.StableValue() + // << " HasVehicle=" << info.HasVehicle() << std::endl; + writer_->write(&info); send_time = 0; } @@ -276,6 +287,14 @@ void PublisherApp::run(std::shared_ptr handler) send_time = 50; } + + // ========== 调试打印3:主循环心跳 ========== + // static int heartbeat = 0; + // heartbeat++; + // if (heartbeat % 100 == 0) { + // std::cout << "[DEBUG] Main loop alive, heartbeat=" << heartbeat << std::endl; + // } + // Wait for period or stop event std::unique_lock period_lock(mutex_); cv_.wait_for(period_lock, std::chrono::milliseconds(period_ms_), [this]() diff --git a/yuqian.jpg b/yuqian.jpg new file mode 100644 index 0000000..bfbc3bf Binary files /dev/null and b/yuqian.jpg differ