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); }
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; }
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; }
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; }
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; } } }
temtab::temtab(QWidget *parent) { InterfaceInit(); }