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(); }
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(); }
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(); }