Updated ports to the new numbers for the actual board, added FreqSync Warning light
This commit is contained in:
@ -1,17 +1,15 @@
|
||||
#include <FT817_NBS.h>
|
||||
|
||||
FT817_NBS::FT817_NBS(SoftwareSerial *connection){
|
||||
serial = connection;
|
||||
}
|
||||
FT817_NBS::FT817_NBS(SoftwareSerial *connection) { serial = connection; }
|
||||
|
||||
unsigned long FT817_NBS::bcdToInt(uint8_t bcd){
|
||||
unsigned long FT817_NBS::bcdToInt(uint8_t bcd) {
|
||||
int byte = (bcd & 0xF0) >> 4;
|
||||
byte *= 10;
|
||||
byte += bcd & 0x0F;
|
||||
return byte;
|
||||
}
|
||||
|
||||
uint8_t FT817_NBS::intToBcd(unsigned long value){
|
||||
uint8_t FT817_NBS::intToBcd(unsigned long value) {
|
||||
unsigned long tens = value / 10;
|
||||
value -= tens * 10;
|
||||
unsigned long singles = value;
|
||||
@ -20,7 +18,7 @@ uint8_t FT817_NBS::intToBcd(unsigned long value){
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
unsigned long FT817_NBS::getDevicer(int step){
|
||||
unsigned long FT817_NBS::getDevicer(int step) {
|
||||
switch (step) {
|
||||
case 0:
|
||||
return 1000000;
|
||||
@ -35,49 +33,50 @@ unsigned long FT817_NBS::getDevicer(int step){
|
||||
return 1;
|
||||
break;
|
||||
default:
|
||||
//Serial.println("SHIT"); //CAN'T HAPPEN
|
||||
// Serial.println("SHIT"); //CAN'T HAPPEN
|
||||
return 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
FT817_NBS::SignalMode FT817_NBS::getSignalMode(uint8_t numericValue){
|
||||
switch (numericValue){
|
||||
case 0x0:
|
||||
return FT817_NBS::SignalMode::LSB;
|
||||
break;
|
||||
case 0x01:
|
||||
return FT817_NBS::SignalMode::USB;
|
||||
break;
|
||||
case 0x02:
|
||||
return FT817_NBS::SignalMode::CW;
|
||||
break;
|
||||
case 0x03:
|
||||
return FT817_NBS::SignalMode::CWR;
|
||||
break;
|
||||
case 0x4:
|
||||
return FT817_NBS::SignalMode::AM;
|
||||
break;
|
||||
case 0x6:
|
||||
return FT817_NBS::SignalMode::WFM;
|
||||
break;
|
||||
case 0x8:
|
||||
return FT817_NBS::SignalMode::FM;
|
||||
break;
|
||||
case 0xA:
|
||||
return FT817_NBS::SignalMode::DIG;
|
||||
break;
|
||||
case 0xC:
|
||||
return FT817_NBS::SignalMode::PKT;
|
||||
break;
|
||||
default:
|
||||
return FT817_NBS::SignalMode::UNKNOWN;
|
||||
break;
|
||||
FT817_NBS::SignalMode FT817_NBS::getSignalMode(uint8_t numericValue) {
|
||||
switch (numericValue) {
|
||||
case 0x0:
|
||||
return FT817_NBS::SignalMode::LSB;
|
||||
break;
|
||||
case 0x01:
|
||||
return FT817_NBS::SignalMode::USB;
|
||||
break;
|
||||
case 0x02:
|
||||
return FT817_NBS::SignalMode::CW;
|
||||
break;
|
||||
case 0x03:
|
||||
return FT817_NBS::SignalMode::CWR;
|
||||
break;
|
||||
case 0x4:
|
||||
return FT817_NBS::SignalMode::AM;
|
||||
break;
|
||||
case 0x6:
|
||||
return FT817_NBS::SignalMode::WFM;
|
||||
break;
|
||||
case 0x8:
|
||||
return FT817_NBS::SignalMode::FM;
|
||||
break;
|
||||
case 0xA:
|
||||
return FT817_NBS::SignalMode::DIG;
|
||||
break;
|
||||
case 0xC:
|
||||
return FT817_NBS::SignalMode::PKT;
|
||||
break;
|
||||
default:
|
||||
return FT817_NBS::SignalMode::UNKNOWN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void FT817_NBS::convertFromValueToBcd(uint8_t *buffer, unsigned long actualValue){
|
||||
for(int partsLeft = 0;partsLeft < 4; partsLeft++){
|
||||
void FT817_NBS::convertFromValueToBcd(uint8_t *buffer,
|
||||
unsigned long actualValue) {
|
||||
for (int partsLeft = 0; partsLeft < 4; partsLeft++) {
|
||||
unsigned long part = actualValue / getDevicer(partsLeft);
|
||||
actualValue -= part * getDevicer(partsLeft);
|
||||
uint8_t bcd = intToBcd(part);
|
||||
@ -85,9 +84,9 @@ void FT817_NBS::convertFromValueToBcd(uint8_t *buffer, unsigned long actualValue
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long FT817_NBS::convertFromBcdToValue(uint8_t *buffer){
|
||||
unsigned long FT817_NBS::convertFromBcdToValue(uint8_t *buffer) {
|
||||
unsigned long actualValue = 0;
|
||||
for(int partsleft = 0; partsleft < 4; partsleft++){
|
||||
for (int partsleft = 0; partsleft < 4; partsleft++) {
|
||||
unsigned long multiplier = getDevicer(partsleft);
|
||||
unsigned long partValue = bcdToInt(buffer[partsleft]);
|
||||
actualValue += (partValue * multiplier);
|
||||
@ -95,34 +94,34 @@ unsigned long FT817_NBS::convertFromBcdToValue(uint8_t *buffer){
|
||||
return actualValue;
|
||||
}
|
||||
|
||||
void FT817_NBS::clearAvailableBytes(){
|
||||
if(serial->available() != 0){ //Emptying ft817.available()
|
||||
void FT817_NBS::clearAvailableBytes() {
|
||||
if (serial->available() != 0) { // Emptying ft817.available()
|
||||
uint8_t throwAwayBuffer[serial->available()];
|
||||
serial->readBytes(&throwAwayBuffer[0], serial->available());
|
||||
}
|
||||
}
|
||||
|
||||
void FT817_NBS::sendCommand(uint8_t *bytes, size_t len){
|
||||
for (unsigned int i = 0; i < len; i++){
|
||||
void FT817_NBS::sendCommand(uint8_t *bytes, size_t len) {
|
||||
for (unsigned int i = 0; i < len; i++) {
|
||||
serial->write(bytes[i]);
|
||||
//Serial.print(String(bytes[i], HEX));
|
||||
// Serial.print(String(bytes[i], HEX));
|
||||
delay(1);
|
||||
}
|
||||
}
|
||||
|
||||
void FT817_NBS::toggleAB(){
|
||||
void FT817_NBS::toggleAB() {
|
||||
clearAvailableBytes();
|
||||
uint8_t data[] = {0x0,0x0,0x0,0x0,0x81};
|
||||
uint8_t data[] = {0x0, 0x0, 0x0, 0x0, 0x81};
|
||||
sendCommand(&data[0], sizeof(data));
|
||||
}
|
||||
|
||||
FT817_NBS::Frequency FT817_NBS::getFrequency(){
|
||||
FT817_NBS::Frequency FT817_NBS::getFrequency() {
|
||||
clearAvailableBytes();
|
||||
uint8_t data[] = {0x0,0x0,0x0,0x0,0x3};
|
||||
uint8_t data[] = {0x0, 0x0, 0x0, 0x0, 0x3};
|
||||
sendCommand(&data[0], sizeof(data));
|
||||
|
||||
delay(10);
|
||||
|
||||
|
||||
uint8_t buffer[5];
|
||||
serial->readBytes(&buffer[0], sizeof(buffer));
|
||||
FT817_NBS::Frequency frequency;
|
||||
@ -131,7 +130,7 @@ FT817_NBS::Frequency FT817_NBS::getFrequency(){
|
||||
return frequency;
|
||||
}
|
||||
|
||||
void FT817_NBS::setFrequency(unsigned long frequency){
|
||||
void FT817_NBS::setFrequency(unsigned long frequency) {
|
||||
clearAvailableBytes();
|
||||
uint8_t data[5];
|
||||
convertFromValueToBcd(&data[0], frequency);
|
||||
@ -139,21 +138,20 @@ void FT817_NBS::setFrequency(unsigned long frequency){
|
||||
sendCommand(&data[0], sizeof(data));
|
||||
}
|
||||
|
||||
void FT817_NBS::setMode(FT817_NBS::SignalMode mode){
|
||||
if(mode == SignalMode::UNKNOWN || mode == SignalMode::WFM){
|
||||
void FT817_NBS::setMode(FT817_NBS::SignalMode mode) {
|
||||
if (mode == SignalMode::UNKNOWN || mode == SignalMode::WFM) {
|
||||
return;
|
||||
}
|
||||
uint8_t value = (uint8_t) mode;
|
||||
uint8_t value = (uint8_t)mode;
|
||||
uint8_t data[5] = {value, 0x0, 0x0, 0x0, 0x7};
|
||||
sendCommand(&data[0], sizeof(data));
|
||||
}
|
||||
|
||||
void FT817_NBS::setSplit(bool on){
|
||||
void FT817_NBS::setSplit(bool on) {
|
||||
uint8_t data[5] = {0x0, 0x0, 0x0, 0x0};
|
||||
if(on){
|
||||
if (on) {
|
||||
data[4] = 0x2;
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
data[4] = 0x82;
|
||||
}
|
||||
sendCommand(&data[0], sizeof(data));
|
||||
|
@ -6,7 +6,18 @@
|
||||
|
||||
class FT817_NBS {
|
||||
public:
|
||||
enum SignalMode {LSB = 0x0, USB = 0x1, CW = 0x2, CWR = 0x3, AM = 0x4, WFM = 0x6, FM = 0x8, DIG = 0xA, PKT = 0xC, UNKNOWN};
|
||||
enum SignalMode {
|
||||
LSB = 0x0,
|
||||
USB = 0x1,
|
||||
CW = 0x2,
|
||||
CWR = 0x3,
|
||||
AM = 0x4,
|
||||
WFM = 0x6,
|
||||
FM = 0x8,
|
||||
DIG = 0xA,
|
||||
PKT = 0xC,
|
||||
UNKNOWN
|
||||
};
|
||||
|
||||
private:
|
||||
SoftwareSerial *serial;
|
||||
@ -26,7 +37,7 @@ public:
|
||||
unsigned long frequency;
|
||||
FT817_NBS::SignalMode mode;
|
||||
};
|
||||
|
||||
|
||||
FT817_NBS::Frequency getFrequency();
|
||||
void setFrequency(unsigned long frequency);
|
||||
void toggleAB();
|
||||
|
Reference in New Issue
Block a user