#include "worker.h" #define ARRAY_SIZE(array) sizeof(array)/sizeof(array[0]) static inline void WORK_printArray (uint8_t* array, size_t size) { for (size_t s = 0; s < size; s++) { printf("%d, ", array[s]); } } void WORK_formattedPrintArray(const char* str, uint8_t* array, size_t size) { printf("WORKX: %s (%d bytes):", str, (int)size); for (size_t s = 0; s < size; s++) { printf("%d, ", array[s]); } printf("\n"); } // printf("FILL:");for (int i = 0; i < 50; i++) {printf("%d:", worker->byteBuffer[i]);} printf("\n"); // Параметрический вывод пакета worker int WORK_printBlocks(workerHost_s *worker, uint8_t mode) { if (worker == NULL) { return -1; } if (mode > 0) { printf("TOOL: Packet consists of several units:\n"); } // Вывод содержимого пакета if (mode & 1) { printf("TOOL: .. Packet:\n"); printf("TOOL: .... Address: %d \n", worker->packet->address); // printf("TOOL: .... Flag: %d \n", worker->packet->flag); printf("TOOL: .... Conrol Field: %d \n", worker->packet->control); printf("TOOL: .... Info Field: "); WORK_printArray(worker->packet->info, ARRAY_SIZE(worker->packet->info)); printf("\n"); printf("TOOL: .... FCS: %d \n", worker->packet->fcs); } // Вывод содержимого буфера fifo if (mode & 3) { size_t size = sizeof(worker->fifoWrite->data) / sizeof(worker->fifoWrite->data[0]); printf("TOOL: .. FIFO:\n"); printf("TOOL: .... Data (%d items): ", (int)size); for (size_t i = 0; i < size; i++) { printf("%02X ", worker->fifoWrite->data[i]); } printf("\n"); printf("TOOL: .. Pointer: %d ", worker->fifoWrite->head); } return 0; } // Тестовое заполнение буфера int WORK_testFill(uint8_t* buffer, size_t bufferSize) { bufferSize++; static uint8_t testbuffer[50] = { 0xaa,0xbb, HDLC_PACKET_FLAG, 0xa1, 0xa2, 0xc1, 0xc2, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, HDLC_PACKET_ESCAPE, HDLC_PACKET_FLAG, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xde, 0xcc, 0xcd, HDLC_PACKET_FLAG }; for (int i = 0; i < 50; i++) { buffer[i] = testbuffer[i]; } return 0; } // Тестирование фифо int WORK_testFifo(fifo_s *fifo) { printf("TEST: FIFO START:\n"); FIFO_put(fifo, 4); FIFO_put(fifo, 3); FIFO_put(fifo, 8); FIFO_print(fifo); uint8_t arr[10] = {0}; for (int a = 0; a < 10; a++) { FIFO_get(fifo, &arr[a]); printf("%d:", arr[a]); } printf("\n"); printf("TEST: FIFO END:\n"); return 0; } // Заполнение массива int WORK_fillBuffer8b(uint8_t *buffer, size_t size) { memset(buffer, 0, size); for (size_t i = 0; i < size; i++) { buffer[i] = i; } buffer[size/2] = HDLC_PACKET_FLAG; return 0; }