本文整理汇总了C++中SerialStream类的典型用法代码示例。如果您正苦于以下问题:C++ SerialStream类的具体用法?C++ SerialStream怎么用?C++ SerialStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SerialStream类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Transmit
void Broadcast::Transmit()
{
SerialStream mySerial;
mySerial.Open("/dev/ttyUSB0");
mySerial.SetBaudRate(SerialStreamBuf::BAUD_9600);
mySerial << Data;
}
示例2: ThreadFunc
DWORD WINAPI ThreadFunc(LPVOID lpParam)
{
SerialStream stream;
if (!stream.open(4))
{
std::cout << "Couldn't open COM" << std::endl;
return -1;
}
string output;
while (true)
{
stream >> output;
int ind1, ind2, ind3;
stringstream ss;
ind1 = output.find("#");
ind2 = output.find(",", ind1 + 1);
ind3 = output.find("#", ind2+1);
float desired, actual;
ss << output.substr(ind1+1, ind2-ind1-1);
ss >> desired;
ss << output.substr(ind2 + 1, ind3 - ind2 - 1);
ss >> actual;
desiredData[desiredStart] = desired;
actualData[actualStart] = actual;
desiredStart = (desiredStart + 1) % 1000;
actualStart = (actualStart + 1) % 1000;
}
}
示例3: main
int main(int argc, char** argv)
{
/*The mySerialino must be setup to use the same baud rate*/
cout << "opening port" << endl;
mySerial.Open(PORT);
mySerial.SetBaudRate(SerialStreamBuf::BAUD_9600);
mySerial.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
cout << "port open" << endl;
do
{
cout << "Press a command key, use q to quit: ";
char val = cin.get();
cout << "Key pressed was " << val << endl;
cin.ignore();
if (val == 'q') break;
stringstream ss;
string cmd;
ss << val;
ss >> cmd;
cmd.append("#");
sendSerial(cmd);
if (val == 'b')
{
cout << "value received = " << getSerial() << endl;
}
} while(1);
}
示例4: read
// This function returns queued data on port, returns empty string if there is no data
// does not block
string read(SerialStream& serial_port)
{
string result;
while( serial_port.rdbuf()->in_avail() )
{
char next_byte;
serial_port.get(next_byte);
result += next_byte;
}
return result;
}
示例5: main
int main(int argc, char** argv)
{
cout << "opening port" << endl;
mySerial.Open(PORT);
mySerial.SetBaudRate(SerialStreamBuf::BAUD_9600);
mySerial.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
cout << "port open" << endl;
ros::init(argc, argv, "serialCommands");
ros::NodeHandle nh_;
ros::Subscriber arduino_sub = nh_.subscribe("arduino_commands", 60, arduinoCallback);
arduino_pub = nh_.advertise<std_msgs::String>("arduino_sensors", 5);
ros::spin();
mySerial.Close();
}
示例6: readBlocking
// This function blocks for upto timeout usec and waits for data
// to be available on the port.
std::string readBlocking(SerialStream& serial_port, int timeout)
{
while( serial_port.rdbuf()->in_avail() == 0 && timeout > 0 )
{
timeout -= 100;
usleep(100);
}
if(timeout < 0)
return std::string();
return read(serial_port);
}
示例7: main
int main(int argc, char **argv)
{
// initialize global variables
prevtime = std::chrono::system_clock::now();
std::cerr << "koko1" << std::endl;
for(int k=0;k<7;++k)
data.push_back(0);
ardu.Open(PORT);
std::cerr << "koko2" << std::endl;
ardu.SetBaudRate(SerialStreamBuf::BAUD_38400);
ardu.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
std::cerr << "koko3" << std::endl;
glutInit(&argc, argv);
std::cerr << "koko4" << std::endl;
InitGL();
std::cerr << "koko5" << std::endl;
glutMainLoop();
return 0;
}
示例8: Serial_Open_Port
void Serial_Open_Port(string comPort)
{
serial_port.Open( comPort ) ;
if(! serial_port.good())
{
std::cerr<<"Error: could not open serial port"<<std::endl;
exit(1);
}
serial_port.SetBaudRate( SerialStreamBuf::BAUD_9600) ;
serial_port.SetCharSize( SerialStreamBuf::CHAR_SIZE_8 ) ;
serial_port.SetNumOfStopBits(1) ;
serial_port.SetParity( SerialStreamBuf::PARITY_EVEN ) ;
serial_port.SetFlowControl( SerialStreamBuf::FLOW_CONTROL_NONE ) ;
}
示例9: serialport_open
void serialport_open(const char* sp) {
/*The arduino must be setup to use the same baud rate*/
fprintf(stdout, "Setting Params:\n");
ardu.SetBaudRate( SerialStreamBuf::BAUD_115200 ) ;
ardu.SetCharSize( SerialStreamBuf::CHAR_SIZE_8 ) ;
ardu.SetNumOfStopBits(1) ;
ardu.SetParity( SerialStreamBuf::PARITY_ODD ) ;
ardu.SetFlowControl( SerialStreamBuf::FLOW_CONTROL_HARD ) ;
ardu.SetVTime(1);
fprintf(stdout, "Opening:\n");
ardu.Open( sp ) ;
fprintf(stdout, "Opened:\n");
}
示例10: init_connection
void init_connection(SerialStream& stream)
{
stream.Open("/dev/ttyUSB0");
if (stream.IsOpen()){
cout << "\tStream open" << endl;
} else {
cout << "\tCould not open stream" << endl;
exit(1);
}
//Connection Characteristics
stream.SetBaudRate(SerialStreamBuf::BAUD_9600);
stream.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
stream.SetNumOfStopBits(1);
stream.SetParity(SerialStreamBuf::PARITY_NONE);
stream.SetFlowControl(SerialStreamBuf::FLOW_CONTROL_HARD); //??
stream.SetVMin(1000);
}
示例11: main
int main(int argc,char** argv)
{
char response[3];
serial_stream.Open( argv[1] ) ;
serial_stream.SetBaudRate( SerialStreamBuf::BAUD_115200 ) ;
serial_stream.SetCharSize( SerialStreamBuf::CHAR_SIZE_8 ) ;
serial_stream.SetFlowControl( SerialStreamBuf::FLOW_CONTROL_NONE ) ;
serial_stream.SetParity( SerialStreamBuf::PARITY_NONE ) ;
serial_stream.SetNumOfStopBits(0) ;
while (1)
{
serial_stream<<"ABCD";
cout<<"waiting response"<<endl;
serial_stream.read(response,3);
cout<<response<<endl;
}
return 0;
}
示例12: open
void open()
{
ardu.Open("/dev/ttyACM0");
ardu.SetBaudRate(SerialStreamBuf::BAUD_9600);
ardu.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
}
示例13: write
void write(SerialStream& serial_port, const std::string& data)
{
serial_port.write(data.c_str(), data.size());
}
示例14: Serial_Close_Port
void Serial_Close_Port(void)
{
if(serial_port.IsOpen())
{
serial_port.Close();
}
}
示例15: measureGravitation
void measureGravitation()
{
double mean[3] = {0,0,0};
int nbIter = 100;
for(int k=0;k<nbIter;++k)
{
std::cerr << k << "/" << nbIter << "\r";
// read data from IMU
char c; // character
std::string s("");
ardu.get( c ) ;
while(c != '#'){ardu.get( c );} // do nothing until we read the end of a block
ardu.get( c );
while(c != '#')
{
s += c;
ardu.get( c );
}
splitData(s);
mean[0] += data[4];
mean[1] += data[5];
mean[2] += data[6];
}
for(int j=0;j<3;++j)
grav[j] = mean[j]/nbIter;
std::cerr << std::endl;
}