Exemple #1
0
void wan_init()
{
	wan_usart_init();
	//wan_usart_get_device_address();

	wan_driver_init();
}
Exemple #2
0
int main()
{
	// Init Events...
	sei();

	// set portD bit 5 (flow control) as output
	DDRD |= _BV(PD5);

	// Initial setup
	init_state_machine();
	btle_usart_init();
	wan_usart_init();
	// Open flow control
	PORTD &= ~_BV(PD5);

	// BGAPI commands
	// Can be found in bluetooth smart software reference PDF on pg. 101, 102, and 111. respectively
	uint8_t discoverCmd[] = {0x00, 0x01, 0x06, 0x02, 0x01};
	uint8_t endDiscoverCmd[] = {0x00, 0x00, 0x06, 0x04};
	uint8_t discoverParams[] = {0x00, 0x05, 0x06, 0x07, 0x40, 0x00, 0x32, 0x00, 0x00};

	// BGAPI initialization commands
	btle_usart_clear_buffer();
	btle_usart_transmit_bytes(endDiscoverCmd, 4);
	_delay_ms(100);
	btle_usart_transmit_bytes(discoverParams, 9);
	_delay_ms(100);
	btle_usart_transmit_bytes(discoverCmd, 5);

	char c[PRINT_BUFFER_SIZE];
	while(true)
	{
		if (state == 5) {
			// Close flow control
			PORTD |= _BV(PD5);

			PACKAGE *pkg = parse(msg);

			get_address_string(pkg, c);
			wan_usart_transmit_string("Address: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n");

			get_data_length_string(pkg, c);
			wan_usart_transmit_string("Data Length: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n");

			get_data_string(pkg, c);
			wan_usart_transmit_string("Data: ");
			wan_usart_transmit_string(c);
			wan_usart_transmit_string("\r\n\n");

			//To transmit raw hex data of entire message... uncomment
			//wan_usart_transmit_bytes(msg, msgIndex);

			msgIndex = 0;
			state = 0;
			free(pkg);

			//Open flow control
			PORTD &= ~_BV(PD5);
		}
	}
	return 0;
}