Exemplo n.º 1
0
int main(void)
{
	int i, len, n;
	const int num_tests = 500000;

	printf("Encode test #1:\n");
	len = sizeof(enc_test_1);
	n = encode_4b6b(enc_test_1, result, len);
	print_bytes(result, n);

	printf("Encode test #2:\n");
	len = sizeof(enc_test_2);
	n = encode_4b6b(enc_test_2, result, len);
	print_bytes(result, n);

	printf("Decode test #1:\n");
	len = sizeof(dec_test_1);
	n = decode_4b6b(dec_test_1, result, len);
	if (n >= 0) {
		print_bytes(result, n);
	} else {
		printf("Decoding error!\n");
		return 1;
	}

	printf("Decode test #2:\n");
	len = sizeof(dec_test_2);
	n = decode_4b6b(dec_test_2, result, len);
	if (n >= 0) {
		print_bytes(result, n);
	} else {
		printf("Decoding error!\n");
		return 1;
	}

	printf("Inverse test:\n");
	for (i = 0; i < num_tests; ++i) {
		randomly_fill(test, 128);
		n = encode_4b6b(test, tmp, 128);
		len = decode_4b6b(tmp, result, n);
		if (len != 128) {
			printf("Decoding error!\n");
			return 1;
		}
		if (memcmp(result, test, 128) != 0) {
			printf("Decoded to wrong value!\n");
			return 1;
		}
	}

	return 0;
}
Exemplo n.º 2
0
void sendMedtronicMessage (uint8_t const * const message, size_t const length, uint8_t const repeat_count ) {
  encode_4b6b(message, length, rfMessage, &rfLength);
  PKTLEN = rfLength;

  stopTimerInt ();

  RFST = RFST_SIDLE;
	{
	  size_t j=0;
	  for (; j<repeat_count; j++) {
		RFST = RFST_STX;
		{
			size_t i=0;
			for(; i<rfLength; i++) {
			  while (!RFTXRXIF);
			  TCON &= 0xFD;
			  RFD = rfMessage[i];
			}
		}
		delay( 4096 );
	  }
	}
  PKTLEN = 0xFF;
  RFST = RFST_SIDLE;
  RFST = RFST_SRX;

  enableTimerInt ();
}
Exemplo n.º 3
0
Arquivo: debug.c Projeto: ecc1/cc1111
void send_packet(uint8_t *buf, size_t len)
{
	int n;

	buf[len - 1] = crc8(buf, len - 1);
	print_time();
#if VERBOSE
	printf("Transmitting packet:\n");
#else
	printf("> ");
#endif
	print_bytes(buf, len);
	n = encode_4b6b(buf, packet, len);
#if VERBOSE
	printf("4b/6b encoding:\n");
	print_bytes(packet, n);
#endif
	radio_transmit(packet, n);
}