Your PI definition shouldn't have the assignment operator: #define PI = 3.14159265358979323846264338327950288419716 should be #define PI 3.14159265358979323846264338327950288419716 -Tucker On Thu, Jul 29, 2010 at 3:09 PM, ibwood wrote: > > 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 > #include > #include > > #include > #include > #include > #include > #include > #include > #include > #include > #include > #include > > 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("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@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/ros-users > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users >