Example #1
0
EXPORT(sqInt) primitiveSerialPortOpen(void) {
	sqInt portNum;
	sqInt baudRate;
	sqInt stopBitsType;
	sqInt parityType;
	sqInt dataBits;
	sqInt inFlowControl;
	sqInt outFlowControl;
	sqInt xOnChar;
	sqInt xOffChar;

	portNum = interpreterProxy->stackIntegerValue(8);
	baudRate = interpreterProxy->stackIntegerValue(7);
	stopBitsType = interpreterProxy->stackIntegerValue(6);
	parityType = interpreterProxy->stackIntegerValue(5);
	dataBits = interpreterProxy->stackIntegerValue(4);
	inFlowControl = interpreterProxy->stackIntegerValue(3);
	outFlowControl = interpreterProxy->stackIntegerValue(2);
	xOnChar = interpreterProxy->stackIntegerValue(1);
	xOffChar = interpreterProxy->stackIntegerValue(0);
	if (interpreterProxy->failed()) {
		return null;
	}
	serialPortOpen(
			portNum, baudRate, stopBitsType, parityType, dataBits,
			inFlowControl, outFlowControl, xOnChar, xOffChar);
	if (interpreterProxy->failed()) {
		return null;
	}
	interpreterProxy->pop(9);
	return null;
}
primitiveSerialPortOpen(void)
{
	// SerialPlugin>>#primitiveSerialPortOpen
	sqInt baudRate;
	sqInt dataBits;
	sqInt inFlowControl;
	sqInt outFlowControl;
	sqInt parityType;
	sqInt portNum;
	sqInt stopBitsType;
	sqInt xOffChar;
	sqInt xOnChar;

	portNum = stackIntegerValue(8);
	baudRate = stackIntegerValue(7);
	stopBitsType = stackIntegerValue(6);
	parityType = stackIntegerValue(5);
	dataBits = stackIntegerValue(4);
	inFlowControl = stackIntegerValue(3);
	outFlowControl = stackIntegerValue(2);
	xOnChar = stackIntegerValue(1);
	xOffChar = stackIntegerValue(0);
	if (failed()) {
		return null;
	}
	serialPortOpen(
			portNum, baudRate, stopBitsType, parityType, dataBits,
			inFlowControl, outFlowControl, xOnChar, xOffChar);
	if (failed()) {
		return null;
	}
	pop(9);
	return null;
}
int serialPortOpenByName(char *portName, int baudRate, int stopBitsType,
                   int parityType, int dataBits, int inFlowCtrl,
                   int outFlowCtrl, int xOnChar, int xOffChar)
{
  int portNum = portNumberForName(portName);
  if (portNum < 0) {
    success(false);
    return 0;
  }
  return serialPortOpen(portNum, baudRate, stopBitsType, parityType,
			dataBits, inFlowCtrl, outFlowCtrl, xOnChar, xOffChar);
}
int main(int argc, char **argv)
{
    ros::init(argc, argv, "commander");
    dynamic_reconfigure::Server<super_modified_servo::commanderConfig> srv;
    dynamic_reconfigure::Server<super_modified_servo::commanderConfig>::CallbackType f;
    f = boost::bind(&CommanderCallBack, _1, _2);
    srv.setCallback(f);

    ros::NodeHandle n;
    ros::Publisher joint_pub = n.advertise<sensor_msgs::JointState>("/JointsState", 1000);
    ros::Rate loop_rate(200);

    fd = serialPortOpen("/dev/ttyUSB0", B115200);
    sensor_msgs::JointState joint_state_msg;

    char motor_name[] = "Motor";
    joint_state_msg.header.stamp = ros::Time::now();
    joint_state_msg.name.push_back(motor_name);
    joint_state_msg.position.push_back(0.0);
    joint_state_msg.velocity.push_back(0.0);
    joint_state_msg.effort.push_back(0.0);

    while(ros::ok())
    {
        if (start_flag == true)
        {
            if (getCommunicationSuccess() == false)
            {
                resetErrors(fd, motor_id);;
                printf("[ERROR]: %d \n", getWarning());
            }
            joint_state_msg.header.stamp = ros::Time::now();
            sprintf(motor_name, "ID:%d", motor_id);
            joint_state_msg.name[0] = motor_name;
            joint_state_msg.position[0] = ticks2deg(getPosition(fd, motor_id));
            joint_state_msg.velocity[0] = ticks2deg(getVelocity(fd, motor_id));
            joint_state_msg.effort[0] = getCurrent(fd, motor_id);
            joint_pub.publish(joint_state_msg);
            // profiledMoveToAbsolutePosition(fd, motor_id, deg2ticks(set_point));
            // moveToAbsolutePosition(fd, motor_id, deg2ticks(set_point));
            moveWithVelocity(fd, motor_id, deg2ticks(set_point));
        }
        ros::spinOnce();
        loop_rate.sleep();
    }

    serialPortClose(fd);
    return 0;
}
Example #5
0
void CdynControlDlg::InitRobot()
{
    char *serial = cJSON_GetObjectItem(m_configJSON, "serial")->valuestring;
    int rate = cJSON_GetObjectItem(m_configJSON, "baudrate")->valueint;
    m_serial = serialPortOpen(serial, rate);

    CString str;
    
    str.Format(_T("%s:%d"), charTotchar(serial), rate);

    if (m_serial == INVALID_HANDLE_VALUE) {
        log(_T("can not init %s\n"), str);
    } else {
        log(_T("%s OK!\n"), str);
    }
}
Example #6
0
void MainWindow::actionMonitor() {
    // Open close monitor
    if (ui->widgetConsole->isVisible()) {
        serialPortClose();
        ui->actionMonitor->setChecked(false);
        // Show main toolbar, hide monitor toolbar
        ui->mainToolBar->setVisible(true);
        ui->monitorToolBar->setVisible(false);
    } else {
        serialPortOpen();
        ui->consoleEdit->setFocus();
        ui->actionMonitor->setChecked(true);
        // Hide main toolbar, show monitor toolbar
        ui->mainToolBar->setVisible(false);
        ui->monitorToolBar->setVisible(true);
    }
}