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