Enabled arcs render after adapting OpenCNCPilot code.
Started porting iosender to C++
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace iosender {
|
||||
|
||||
class StreamComms;
|
||||
|
||||
class Comms {
|
||||
public:
|
||||
|
||||
enum class State {
|
||||
AwaitAck,
|
||||
DataReceived,
|
||||
ACK,
|
||||
NAK
|
||||
};
|
||||
|
||||
enum class ResetMode {
|
||||
None,
|
||||
DTR,
|
||||
RTS
|
||||
};
|
||||
|
||||
enum class StreamType {
|
||||
Serial,
|
||||
Telnet,
|
||||
Websocket
|
||||
};
|
||||
|
||||
const int TXBUFFERSIZE = 4096;
|
||||
const int RXBUFFERSIZE = 1024;
|
||||
|
||||
static void SetCom(StreamComms *com);
|
||||
static StreamComms *GetCom();
|
||||
};
|
||||
|
||||
struct DataReceivedHandler {
|
||||
virtual void DataReceived(std::string data) = 0;
|
||||
};
|
||||
|
||||
struct ByteReceivedHandler {
|
||||
virtual void ByteReceived(int b) = 0;
|
||||
};
|
||||
|
||||
class StreamComms {
|
||||
public:
|
||||
|
||||
virtual ~StreamComms() = default;
|
||||
|
||||
virtual bool IsOpen() = 0;
|
||||
virtual int OutCount() = 0;
|
||||
virtual std::string Reply() = 0;
|
||||
virtual Comms::StreamType StreamType() = 0;
|
||||
virtual bool EventMode() = 0;
|
||||
virtual void EventMode(bool mode) = 0;
|
||||
|
||||
virtual void Close() = 0;
|
||||
virtual int ReadByte() = 0;
|
||||
virtual void WriteByte(uint8_t data) = 0;
|
||||
virtual void WriteBytes(uint8_t *bytes, int len) = 0;
|
||||
virtual void WriteString(std::string data) = 0;
|
||||
virtual void WriteCommand(std::string command) = 0;
|
||||
virtual std::string GetReply(std::string command) = 0;
|
||||
virtual void AwaitAck() = 0;
|
||||
virtual void AwaitAck(std::string command) = 0;
|
||||
virtual void AwaitResponse(std::string command) = 0;
|
||||
virtual void AwaitResponse() = 0;
|
||||
virtual void PurgeQueue() = 0;
|
||||
|
||||
Comms::State CommandState = Comms::State::NAK;
|
||||
DataReceivedHandler *dataReceivedHandler = nullptr;
|
||||
ByteReceivedHandler *byteReceivedHandler = nullptr;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user