void ntNodeGetVersionStrTest() { std::cout << "ntNodeGetVersionStrTest\t"; NtRingBuf buffer = NtRingBuf(); NtNode ntNode = NtNode(NTBUS_ID_IMU1, "test", &buffer); buffer.push(NTBUS_STX | NTBUS_TRIGGER); buffer.push(NTBUS_STX | NTBUS_CMD | NTBUS_ID_IMU1); buffer.push(NTBUS_CMD_GETVERSIONSTR); uint8_t recv; while (ntNode.processBusData(&recv) >= 0); assert(!(UCSR0B & (1<<TXEN0))); assert(ntNode.getBusState() == NtNode::IDLE); const uint8_t reference[NTBUS_CMDGETVERSIONSTR_DATALEN] = STORM32NTBUS_VERSIONSTR; assert(memcmp(reference, usart0buf, NTBUS_CMDGETVERSIONSTR_DATALEN) == 0); usart0_reset(); std::cout << "[PASS]" << std::endl; }
void ntNodeGetBoardStrTest() { std::cout << "ntNodeGetBoardStrTest\t"; const char boardName[] = "test board"; char boardNameBuf[NTBUS_CMDGETBOARDSTR_DATALEN]; memset(boardNameBuf, 0, sizeof(boardNameBuf)); memcpy(boardNameBuf, boardName, sizeof(boardName)); NtRingBuf buffer = NtRingBuf(); NtNode ntNode = NtNode(NTBUS_ID_IMU1, boardNameBuf, &buffer); buffer.push(NTBUS_STX | NTBUS_TRIGGER); buffer.push(NTBUS_STX | NTBUS_CMD | NTBUS_ID_IMU1); buffer.push(NTBUS_CMD_GETBOARDSTR); uint8_t recv; while (ntNode.processBusData(&recv) >= 0); assert(!(UCSR0B & (1<<TXEN0))); assert(ntNode.getBusState() == NtNode::IDLE); tNTBusCmdGetBoardStrData referenceFrame; memset(&referenceFrame, 0, NTBUS_CMDGETBOARDSTR_DATALEN); memcpy(&referenceFrame, boardName, sizeof(boardName)); uint8_t reference[NTBUS_CMDGETBOARDSTR_DATALEN+1]; memcpy(reference, &referenceFrame, NTBUS_CMDGETBOARDSTR_DATALEN); reference[NTBUS_CMDGETBOARDSTR_DATALEN] = ntcrc((uint8_t*) &referenceFrame, NTBUS_CMDGETBOARDSTR_DATALEN); assert(memcmp(reference, usart0buf, sizeof(reference)) == 0); usart0_reset(); std::cout << "[PASS]" << std::endl; }
static void usart0_shutdown(struct uart_dev_s *dev) { /* Reset, disable interrupts, and disable Rx and Tx */ usart0_reset(); }