/** * @private */ void initDevicesDescriptor() { initDeviceList(&deviceListArray, MAIN_BOARD_DEVICE_LENGTH); // Test & System // addI2CRemoteDevice(&testDevice, getTestDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addLocalDevice(getSystemDeviceInterface(), getSystemDeviceDescriptor()); addLocalDevice(getSystemDebugDeviceInterface(), getSystemDebugDeviceDescriptor()); addLocalDevice(getI2cMasterDebugDeviceInterface(), getI2cMasterDebugDeviceDescriptor()); // Local addLocalDevice(getClockDeviceInterface(), getClockDeviceDescriptor(&globalClock)); addLocalDevice(getLCDDeviceInterface(), getLCDDeviceDescriptor()); addLocalDevice(getTemperatureSensorDeviceInterface(), getTemperatureSensorDeviceDescriptor()); addLocalDevice(getEepromDeviceInterface(), getEepromDeviceDescriptor(&eeprom_)); addLocalDevice(getServoDeviceInterface(), getServoDeviceDescriptor()); addLocalDevice(getADCDeviceInterface(),getADCDeviceDescriptor()); addLocalDevice(getRobotConfigDeviceInterface(), getRobotConfigDeviceDescriptor(&robotConfig)); addLocalDevice(getStartMatchDetectorDeviceInterface(), getStartMatchDetectorDeviceDescriptor(&startMatchDetector)); addLocalDevice(getEndMatchDetectorDeviceInterface(), getEndMatchDetectorDeviceDescriptor()); addLocalDevice(getSonarDeviceInterface(), getSonarDeviceDescriptor()); addLocalDevice(getRobotSonarDetectorDeviceInterface(), getRobotSonarDetectorDeviceDescriptor()); // Mechanical Board 2->I2C // Device* armDevice = addI2CRemoteDevice(getArm2012DeviceInterface(), MECHANICAL_BOARD_2_I2C_ADDRESS); // Device* infraredDetectorDevice = addI2CRemoteDevice(getRobotInfraredDetectorDeviceInterface(), MECHANICAL_BOARD_2_I2C_ADDRESS); // Motor Board->I2C addI2CRemoteDevice(getPIDDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2CRemoteDevice(getMotorDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2CRemoteDevice(getCodersDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); Device* trajectoryDevice = addI2CRemoteDevice(getTrajectoryDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); Device* motionDevice = addI2CRemoteDevice(getMotionDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); // Beacon Receiver Board->I2C // addI2CRemoteDevice(getBeaconReceiverDeviceInterface(), BEACON_RECEIVER_I2C_ADDRESS); // Strategy Board->I2C // addI2CRemoteDevice(getStrategyDeviceInterface(), STRATEGY_BOARD_I2C_ADDRESS); // Air Conditioning Board addI2CRemoteDevice(getAirConditioningDeviceInterface(), AIR_CONDITIONING_BOARD_I2C_ADDRESS); // Init the devices initDevices(); // Manage the callback notification trajectoryDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; // testDevice.deviceHandleCallbackRawData = &mainBoardCallbackRawData; motionDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; // infraredDetectorDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; }
/** * @private */ void initMainBoardDevicesDescriptor() { initDeviceList(&deviceListArray, MAIN_BOARD_DEVICE_LENGTH); // SYSTEM & DEBUG addLocalDevice(getSystemDeviceInterface(), getSystemDeviceDescriptor()); addLocalDevice(getLogDeviceInterface(), getLogDeviceDescriptor()); addLocalDevice(getSerialDebugDeviceInterface(), getSerialDebugDeviceDescriptor()); addLocalDevice(getTimerDeviceInterface(), getTimerDeviceDescriptor()); addLocalDevice(getTest2DeviceInterface(), getTest2DeviceDescriptor()); addLocalDevice(getDataDispatcherDeviceInterface(), getDataDispatcherDeviceDescriptor()); addLocalDevice(getI2cMasterDebugDeviceInterface(), getI2cMasterDebugDeviceDescriptor()); // LOCAL addLocalDevice(getLCDDeviceInterface(), getLCDDeviceDescriptor()); addLocalDevice(getRobotConfigDeviceInterface(), getRobotConfigDeviceDescriptor(&robotConfig)); initStartMatch(&startMatch, isMatchStarted32, mainBoardWaitForInstruction, &eeprom); addLocalDevice(getStartMatchDeviceInterface(), getStartMatchDeviceDescriptor(&startMatch)); addLocalDevice(getEndMatchDetectorDeviceInterface(), getEndMatchDetectorDeviceDescriptor()); addLocalDevice(getEepromDeviceInterface(), getEepromDeviceDescriptor(&eeprom)); addLocalDevice(getClockDeviceInterface(), getClockDeviceDescriptor(&clock)); addLocalDevice(getADCDeviceInterface(), getADCDeviceDescriptor()); addLocalDevice(getServoDeviceInterface(), getServoDeviceDescriptor()); addLocalDevice(getLedDeviceInterface(), getLedDeviceDescriptor()); addLocalDevice(getTestDeviceInterface(), getTestDeviceDescriptor()); /* addLocalDevice(getSonarDeviceInterface(), getSonarDeviceDescriptor(&i2cBus)); addLocalDevice(getRobotSonarDetectorDeviceInterface(), getRobotSonarDetectorDeviceDescriptor(&i2cBus)); addLocalDevice(getTemperatureSensorDeviceInterface(), getTemperatureSensorDeviceDescriptor(&i2cBus)); */ // Mechanical Board 2->I2C // Device* armDevice = addI2cRemoteDevice(getArm2012DeviceInterface(), MECHANICAL_BOARD_2_I2C_ADDRESS); // Device* infraredDetectorDevice = addI2cRemoteDevice(getRobotInfraredDetectorDeviceInterface(), MECHANICAL_BOARD_2_I2C_ADDRESS); // addI2cRemoteDevice(getServoDeviceInterface(), MECHANICAL_BOARD_2_I2C_ADDRESS); // addUartRemoteDevice(getRobotInfraredDetectorDeviceInterface(), SERIAL_PORT_MECA2); // Motor Board->I2C /* addI2cRemoteDevice(getTestDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2cRemoteDevice(getMotorDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2cRemoteDevice(getCodersDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2cRemoteDevice(getPIDDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2cRemoteDevice(getTrajectoryDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); addI2cRemoteDevice(getMotionDeviceInterface(), MOTOR_BOARD_I2C_ADDRESS); */ // MOTOR BOARD -> UART // addUartRemoteDevice(getTestDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getMotorDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getCodersDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getPIDDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getTrajectoryDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getMotionDeviceInterface(), SERIAL_PORT_MOTOR); addUartRemoteDevice(getRobotKinematicsDeviceInterface(), SERIAL_PORT_MOTOR); // Beacon Receiver Board->I2C // addI2cRemoteDevice(getBeaconReceiverDeviceInterface(), BEACON_RECEIVER_I2C_ADDRESS); // Strategy Board->I2C // addI2cRemoteDevice(getStrategyDeviceInterface(), STRATEGY_BOARD_I2C_ADDRESS); // Air Conditioning Board addI2cRemoteDevice(getAirConditioningDeviceInterface(), AIR_CONDITIONING_BOARD_I2C_ADDRESS); // Init the devices initDevices(); // Manage the callback notification // trajectoryDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; // testDevice.deviceHandleCallbackRawData = &mainBoardCallbackRawData; // motionDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; // infraredDetectorDevice->deviceHandleCallbackRawData = &mainBoardCallbackRawData; }