void odp_uds_printdata_Buffer(UBaseType_t msgType, void *data, printChar_cbf printchar) { extern QueueHandle_t inputQueue; ODPBuffer **doublePtr; ODPBuffer *myUDSBuffer; doublePtr = data; myUDSBuffer = *doublePtr; int i; for (i = 0; i < myUDSBuffer->len; i++) { printser_uint8ToHex(myUDSBuffer->data[i]); if ((i % 8) == 0 && i > 0 && i < myUDSBuffer->len - 1) { printLF(); } } if (!((i % 8) == 0 && i > 0 && i < myUDSBuffer->len - 1)) { printLF(); } printEOT(); /* clear the buffer */ myUDSBuffer->len = 0; /* release the input queue */ if (pdPASS != sendMsg(MSG_SERIAL_RELEASE, inputQueue, NULL)) { DEBUGPRINT("FATAL ERROR: input queue is full!\n", "a"); } }
void odp_canraw_printParam(UBaseType_t msgType, void *data, printChar_cbf printchar) { param_data *args = data; extern bus_paramPrint actBus_paramPrint; if (args->args[ARG_CMD] == PARAM_INFO && args->args[ARG_VALUE_1] == VALUE_PARAM_INFO_VERSION) { printser_string("0 - Raw CAN"); printLF(); printEOT(); } else { createCommandResultMsg(FBID_PROTOCOL_GENERIC, FBID_PROTOCOL_GENERIC, 0, ERR_CODE_OS_UNKNOWN_COMMAND_TEXT); } }
/*-----------------------------------------------------------*/ void bus_param_can_generic_Print(UBaseType_t msgType, void *data, printChar_cbf printchar) { param_data *args = data; uint8_t FiltCntr; DEBUGPRINT("can Parameter receiced %ld-%ld\n", args->args[ARG_RECV], args->args[ARG_CMD]); if (args->args[ARG_CMD] == PARAM_INFO) { CAN_GetCanConfig(canConfig); switch (args->args[ARG_VALUE_1]) { case VALUE_PARAM_INFO_VERSION: printser_string("CAN Bus"); printLF(); printEOT(); break; case VALUE_PARAM_INFO_BUS_MODE: switch (canConfig->mode) { case VALUE_BUS_MODE_SILENT: printser_string("0 - CAN Transceiver in 'Silent Mode'"); printLF(); break; case VALUE_BUS_MODE_LOOP_BACK: printser_string("1 - CAN Transceiver in 'Loop Back Mode'"); printLF(); break; case VALUE_BUS_MODE_LOOP_BACK_WITH_SILENT: printser_string ("2 - CAN Transceiver in 'Loop Back combined with Silent Mode'"); printLF(); break; case VALUE_BUS_MODE_NORMAL: printser_string("3 - CAN Transceiver in 'Normal Mode'"); printLF(); break; } switch (canConfig->state) { case STATE_REQUEST_CAN_ERROR_ACTIVE: printser_string("0 - Bus Active"); printLF(); break; case STATE_REQUEST_CAN_ERROR_WARNING: printser_string("1 - Bus Active, a few errors"); printLF(); break; case STATE_REQUEST_CAN_ERROR_PASSIVE: printser_string("2 - Bus Passive, many errors"); printLF(); break; case STATE_REQUEST_CAN_BUS_OFF: printser_string("3 - Bus Off, too many errors"); printLF(); break; case STATE_REQUEST_CAN_STOPPED: printser_string("4 - Bus offline"); printLF(); break; case STATE_REQUEST_CAN_SLEEPING: printser_string("5 - Bus sleeping"); printLF(); break; case STATE_REQUEST_CAN_UNKNOWN: printser_string("6 - no feedback from device"); printLF(); break; } printEOT(); break; case VALUE_PARAM_INFO_BUS_CONFIG: switch (canConfig->busConfig) { case VALUE_BUS_CONFIG_11bit_125kbit: printser_string("1 = ISO 15765-4, CAN 11bit ID/125kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_11bit_250kbit: printser_string("2 = ISO 15765-4, CAN 11bit ID/250kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_11bit_500kbit: printser_string("3 = ISO 15765-4, CAN 11bit ID/500kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_11bit_1000kbit: printser_string("4 - ISO 15765-4, CAN 11bit ID/1000kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_29bit_125kbit: printser_string("5 - ISO 15765-4, CAN 29bit ID/125kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_29bit_250kbit: printser_string("6 - ISO 15765-4, CAN 29bit ID/250kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_29bit_500kbit: printser_string("7 - ISO 15765-4, CAN 29bit ID/500kBaud"); printLF(); printEOT(); break; case VALUE_BUS_CONFIG_29bit_1000kbit: printser_string("8 - ISO 15765-4, CAN 29bit ID/1000kBaud"); printLF(); printEOT(); break; } break; case VALUE_PARAM_INFO_BUS_ERROR: if (VALUE_PARAM_INFO_BUS_ERROR_READ == args->args[ARG_VALUE_2]) { printser_int(bus_rx_count_can(), 10); printser_string(" "); printser_int(bus_rx_error_can(), 10); printser_string(" "); printser_int(bus_rec_can(), 10); printser_string(" "); printser_int(bus_tx_count_can(), 10); printser_string(" "); printser_int(bus_tx_error_can(), 10); printser_string(" "); printser_int(bus_rec_can(), 10); printser_string(" "); printser_int(bus_tec_can(), 10); printser_string(" "); printser_int(bus_busoff_error_can(), 10); printser_string(" "); printser_int(bus_warning_error_can(), 10); printser_string(" "); printser_int(bus_passive_error_can(), 10); } else if (VALUE_PARAM_INFO_BUS_ERROR_DEL == args->args[ARG_VALUE_2]) { /* delete counters if parameter is requested with option "1" */ bus_clear_rx_error_can(); bus_clear_tx_error_can(); bus_clear_rx_count_can(); bus_clear_tx_count_can(); } else printser_string("Missing parameter!"); printLF(); printEOT(); break; case VALUE_PARAM_INFO_Can11FilterID: for (FiltCntr = 0; FiltCntr < MAXCANFILTER; FiltCntr++) { printser_string("0x"); printser_int(CAN_GetFilterReg16(FiltCntr, 1, 0), 16); printser_string(" 0x"); printser_int(CAN_GetFilterReg16(FiltCntr, 1, 1), 16); printser_string(" 0x"); printser_int(CAN_GetFilterReg16(FiltCntr, 2, 0), 16); printser_string(" 0x"); printser_int(CAN_GetFilterReg16(FiltCntr, 2, 1), 16); printLF(); } printLF(); printEOT(); break; case VALUE_PARAM_INFO_Can29FilterID: for (FiltCntr = 0; FiltCntr < MAXCANFILTER; FiltCntr++) { printser_string("0x"); printser_int(CAN_GetFilterReg32(FiltCntr, 1), 16); printser_string(" 0x"); printser_int(CAN_GetFilterReg32(FiltCntr, 2), 16); printLF(); } printLF(); printEOT(); break; default: evalResult(FBID_BUS_GENERIC, ERR_CODE_OS_UNKNOWN_COMMAND, 0, ERR_CODE_OS_UNKNOWN_COMMAND_TEXT); break; } } else { evalResult(FBID_BUS_GENERIC, ERR_CODE_OS_UNKNOWN_COMMAND, 0, ERR_CODE_OS_UNKNOWN_COMMAND_TEXT); } }