/**@brief Handler for SPI0 master events. * * @param[in] event SPI master event. */ void spi_master_0_event_handler(nrf_drv_spi_evt_type_t* event) { // uint32_t err_code = NRF_SUCCESS; // uint32_t c_buff; // Temporarily store the buffer index of the buffer ready to be compressed switch (*event) { // Transfer complete; store in buffer. case NRF_DRV_SPI_EVENT_DONE: nrf_drv_spi_uninit(&m_spi_master_0); if (buffer_in(&db, &m_rx_data_spi[0]) == BUFFER_FULL) { if (buffer_compress(db.buffer, db.item_cnt, transmission_buffer) != BUFFER_SUCCESS) { // buffer_reset(&db); printf("Error compressing data!\n"); } intan_convert_channel++; intan_convert_channel = intan_convert_channel % 32; } m_transfer_completed = true; break; default: // No implementation needed. break; } }
END_TEST START_TEST(compress_success) { const unsigned char expected_dest[] = { 0x78, 0x9c, 0x33, 0x34, 0x32, 0x36, 0x31, 0x35, 0x33, 0xb7, 0xb0, 0x34, 0x00, 0x00, 0x0b, 0x2c, 0x02, 0x0e }; fail_unless(buffer_append(source, "1234567890", 10) == 0); fail_unless(buffer_compress(source, dest) == 0); fail_unless(buffer_get_size(dest) == 18); fail_unless(memcmp(buffer_get_data(dest), expected_dest, 8) == 0); }
static void packet_send1(void) { u_char buf[8], *cp; int i, padding, len; u_int checksum; u_int32_t rnd = 0; /* * If using packet compression, compress the payload of the outgoing * packet. */ if (packet_compression) { buffer_clear(&compression_buffer); /* Skip padding. */ buffer_consume(&outgoing_packet, 8); /* padding */ buffer_append(&compression_buffer, "\0\0\0\0\0\0\0\0", 8); buffer_compress(&outgoing_packet, &compression_buffer); buffer_clear(&outgoing_packet); buffer_append(&outgoing_packet, buffer_ptr(&compression_buffer), buffer_len(&compression_buffer)); } /* Compute packet length without padding (add checksum, remove padding). */ len = buffer_len(&outgoing_packet) + 4 - 8; /* Insert padding. Initialized to zero in packet_start1() */ padding = 8 - len % 8; if (!send_context.plaintext) { cp = buffer_ptr(&outgoing_packet); for (i = 0; i < padding; i++) { if (i % 4 == 0) rnd = arc4random(); cp[7 - i] = rnd & 0xff; rnd >>= 8; } }
END_TEST START_TEST(compress_null_dest) { fail_unless(buffer_compress(source, NULL) == -1); }