Пример #1
0
inline void RadioTask::_initialiseReceiveState() {
	debug::log("RadioTask: Starting to receive on channel " + String(_bestChannel));

	_enterAtMode();
	RADIO_SERIAL.println("ATZD3");  // output format <payload>|<rssi>
	RADIO_SERIAL.println("ATPK3A"); // 58byte packet length
	RADIO_SERIAL.println("ATCN" + _intToHex(_bestChannel)); // Channel
	RADIO_SERIAL.println("ATAC");   // apply
	RADIO_SERIAL.flush();
	_leaveAtMode();

	_radioState = RADIO_STATE_RECEIVE;

	_clearSerialBuffer();
}
Пример #2
0
inline void RadioTask::_initialiseDiscoveryState() {
	debug::log("RadioTask: Starting discovery state");
	_bestRssi = 255;
	_bestChannel = NO_CHANNEL_DISCOVERED;
	_radioState = RADIO_STATE_DISCOVERY;
	_discoveryFinishingTime = xTaskGetTickCount() + RADIO_DISCOVERY_TIME;

	_enterAtMode();
	RADIO_SERIAL.println("ATZD3");  // output format <payload>|<rssi>
	RADIO_SERIAL.println("ATPK08"); // 8byte packet length
	RADIO_SERIAL.println(String("ATCN") + String(RADIO_DISCOVERY_CHANNEL)); // Discovery Channel
	RADIO_SERIAL.println("ATAC");   // apply
	RADIO_SERIAL.flush();
	_leaveAtMode();

	_clearSerialBuffer();
}
Пример #3
0
inline void RadioReceiveTask::_initialiseReceiveState() {
	debug::log("RadioReceiveTask: Starting to receive on channel " + String(_bestChannel) + " with RSSI " + String(_bestRssi));

	_enterAtMode();
	RADIO_SERIAL.println("ATZD3");  // output format <payload>|<rssi>
	RADIO_SERIAL.println("ATPK3A"); // 58byte packet length
	RADIO_SERIAL.println("ATCN" + Utils::intToHex(_bestChannel)); // Channel
	RADIO_SERIAL.println("ATAC");   // apply
	RADIO_SERIAL.flush();
	_leaveAtMode();

	// This channel might be in transmit phase. Sleep it out.
	if (_bestChannelRemainingTransmitWindow > 0) {
		vTaskDelay(_bestChannelRemainingTransmitWindow);
		_lastMessageReceived = xTaskGetTickCount();
	}

	_radioState = RADIO_STATE_RECEIVE;

	_clearSerialBuffer();
}