Add logging and fix compilation errors
This commit is contained in:
parent
3112e90c89
commit
8110b023a1
|
|
@ -2,4 +2,10 @@ cmake_minimum_required (VERSION 2.6)
|
|||
|
||||
project (piScan_backend)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
||||
|
||||
add_executable(piScan_backend piScan_backend.cpp)
|
||||
target_link_libraries(piScan_backend pthread dl)
|
||||
|
||||
include_directories(core drivers external scan server sigproc)
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ void ScannerStateMachine::stopScanner(){
|
|||
END_TRANSITION_MAP(NULL)
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Load(){
|
||||
void ScannerStateMachine::ST_Load(EventData* data){
|
||||
//file read and system tree population
|
||||
|
||||
// do not issue event - SM will wait until an event is generated before proceeding
|
||||
|
|
@ -65,7 +65,7 @@ void ScannerStateMachine::ST_Load(){
|
|||
_centralQueue.giveMessage(message);
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Scan(){
|
||||
void ScannerStateMachine::ST_Scan(EventData* data){
|
||||
_enableAudioOut(false);
|
||||
|
||||
// incremental scan pattern
|
||||
|
|
@ -90,7 +90,7 @@ void ScannerStateMachine::ST_Scan(){
|
|||
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Hold(){
|
||||
void ScannerStateMachine::ST_Hold(EventData* data){
|
||||
_enableAudioOut(false);
|
||||
_broadcastEntryContext(_currentSystem, _currentEntry);
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ void ScannerStateMachine::ST_Hold(){
|
|||
}
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Receive(){
|
||||
void ScannerStateMachine::ST_Receive(EventData* data){
|
||||
_enableAudioOut(true);
|
||||
_broadcastEntryContext(_currentSystem, _currentEntry);
|
||||
|
||||
|
|
@ -111,16 +111,16 @@ void ScannerStateMachine::ST_Receive(){
|
|||
}
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Manual(){
|
||||
void ScannerStateMachine::ST_Manual(EventData* data){
|
||||
//TODO state for later implementation
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_SaveAll(){
|
||||
void ScannerStateMachine::ST_SaveAll(EventData* data){
|
||||
|
||||
InternalEvent(ST_STOPPED);
|
||||
}
|
||||
|
||||
void ScannerStateMachine::ST_Stopped(){
|
||||
void ScannerStateMachine::ST_Stopped(EventData* data){
|
||||
Message& message = new ControllerMessage(SCANNER_SM, ControllerMessage::NOTIFY_STOPPED);
|
||||
_centralQueue.giveMessage(message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,22 +24,22 @@ public:
|
|||
void stopScanner();
|
||||
void giveMessage(Message& message);
|
||||
private:
|
||||
void ST_Load();
|
||||
void ST_Scan();
|
||||
void ST_Hold();
|
||||
void ST_Receive();
|
||||
void ST_Manual();
|
||||
void ST_SaveAll();
|
||||
void ST_Stopped();
|
||||
void ST_Load(EventData* data);
|
||||
void ST_Scan(EventData* data);
|
||||
void ST_Hold(EventData* data);
|
||||
void ST_Receive(EventData* data);
|
||||
void ST_Manual(EventData* data);
|
||||
void ST_SaveAll(EventData* data);
|
||||
void ST_Stopped(EventData* data);
|
||||
|
||||
BEGIN_STATE_MAP
|
||||
STATE_MAP_ENTRY(ST_Load)
|
||||
STATE_MAP_ENTRY(ST_Scan)
|
||||
STATE_MAP_ENTRY(ST_Hold)
|
||||
STATE_MAP_ENTRY(ST_Receive)
|
||||
STATE_MAP_ENTRY(ST_Manual)
|
||||
STATE_MAP_ENTRY(ST_SaveAll)
|
||||
STATE_MAP_ENTRY(ST_Stopped)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Load)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Scan)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Hold)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Receive)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Manual)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_SaveAll)
|
||||
STATE_MAP_ENTRY(&ScannerStateMachine::ST_Stopped)
|
||||
END_STATE_MAP
|
||||
|
||||
enum States {
|
||||
|
|
@ -62,11 +62,11 @@ private:
|
|||
|
||||
struct EntryContext {
|
||||
States state;
|
||||
const RadioSystem& system;
|
||||
const Entry& entry;
|
||||
const RadioSystem* system;
|
||||
const Entry* entry;
|
||||
};
|
||||
|
||||
EntryContext _currentContext = {0, NULL, NULL};
|
||||
EntryContext _currentContext = {(States) 0, NULL, NULL};
|
||||
|
||||
void _broadcastSystemContext(RadioSystem& sys);
|
||||
void _broadcastEntryContext(RadioSystem& sys, Entry& entry);
|
||||
|
|
|
|||
|
|
@ -58,10 +58,10 @@ const StateStruct* GetStateMap() {\
|
|||
static const StateStruct StateMap[] = {
|
||||
|
||||
#define STATE_MAP_ENTRY(entry)\
|
||||
{ reinterpret_cast<StateFunc>(entry) },
|
||||
{ static_cast<StateFunc>/*(static_cast<void(*)(EventData*)>*/(entry)/*)*/ },
|
||||
|
||||
#define END_STATE_MAP \
|
||||
{ reinterpret_cast<StateFunc>(NULL) }\
|
||||
{ /*reinterpret_cast<StateFunc>*/(NULL) }\
|
||||
}; \
|
||||
return &StateMap[0]; }
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* constants.h
|
||||
*
|
||||
* Created on: Feb 24, 2019
|
||||
* Author: ezra
|
||||
*/
|
||||
|
||||
#ifndef CORE_CONSTANTS_H_
|
||||
#define CORE_CONSTANTS_H_
|
||||
|
||||
#ifndef NDEBUG
|
||||
#define LOG_PATH "log.txt"
|
||||
#define CONFIG_PATH "piscan.config"
|
||||
#else
|
||||
#define LOG_PATH "~/piscan.log"
|
||||
#define CONFIG_PATH "~/piscan.config"
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* CORE_CONSTANTS_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,10 +1,33 @@
|
|||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
#include "constants.h"
|
||||
#include "Demodulator.h"
|
||||
//#include "loguru.hpp"
|
||||
#include "loguru.cpp"
|
||||
#include "messages.h"
|
||||
#include "ServerManager.h"
|
||||
#include "ScannerStateMachine.h"
|
||||
#include "SystemList.h"
|
||||
|
||||
class MessageManager : public MessageReceiver {
|
||||
public:
|
||||
MessageManager();
|
||||
private:
|
||||
moodycamel::ConcurrentQueue<Message> _queue;
|
||||
|
||||
void giveMessage(Message& message){
|
||||
_queue.enqueue(message);
|
||||
}
|
||||
};
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
cout << "Hello world";
|
||||
//cout << "Hello world";
|
||||
|
||||
loguru::init(argc, argv);
|
||||
loguru::add_file(LOG_PATH, loguru::Truncate, loguru::Verbosity_MAX);
|
||||
loguru::g_stderr_verbosity = loguru::Verbosity_MAX;
|
||||
LOG_F(INFO, "PiScan started");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@
|
|||
|
||||
class Entry {
|
||||
public:
|
||||
virtual Entry(char* tag, bool lo, bool del);
|
||||
Entry(char* tag, bool lo, bool del);
|
||||
virtual ~Entry();
|
||||
|
||||
char* getTag() { return &tag[0]; }
|
||||
virtual char* getModulation() = 0;
|
||||
virtual char* getIdentity() = 0;
|
||||
bool isLockedOut() { return lockedOut; }
|
||||
void lockout(bool val) : lockedOut(val){}
|
||||
void lockout(bool val) { lockedOut = val; }
|
||||
virtual bool hasSignal() = 0;
|
||||
|
||||
protected:
|
||||
|
|
@ -34,7 +34,7 @@ protected:
|
|||
|
||||
class Channel: public Entry {
|
||||
public:
|
||||
virtual Channel(unsigned long freq, char* tag, bool lo, bool del) : frequency(freq){}
|
||||
Channel(unsigned long freq, char* tag, bool lo, bool del) : Entry(tag, lo, del), frequency(freq){}
|
||||
virtual ~Channel();
|
||||
protected:
|
||||
const unsigned long frequency;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#define RADIOSYSTEM_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string>
|
||||
|
||||
#include "Entry.h"
|
||||
|
||||
|
|
@ -18,7 +19,7 @@ typedef enum {
|
|||
|
||||
class RadioSystem {
|
||||
public:
|
||||
RadioSystem() = 0;
|
||||
RadioSystem();
|
||||
virtual ~RadioSystem();
|
||||
|
||||
virtual Entry& operator[](size_t pos) = 0;
|
||||
|
|
@ -26,7 +27,7 @@ public:
|
|||
size_t size() { return _size; }
|
||||
private:
|
||||
//const RadioSystemType type;
|
||||
const char tag[];
|
||||
const std::string tag;
|
||||
size_t _size = 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#ifndef SYSTEMLIST_H_
|
||||
#define SYSTEMLIST_H_
|
||||
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
#include "RadioSystem.h"
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ public:
|
|||
|
||||
size_t size(){ return _size; }
|
||||
private:
|
||||
RadioSystem& _systems[];
|
||||
std::vector<RadioSystem*> _systems;
|
||||
size_t _size = 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
/*
|
||||
* ServerDebugOutput.cpp
|
||||
*
|
||||
* Created on: Oct 21, 2018
|
||||
* Author: ezra
|
||||
*/
|
||||
|
||||
#include "DebugOutputServer.h"
|
||||
|
||||
DebugOutputServer::DebugOutputServer() {
|
||||
// TODO Auto-generated constructor stub
|
||||
|
||||
}
|
||||
|
||||
DebugOutputServer::~DebugOutputServer() {
|
||||
// TODO Auto-generated destructor stub
|
||||
}
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
/*
|
||||
* ServerDebugOutput.h
|
||||
*
|
||||
* Created on: Oct 21, 2018
|
||||
* Author: ezra
|
||||
*/
|
||||
|
||||
#ifndef SERVERDEBUGOUTPUT_H_
|
||||
#define SERVERDEBUGOUTPUT_H_
|
||||
|
||||
class DebugOutputServer {
|
||||
public:
|
||||
DebugOutputServer();
|
||||
virtual ~DebugOutputServer();
|
||||
};
|
||||
|
||||
#endif /* SERVERDEBUGOUTPUT_H_ */
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* ServerDebugOutput.cpp
|
||||
*
|
||||
* Created on: Oct 21, 2018
|
||||
* Author: ezra
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "DebugServer.h"
|
||||
|
||||
void DebugConsole::connect(){
|
||||
std::cout << "Console connected";
|
||||
}
|
||||
|
||||
void DebugConsole::disconnect(){
|
||||
|
||||
|
||||
std::cout << "Console disconnected";
|
||||
notifyDisconnected();
|
||||
}
|
||||
|
||||
void DebugConsole::giveMessage(Message& message){
|
||||
delete message;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void DebugServer::start(){
|
||||
_connection();
|
||||
_host.requestConnection(_connection);
|
||||
}
|
||||
|
||||
void DebugServer::stop(){
|
||||
|
||||
}
|
||||
|
||||
void DebugServer::giveMessage(Message& message){
|
||||
delete message;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* ServerDebugOutput.h
|
||||
*
|
||||
* Created on: Oct 21, 2018
|
||||
* Author: ezra
|
||||
*/
|
||||
|
||||
#ifndef SERVERDEBUGOUTPUT_H_
|
||||
#define SERVERDEBUGOUTPUT_H_
|
||||
|
||||
#include "BackendServer.h"
|
||||
#include "ServerManager.h"
|
||||
|
||||
class DebugConsole : public Connection {
|
||||
public:
|
||||
DebugConsole() : Connection(FULL_CONTROL, AUDIO_NONE) {}
|
||||
|
||||
void connect();
|
||||
void disconnect();
|
||||
void giveMessage(Message& message);
|
||||
};
|
||||
|
||||
class DebugServer : public BackendServer {
|
||||
public:
|
||||
DebugServer(ServerInterface& host) : _host(host) {}
|
||||
|
||||
void start();
|
||||
void stop();
|
||||
void giveMessage(Message& message);
|
||||
private:
|
||||
DebugConsole _connection;
|
||||
};
|
||||
|
||||
#endif /* SERVERDEBUGOUTPUT_H_ */
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
#define MAX_CONNECTIONS 5
|
||||
#define QUEUE_SIZE 64
|
||||
|
||||
ServerManager::ServerManager(MessageReceiver central) :
|
||||
ServerManager::ServerManager(MessageReceiver& central) :
|
||||
_centralQueue(central), _queue(QUEUE_SIZE), _activeConnections(0), _connections(
|
||||
MAX_CONNECTIONS) {
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ void ServerManager::allowConnections(){
|
|||
void ServerManager::disconnectClients(){
|
||||
//TODO might need locks for array
|
||||
for(int i = 0; i < MAX_CONNECTIONS; ++i){
|
||||
Connection::Connection con = _connections[i];
|
||||
Connection::Connection& con = _connections[i];
|
||||
if(con != NULL){
|
||||
con.disconnect();
|
||||
}
|
||||
|
|
@ -37,23 +37,23 @@ void ServerManager::disconnectClients(){
|
|||
void ServerManager::_queueThreadFunc(void){
|
||||
//todo break condition
|
||||
while(1){
|
||||
Message message;
|
||||
if(_queue.try_dequeue(&message)){
|
||||
Message& message;
|
||||
if(_queue.try_dequeue(message)){
|
||||
if(message.destination != SERVER_MAN){
|
||||
_centralQueue.giveMessage(message);
|
||||
}
|
||||
else{
|
||||
//todo
|
||||
_handleMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ServerManager::giveMessage(Message message){
|
||||
void ServerManager::giveMessage(Message& message){
|
||||
_queue.enqueue(message);
|
||||
}
|
||||
|
||||
ServerInterface::RequestResponse ServerManager::requestConnection(Connection::Connection client){
|
||||
ServerInterface::RequestResponse ServerManager::requestConnection(Connection& client){
|
||||
if(_activeConnections < MAX_CONNECTIONS){
|
||||
_addConnection(client);
|
||||
return RQ_ACCEPTED;
|
||||
|
|
@ -64,7 +64,7 @@ ServerInterface::RequestResponse ServerManager::requestConnection(Connection::Co
|
|||
}
|
||||
}
|
||||
|
||||
ServerInterface::RequestResponse ServerManager::giveRequest(ClientRequest request){
|
||||
ServerInterface::RequestResponse ServerManager::giveRequest(ClientRequest& request){
|
||||
if(_connections[request.src._handle] != request.src){
|
||||
delete request;
|
||||
return RQ_INVALID_HANDLE;
|
||||
|
|
@ -75,45 +75,47 @@ ServerInterface::RequestResponse ServerManager::giveRequest(ClientRequest reques
|
|||
}
|
||||
|
||||
//todo new message, request passed as data
|
||||
unsigned char dest = 0;
|
||||
//unsigned char dest = 0;
|
||||
Message message;
|
||||
switch(request.requestType){
|
||||
case ClientRequest::SYSTEM_FUNCTION:
|
||||
dest = SYSTEM_CONTROL;
|
||||
//dest = SYSTEM_CONTROL;
|
||||
break;
|
||||
case ClientRequest::SCANNER_FUNCTION:
|
||||
//dest = SCANNER_SM;
|
||||
message = new ScannerMessage(CLIENT, ScannerMessage::CLIENT_REQUEST, request);
|
||||
message = new ScannerMessage(CLIENT, ScannerMessage::CLIENT_REQUEST, &request);
|
||||
break;
|
||||
case ClientRequest::DATABASE_RETRIEVE:
|
||||
dest = SYSTEM_CONTROL;
|
||||
//dest = SYSTEM_CONTROL;
|
||||
break;
|
||||
case ClientRequest::DATABASE_MODIFY:
|
||||
dest = SYSTEM_CONTROL;
|
||||
//dest = SYSTEM_CONTROL;
|
||||
break;
|
||||
case ClientRequest::CONFIG_RETRIEVE:
|
||||
dest = SYSTEM_CONTROL;
|
||||
//dest = SYSTEM_CONTROL;
|
||||
break;
|
||||
case ClientRequest::CONFIG_MODIFY:
|
||||
dest = SYSTEM_CONTROL;
|
||||
//dest = SYSTEM_CONTROL;
|
||||
break;
|
||||
}
|
||||
|
||||
this->giveMessage(message);
|
||||
delete request;
|
||||
//delete request;
|
||||
return RQ_ACCEPTED;
|
||||
}
|
||||
|
||||
void ServerManager::_handleMessage(Message message){
|
||||
void ServerManager::_handleMessage(Message& message){
|
||||
//TODO
|
||||
}
|
||||
|
||||
void ServerManager::_addConnection(Connection::Connection client){
|
||||
void ServerManager::_addConnection(Connection& client){
|
||||
//TODO
|
||||
for(int i = 0; i < MAX_CONNECTIONS; ++i){
|
||||
if(_connections[i] == NULL){
|
||||
_connections[i] = client;
|
||||
client._handle = i;
|
||||
client.serverManager = this;
|
||||
client.connect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
#ifndef SERVER_SERVERMANAGER_H_
|
||||
#define SERVER_SERVERMANAGER_H_
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "messages.h"
|
||||
|
||||
class Connection;
|
||||
|
|
@ -30,17 +32,21 @@ public:
|
|||
|
||||
Connection(ConnectionLevel lvl, AudioReceive aud);
|
||||
|
||||
virtual void giveMessage(Message message) = 0;
|
||||
void disconnect();
|
||||
virtual void giveMessage(Message& message) = 0;
|
||||
virtual void connect() = 0;
|
||||
virtual void disconnect() = 0;
|
||||
|
||||
private:
|
||||
friend class ServerManager;
|
||||
int _handle;
|
||||
ConnectionLevel _level;
|
||||
AudioReceive _audio;
|
||||
ServerInterface _serverManager;
|
||||
protected:
|
||||
ServerInterface& serverManager;
|
||||
|
||||
void _notifyDisconnected();
|
||||
void notifyDisconnected() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
class ClientRequest : public Message {
|
||||
|
|
@ -51,7 +57,7 @@ public:
|
|||
};
|
||||
|
||||
enum RequestType {
|
||||
SYSTEM_FUNCTION,
|
||||
SYSTEM_FUNCTION = 0,
|
||||
SCANNER_FUNCTION,
|
||||
DATABASE_RETRIEVE,
|
||||
DATABASE_MODIFY,
|
||||
|
|
@ -59,10 +65,10 @@ public:
|
|||
CONFIG_MODIFY,
|
||||
};
|
||||
|
||||
ClientRequest(Connection client, unsigned char dst);
|
||||
ClientRequest(Connection& client, unsigned char dst);
|
||||
|
||||
private:
|
||||
static const Connection::ConnectionLevel permissionMap = {
|
||||
static constexpr Connection::ConnectionLevel permissionMap[] = {
|
||||
[SYSTEM_FUNCTION] = Connection::ConnectionLevel::FULL_CONTROL,
|
||||
[SCANNER_FUNCTION] = Connection::ConnectionLevel::FULL_CONTROL,
|
||||
[DATABASE_RETRIEVE] = Connection::ConnectionLevel::VIEWER,
|
||||
|
|
@ -72,14 +78,13 @@ private:
|
|||
};
|
||||
|
||||
friend class ServerManager;
|
||||
Connection src;
|
||||
Connection& src;
|
||||
RequestType requestType;
|
||||
void (*_callback)(void*);
|
||||
};
|
||||
|
||||
class ServerInterface {
|
||||
public:
|
||||
ServerInterface() = 0;
|
||||
virtual ~ServerInterface();
|
||||
|
||||
enum RequestResponse {
|
||||
|
|
@ -89,31 +94,31 @@ public:
|
|||
RQ_INVALID_HANDLE,
|
||||
};
|
||||
|
||||
virtual RequestResponse requestConnection(Connection::Connection client) = 0;
|
||||
virtual RequestResponse giveRequest(ClientRequest request) = 0;
|
||||
virtual RequestResponse requestConnection(Connection& client) = 0;
|
||||
virtual RequestResponse giveRequest(ClientRequest& request) = 0;
|
||||
};
|
||||
|
||||
class ServerManager : public MessageReceiver, ServerInterface {
|
||||
public:
|
||||
ServerManager(MessageReceiver central);
|
||||
ServerManager(MessageReceiver& central);
|
||||
|
||||
void start();
|
||||
void allowConnections();
|
||||
void disconnectClients();
|
||||
void giveMessage(Message message);
|
||||
void giveMessage(Message& message);
|
||||
protected:
|
||||
|
||||
private:
|
||||
moodycamel::ConcurrentQueue _queue;
|
||||
moodycamel::ConcurrentQueue<Message> _queue;
|
||||
int _activeConnections;
|
||||
Connection _connections[];
|
||||
MessageReceiver _centralQueue;
|
||||
std::vector<Connection*> _connections;
|
||||
MessageReceiver& _centralQueue;
|
||||
|
||||
void _queueThreadFunc(void);
|
||||
void _handleMessage(Message message);
|
||||
void _addConnection(Connection::Connection client);
|
||||
RequestResponse requestConnection(Connection::Connection client);
|
||||
RequestResponse giveRequest(ClientRequest request);
|
||||
void _handleMessage(Message& message);
|
||||
void _addConnection(Connection& client);
|
||||
RequestResponse requestConnection(Connection& client);
|
||||
RequestResponse giveRequest(ClientRequest& request);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,16 @@
|
|||
#define SERVER_SOCKETSERVER_H_
|
||||
|
||||
#include "BackendServer.h"
|
||||
#include "ServerManager.h"
|
||||
|
||||
class SocketConnection : public Connection {
|
||||
public:
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
/* listener for socket connections */
|
||||
class SocketServer: public BackendServer {
|
||||
public:
|
||||
SocketServer();
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ private:
|
|||
bool setFrequency(unsigned long freq);
|
||||
int getRssi();
|
||||
float getDecodedPL();
|
||||
int getDecodedDC();
|
||||
unsigned int getDecodedDC();
|
||||
bool squelchThresholdMet();
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue