minor state improvements

This commit is contained in:
Pawel Spychalski
2018-05-17 11:24:14 +02:00
parent 16a90adbc0
commit e915f30f1f
5 changed files with 25 additions and 40 deletions

View File

@@ -1,6 +1,18 @@
#include "radio_node.h"
#include "lora.h"
uint32_t getFrequencyForChannel(uint8_t channel) {
return RADIO_FREQUENCY_MIN + (RADIO_CHANNEL_WIDTH * channel);
}
uint8_t getNextChannel(uint8_t channel) {
return (channel + RADIO_HOP_OFFSET) % RADIO_CHANNEL_COUNT;
}
uint8_t getPrevChannel(uint8_t channel) {
return (RADIO_CHANNEL_COUNT + channel - RADIO_HOP_OFFSET) % RADIO_CHANNEL_COUNT;
}
RadioNode::RadioNode(void) {
}
@@ -50,18 +62,6 @@ uint32_t RadioNode::getChannelEntryMillis(void) {
return _channelEntryMillis;
}
uint32_t RadioNode::getFrequencyForChannel(uint8_t channel) {
return RADIO_FREQUENCY_MIN + (RADIO_CHANNEL_WIDTH * channel);
}
uint8_t RadioNode::getNextChannel(uint8_t channel) {
return (channel + RADIO_HOP_OFFSET) % RADIO_CHANNEL_COUNT;
}
uint8_t RadioNode::getPrevChannel(uint8_t channel) {
return (RADIO_CHANNEL_COUNT + channel - RADIO_HOP_OFFSET) % RADIO_CHANNEL_COUNT;
}
void RadioNode::readAndDecode(
QspConfiguration_t *qsp,
RxDeviceState_t *rxDeviceState,
@@ -91,15 +91,15 @@ void RadioNode::hopFrequency(bool forward, uint8_t fromChannel, uint32_t timesta
_channelEntryMillis = timestamp;
if (forward) {
_channel = RadioNode::getNextChannel(fromChannel);
_channel = getNextChannel(fromChannel);
} else {
_channel = RadioNode::getPrevChannel(fromChannel);
_channel = getPrevChannel(fromChannel);
}
// And set hardware
LoRa.sleep();
LoRa.setFrequency(
RadioNode::getFrequencyForChannel(_channel)
getFrequencyForChannel(_channel)
);
LoRa.idle();
}
@@ -142,6 +142,11 @@ void RadioNode::handleTxDoneState(bool hop) {
}
void RadioNode::handleTx(QspConfiguration_t *qsp) {
if (!canTransmit) {
return;
}
uint8_t size;
uint8_t tmpBuffer[MAX_PACKET_SIZE];