9#include <serial/serial.h>
10#include <nav_msgs/Odometry.h>
11#include <sensor_msgs/JointState.h>
12#include <std_msgs/Float64.h>
13#include <std_msgs/Int8MultiArray.h>
14#include <tf2_ros/buffer.h>
15#include <tf2_ros/transform_listener.h>
16#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
17#include "std_msgs/UInt32.h"
18#include "rm_msgs/VisualizeStateData.h"
19#include "rm_msgs/CustomControllerData.h"
20#include "rm_msgs/VTKeyboardMouseData.h"
21#include "rm_msgs/VTReceiverControlData.h"
35 serial::Timeout timeout = serial::Timeout::simpleTimeout(50);
36 serial_.setPort(
"/dev/usbImagetran");
45 catch (serial::IOException& e)
47 ROS_ERROR(
"Cannot open image transmitter port");
52 uint8_t
getCRC8CheckSum(
unsigned char* pch_message,
unsigned int dw_length,
unsigned char uc_crc_8)
54 unsigned char uc_index;
57 uc_index = uc_crc_8 ^ (*pch_message++);
65 unsigned char uc_expected;
66 if ((pch_message ==
nullptr) || (dw_length <= 2))
69 return (uc_expected == pch_message[dw_length - 1]);
75 if ((pch_message ==
nullptr) || (dw_length <= 2))
78 pch_message[dw_length - 1] = uc_crc;
84 if (pch_message ==
nullptr)
88 chData = *pch_message++;
89 (w_crc) = (
static_cast<uint16_t
>(w_crc) >> 8) ^
90 rm_vt::wCRC_table[(
static_cast<uint16_t
>(w_crc) ^
static_cast<uint16_t
>(chData)) & 0x00ff];
98 if ((pch_message ==
nullptr) || (dw_length <= 2))
101 return ((w_expected & 0xff) == pch_message[dw_length - 2] &&
102 ((w_expected >> 8) & 0xff) == pch_message[dw_length - 1]);
108 if ((pch_message ==
nullptr) || (dw_length <= 2))
111 pch_message[dw_length - 2] =
static_cast<uint8_t
>((wCRC & 0x00ff));
112 pch_message[dw_length - 1] =
static_cast<uint8_t
>(((wCRC >> 8) & 0x00ff));
uint32_t verifyCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length)
Definition data.h:63
serial::Serial serial_
Definition data.h:30
void initSerial()
Definition data.h:33
uint8_t getCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length, unsigned char uc_crc_8)
Definition data.h:52
void appendCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length)
Definition data.h:105
uint32_t verifyCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length)
Definition data.h:95
bool video_transmission_is_online_
Definition data.h:31
void appendCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length)
Definition data.h:72
uint16_t getCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length, uint16_t w_crc)
Definition data.h:81
const uint16_t wCRC_table[256]
Definition protocol.h:142
const uint16_t kCrc16Init
Definition protocol.h:141
const uint8_t kCrc8Init
Definition protocol.h:124
const uint8_t kCrc8Table[256]
Definition protocol.h:125