示例#1
0
void initMainBoardDriverDataDispatcherList(void) {
    // Initializes the DriverDataDispatcherList
    initDriverDataDispatcherList(&driverDataDispatcherListArray, MAIN_BOARD_DRIVER_DATA_DISPATCHER_LIST_LENGTH);

    // Configure data dispatcher
    addLocalDriverDataDispatcher();

    // I2C

    addI2CDriverDataDispatcher("MOTOR_BOARD_I2C_DISPATCHER",
        &motorBoardI2cInputBuffer, 
        (char(*)[]) &motorBoardI2cInputBufferArray,
        MAIN_BOARD_I2C_INPUT_DRIVER_DATA_DISPATCHER_BUFFER_LENGTH,
        &motorBoardI2cOutputStream,
        &motorBoardI2cInputStream,
        &motorI2cBusConnection
        );

    // Stream for Mechanical Board 2
    addI2CDriverDataDispatcher(
            "MECHANICAL_BOARD_2_DISPATCHER",
            &mechanical2BoardInputBuffer,
            &mechanical2BoardInputBufferArray,
            MAIN_BOARD_LINK_TO_MECA_BOARD_2_BUFFER_LENGTH,
            &mechanical2BoardOutputStream,
            &mechanical2BoardInputStream,
            &mechanicalBoard2I2cBusConnection);

    // SERIAL

    // Uart Stream for motorBoard
    addUartDriverDataDispatcher(
        &motorSerialStreamLink,
        "MOTOR_BOARD_UART_DISPATCHER",
        SERIAL_PORT_MOTOR);

    // Uart Stream for mechanicalBoard
    addUartDriverDataDispatcher(
        &mechanicalBoard2SerialStreamLink,
        "MECA2_UART_DISPATCHER",
        SERIAL_PORT_MECA2);

    /*
    // Stream for Air Conditioning
    addI2CDriverDataDispatcher(
            "AIR_CONDITIONING_DISPATCHER",
            &airConditioningBoardInputBuffer,
            &airConditioningBoardInputBufferArray,
            MAIN_BOARD_LINK_TO_AIR_CONDITIONING_BOARD_BUFFER_LENGTH,
            &airConditioningBoardOutputStream,
            &airConditioningBoardInputStream,
            &i2cBusConnection);
    */
}
void mainBoardCommonMeca1AddDispatcher(void) {
    // Uart Stream for mechanicalBoard 1
    addUartDriverDataDispatcher(
        &meca1SerialStreamLink,
        "MECA_1_UART_DISPATCHER",
        MAIN_BOARD_SERIAL_PORT_MECA_1);
}