File tree Expand file tree Collapse file tree 3 files changed +64
-0
lines changed
Private/Conversion/Messages/std_msgs Expand file tree Collapse file tree 3 files changed +64
-0
lines changed Original file line number Diff line number Diff line change 1+ #include " Conversion/Messages/std_msgs/StdMsgsUInt8Converter.h"
2+
3+
4+ UStdMsgsUInt8Converter::UStdMsgsUInt8Converter ()
5+ {
6+ _MessageType = " std_msgs/UInt8" ;
7+ }
8+
9+ bool UStdMsgsUInt8Converter::ConvertIncomingMessage (const ROSBridgePublishMsg* message, TSharedPtr<FROSBaseMsg> &BaseMsg) {
10+ bool KeyFound = false ;
11+
12+ int32 DataAsInt32 = GetInt32FromBSON (TEXT (" msg.data" ), message->full_msg_bson_ , KeyFound);
13+ if (!KeyFound) return false ;
14+ uint8 Data = static_cast <uint8>(DataAsInt32);
15+ BaseMsg = TSharedPtr<FROSBaseMsg>(new ROSMessages::std_msgs::UInt8 (Data));
16+ return true ;
17+ }
18+
19+ bool UStdMsgsUInt8Converter::ConvertOutgoingMessage (TSharedPtr<FROSBaseMsg> BaseMsg, bson_t ** message) {
20+ auto UInt8Message = StaticCastSharedPtr<ROSMessages::std_msgs::UInt8>(BaseMsg);
21+ int32 DataAsInt32 = static_cast <int32>(UInt8Message->_Data );
22+ *message = BCON_NEW (
23+ " data" , BCON_INT32 (DataAsInt32)
24+ );
25+ return true ;
26+ }
Original file line number Diff line number Diff line change 1+ #pragma once
2+
3+ #include < CoreMinimal.h>
4+ #include " Conversion/Messages/BaseMessageConverter.h"
5+ #include " std_msgs/UInt8.h"
6+ #include " StdMsgsUInt8Converter.generated.h"
7+
8+
9+ UCLASS ()
10+ class ROSINTEGRATION_API UStdMsgsUInt8Converter: public UBaseMessageConverter
11+ {
12+ GENERATED_BODY ()
13+
14+ public:
15+ UStdMsgsUInt8Converter ();
16+ virtual bool ConvertIncomingMessage (const ROSBridgePublishMsg* message, TSharedPtr<FROSBaseMsg> &BaseMsg);
17+ virtual bool ConvertOutgoingMessage (TSharedPtr<FROSBaseMsg> BaseMsg, bson_t ** message);
18+ };
Original file line number Diff line number Diff line change 1+ #pragma once
2+
3+ #include " ROSBaseMsg.h"
4+
5+ namespace ROSMessages {
6+ namespace std_msgs {
7+ class UInt8 : public FROSBaseMsg {
8+ public:
9+ UInt8 () : UInt8(0 ) {}
10+
11+ UInt8 (uint8 data) {
12+ _MessageType = " std_msgs/UInt8" ;
13+ _Data = data;
14+ }
15+
16+ // private:
17+ uint8 _Data;
18+ };
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments