Exemplo n.º 1
0
void init()
{
  //initialise colour sensor
  sensorInit();
  //iniitalise interface
  InterfaceInit();
  //initialise servos for seperator and sorter
  servoInit();
  
  // Configure button S1 interrupt
  GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN3, GPIO_LOW_TO_HIGH_TRANSITION);
  GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN3);  

  GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN3);

  GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN3);
  
  // Configure button S2 interrupt
  GPIO_selectInterruptEdge(GPIO_PORT_P1, GPIO_PIN4, GPIO_LOW_TO_HIGH_TRANSITION);
  GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN4);  

  GPIO_clearInterrupt(GPIO_PORT_P1, GPIO_PIN4);

  GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN4);
}
Exemplo n.º 2
0
sgIP_Hub_HWInterface *
sgIP_Hub_AddHardwareInterface (int (*TransmitFunction)
                               (sgIP_Hub_HWInterface *, sgIP_memblock *),
                               int (*InterfaceInit) (sgIP_Hub_HWInterface *))
{
  hw.TransmitFunction = TransmitFunction;
  if (InterfaceInit)
    InterfaceInit (&hw);

  return &hw;
}
Exemplo n.º 3
0
int MinuiBackendAdf::DeviceInit(adf_device* dev) {
  adf_id_t intf_id;
  int err = adf_find_simple_post_configuration(dev, &format, 1, &intf_id, &eng_id);
  if (err < 0) return err;

  err = adf_device_attach(dev, eng_id, intf_id);
  if (err < 0 && err != -EALREADY) return err;

  intf_fd = adf_interface_open(dev, intf_id, O_RDWR);
  if (intf_fd < 0) return intf_fd;

  err = InterfaceInit();
  if (err < 0) {
    close(intf_fd);
    intf_fd = -1;
  }

  return err;
}
Exemplo n.º 4
0
ModuleInterface::Status ModuleInterface::Init(){
    Status res = STATUS_ERROR;
    switch(mSystemState){
    case SYSSTATE_NONE:
        if(!bIsControlInterface){
            if(sMainControlInterface!=NULL){
                if(sMainControlInterface->mClock!=NULL) SetExternalClock(sMainControlInterface->mClock);
                else                                    SetExternalClock(&sMainControlInterface->mInternalClock);
            }
        }
        res = InterfaceInit();
        if(res==STATUS_OK){
            mSystemState = SYSSTATE_STOPPED;
        }
        break;
    case SYSSTATE_STOPPED:
        res = STATUS_OK;
        break;
    case SYSSTATE_STARTED:
        res = STATUS_OK;
        break;
    }
    return res;
}
Exemplo n.º 5
0
int main(void)
{
	pthread_t Thread_ID;

	// Connect to the robot
	if (!RobotInit("/dev/ttyAMA0"))
	{
		puts("Error : can't connect to the robot.");
		return -1;
	}

	// Create threads
	if (pthread_create(&Thread_ID, NULL, ThreadReadBatteryVoltage, NULL) != 0)
	{
		puts("Error : can't create battery voltage thread.");
		return -1;
	}

	// Initialize interface
	if (!InterfaceInit())
	{
		puts("Error : can't initialize interface. Make sure ncurses library is installed.");
		return -1;
	}
	InterfaceDisplayHints();

	while (1)
	{
		switch (getchar())
		{
			case 'z':
				InterfaceDisplayDirection("FORWARD");
				RobotSetMotion(ROBOT_MOTION_FORWARD);
				break;

			case 's':
				InterfaceDisplayDirection("BACKWARD");
				RobotSetMotion(ROBOT_MOTION_BACKWARD);
				break;

			case 'q':
				InterfaceDisplayDirection("LEFT");
				RobotSetMotion(ROBOT_MOTION_FORWARD_TURN_LEFT);
				break;

			case 'd':
				InterfaceDisplayDirection("RIGHT");
				RobotSetMotion(ROBOT_MOTION_FORWARD_TURN_RIGHT);
				break;

			// Stop robot
			case ' ':
				InterfaceDisplayDirection("STOPPED");
				RobotSetMotion(ROBOT_MOTION_STOPPED);
				break;

			// Increase left motor forward speed
			case 'u':
				InterfaceDisplaySpeed("Left forward faster");
				RobotChangeMotorSpeed(ROBOT_MOTOR_LEFT, ROBOT_MOTOR_DIRECTION_FORWARD, 1);
				break;

			// Decrease left motor forward speed
			case 'j':
				InterfaceDisplaySpeed("Left forward slower");
				RobotChangeMotorSpeed(ROBOT_MOTOR_LEFT, ROBOT_MOTOR_DIRECTION_FORWARD, 0);
				break;

			// Increase right motor forward speed
			case 'i':
				InterfaceDisplaySpeed("Right forward faster");
				RobotChangeMotorSpeed(ROBOT_MOTOR_RIGHT, ROBOT_MOTOR_DIRECTION_FORWARD, 1);
				break;

			// Decrease right motor forward speed
			case 'k':
				InterfaceDisplaySpeed("Right forward slower");
				RobotChangeMotorSpeed(ROBOT_MOTOR_RIGHT, ROBOT_MOTOR_DIRECTION_FORWARD, 0);
				break;

			// Increase left motor backward speed
			case 'o':
				InterfaceDisplaySpeed("Left backward faster");
				RobotChangeMotorSpeed(ROBOT_MOTOR_LEFT, ROBOT_MOTOR_DIRECTION_BACKWARD, 1);
				break;

			// Decrease left motor backward speed
			case 'l':
				InterfaceDisplaySpeed("Left backward slower");
				RobotChangeMotorSpeed(ROBOT_MOTOR_LEFT, ROBOT_MOTOR_DIRECTION_BACKWARD, 0);
				break;

			// Increase right motor backward speed
			case 'p':
				InterfaceDisplaySpeed("Right backward faster");
				RobotChangeMotorSpeed(ROBOT_MOTOR_RIGHT, ROBOT_MOTOR_DIRECTION_BACKWARD, 1);
				break;

			// Decrease right motor backward speed
			case 'm':
				InterfaceDisplaySpeed("Right backward slower");
				RobotChangeMotorSpeed(ROBOT_MOTOR_RIGHT, ROBOT_MOTOR_DIRECTION_BACKWARD, 0);
				break;

			// Exit
			case 'x':
				RobotSetMotion(ROBOT_MOTION_STOPPED);
				RobotSetLedState(0);
				InterfaceTerminate();
				return 0;
		}
	}
}
Exemplo n.º 6
0
temtab::temtab(QWidget *parent)
{
    InterfaceInit();
}