[ros-users] C++ type conversion error
ibwood
ianbenjiman at hotmail.com
Thu Jul 29 19:09:33 UTC 2010
Hi everyone,
I was really close to successfully compiling a code of mine, when I ran into
this error:
"expected constructor, destructor, or type conversion before "=" token"
in lines 126-129 (with ms1, ms2, ms3, ms4 assignments). What does it mean
and how can I fix it?
Here is the code:
#define PI = 3.14159265358979323846264338327950288419716
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream>
#include <cmath>
#include <iostream>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <unistd.h>
using namespace std;
const double r=0.125, R=0.55, ratio=127; // initialize constants
int main(int argc, char **argv)
{
unsigned ms1, ms2, ms3, ms4; //motor speeds of omnimaxbot
int i, j, wr, rd, x=0, y=0, z=0, fd, numSent=0;
char parseChar[1], stringIn[50];
// unsigned long bytes_read = 0; //Number of bytes read from port
// unsigned long bytes_written = 0; //Number of bytes written to the port
int bStatus;
struct termios options; //Contains various port settings
// attempt to open serial port
fd = open("/dev/HCS12",O_RDWR | O_NOCTTY | O_NDELAY);
// set settings for serial port
system("stty -F /dev/HCS12 115200 cs8 -cstopb -parity -icanon hupcl
-crtscts min 1 time 1");
// check for errors opening port
if (fd == -1 )
{
printf("open_port: Unable to open /dev/HCS12");
}
else // if no error
{
fcntl(fd, F_SETFL,0);
printf("Test Port HCS12 has been successfully opened and %d is the file
description\n",fd);
}
// get current settings of serial ports
tcgetattr(fd, &options);
// set the read and write speeds
cfsetispeed(&options, B115200);
cfsetospeed(&options, B115200);
// set parity
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
if (bStatus != 0)
{
cout << "byte status error!" << endl;
}
// initalize node
ros::init(argc, argv, "joyTalker");
ros::NodeHandle joyTalker;
// Publish to topic joyChatter
ros::Publisher pub = joyTalker.advertise<std_msgs::String>("joyChatter",
1000);
ros::Rate r(10);
while (joyTalker.ok())
{
parseChar[0]=0;
for(j=0; j<50; j++)
{
stringIn[j]=0;
}
i=0;
while(parseChar[0] != 10)
{
if(i==50) // exceeds the allowable size
{
break;
}
rd = read(fd,parseChar,1);
// printf("%s ",parseChar);
if ((parseChar[0] > 43) && ((parseChar[0] < 58) || (parseChar[0]==32)))
{
stringIn[i]=parseChar[0];
i++;
}
if (wr != 0)
{
cout << "byte status error!!!" << endl;
}
// kinematics of the omnimaxbot
ms1 = ((x/sqrt(2))+y+(R*tan((z/ratio)*(2*PI))))/((2*PI)*r);
ms2 = (-(x/sqrt(2))+y+(R*tan((z/ratio)*(2*PI))))/((2*PI)*r);
ms3 = ((x/sqrt(2))+y-(R*tan((z/ratio)*(2*PI))))/((2*PI)*r);
ms4 = (-(x/sqrt(2))+y-(R*tan((z/ratio)*(2*PI))))/((2*PI)*r);
fd = open("/dev/Driver1&2",O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1 )
{
perror("open_port: Unable to open /dev/Driver1&2");
}
// send to ROS node for communication
numSent = sprintf(stringIn, "%3d,%3d\n", ms1, ms2);
// status[0] = Serial_SendBlock(stringIn, numSent, &numSentS);
fd = open("/dev/Driver3&4",O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1 )
{
perror("open_port: Unable to open /dev/Driver3&4");
}
// send to ROS node for communication
numSent = sprintf(stringIn, "%3d,%3d\n", ms3, ms4);
// status[0] = Serial_SendBlock(stringIn, numSent, &numSentS);
}
printf("got this string %s\n",stringIn);
// convert message to string for ROS node communication
std_msgs::String msg;
std::stringstream ss;
ss << stringIn;
ROS_INFO("%s", ss.str().c_str());
msg.data = ss.str();
// publish data under topic joyChatter
pub.publish(msg);
ros::spinOnce();
}
return 0;
}
--
View this message in context: http://ros-users.122217.n3.nabble.com/C-type-conversion-error-tp1004701p1004701.html
Sent from the ROS-Users mailing list archive at Nabble.com.
------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
ros-users mailing list
ros-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ros-users
More information about the ros-users
mailing list