VLCB
Toggle main menu visibility
Loading...
Searching...
No Matches
SerialGC.h
Go to the documentation of this file.
1
// Copyright (C) David Ellis
2
// This file is part of VLCB-Arduino project on https://github.com/SvenRosvall/VLCB-Arduino
3
// Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
4
// The full licence can be found at: http://creativecommons.org/licenses/by-nc-sa/4.0/
5
6
#pragma once
7
8
// header files
9
#include <Arduino.h>
10
#include <Stream.h>
11
#include <
Controller.h
>
12
#include <
CanTransport.h
>
13
#include <
GridConnect.h
>
14
15
namespace
VLCB
16
{
17
18
// constants
19
20
// grid connect should be 28 characters maximum
21
static
const
int
RXBUFFERSIZE = 30;
22
25
class
SerialGC
:
public
CanTransport
26
{
27
public
:
28
SerialGC
(Stream& _serial = Serial) : serial(_serial) {}
30
bool
begin
();
31
32
virtual
bool
available
()
override
;
33
virtual
CANFrame
getNextCanFrame
()
override
;
34
virtual
bool
sendCanFrame
(
CANFrame
*frame)
override
;
35
virtual
void
reset
()
override
;
36
virtual
byte
getHardwareType
() {
return
CAN_HW_SERIAL
; };
37
38
virtual
unsigned
int
receiveCounter
()
override
{
return
receivedCount; }
39
virtual
unsigned
int
transmitCounter
()
override
{
return
transmitCount; }
40
virtual
unsigned
int
receiveBufferSize
()
override
{
return
RXBUFFERSIZE; }
41
virtual
unsigned
int
transmitBufferSize
()
override
{
return
RXBUFFERSIZE; }
42
virtual
unsigned
int
receiveErrorCounter
()
override
{
return
receiveErrorCount; }
43
virtual
unsigned
int
transmitErrorCounter
()
override
{
return
transmitErrorCount; }
44
virtual
unsigned
int
receiveBufferUsage
()
override
{
return
0; };
45
virtual
unsigned
int
transmitBufferUsage
()
override
{
return
0; };
46
virtual
unsigned
int
receiveBufferPeak
()
override
{
return
0; };
47
virtual
unsigned
int
transmitBufferPeak
()
override
{
return
0; };
48
virtual
unsigned
int
errorStatus
()
override
{
return
0; }
50
51
private
:
52
Stream& serial;
53
54
char
rxBuffer[RXBUFFERSIZE];
// Define a byte array to store the incoming data
55
char
txBuffer[RXBUFFERSIZE];
// Define a byte array to store the outgoing data
56
CANFrame
rxCANFrame;
57
58
unsigned
int
receivedCount = 0;
59
unsigned
int
transmitCount = 0;
60
unsigned
int
receiveErrorCount = 0;
61
unsigned
int
transmitErrorCount = 0;
62
63
void
debugCANMessage(
CANFrame
frame);
64
65
};
66
67
}
CanTransport.h
Controller.h
GridConnect.h
VLCB::CanTransport
Interface base class for CAN transport implementations.
Definition
CanTransport.h:35
VLCB::SerialGC::getNextCanFrame
virtual CANFrame getNextCanFrame() override
Definition
SerialGC.cpp:87
VLCB::SerialGC::transmitBufferPeak
virtual unsigned int transmitBufferPeak() override
Definition
SerialGC.h:47
VLCB::SerialGC::transmitBufferUsage
virtual unsigned int transmitBufferUsage() override
Definition
SerialGC.h:45
VLCB::SerialGC::SerialGC
SerialGC(Stream &_serial=Serial)
Definition
SerialGC.h:28
VLCB::SerialGC::transmitErrorCounter
virtual unsigned int transmitErrorCounter() override
Definition
SerialGC.h:43
VLCB::SerialGC::errorStatus
virtual unsigned int errorStatus() override
Definition
SerialGC.h:48
VLCB::SerialGC::receiveBufferUsage
virtual unsigned int receiveBufferUsage() override
Definition
SerialGC.h:44
VLCB::SerialGC::transmitCounter
virtual unsigned int transmitCounter() override
Definition
SerialGC.h:39
VLCB::SerialGC::transmitBufferSize
virtual unsigned int transmitBufferSize() override
Definition
SerialGC.h:41
VLCB::SerialGC::receiveBufferPeak
virtual unsigned int receiveBufferPeak() override
Definition
SerialGC.h:46
VLCB::SerialGC::getHardwareType
virtual byte getHardwareType()
Definition
SerialGC.h:36
VLCB::SerialGC::receiveCounter
virtual unsigned int receiveCounter() override
Definition
SerialGC.h:38
VLCB::SerialGC::reset
virtual void reset() override
reset
Definition
SerialGC.cpp:116
VLCB::SerialGC::receiveErrorCounter
virtual unsigned int receiveErrorCounter() override
Definition
SerialGC.h:42
VLCB::SerialGC::sendCanFrame
virtual bool sendCanFrame(CANFrame *frame) override
send a CANMessage message in GridConnect format
Definition
SerialGC.cpp:97
VLCB::SerialGC::available
virtual bool available() override
Check if an incoming CAN frame is available on the CAN bus.
Definition
SerialGC.cpp:32
VLCB::SerialGC::receiveBufferSize
virtual unsigned int receiveBufferSize() override
Definition
SerialGC.h:40
VLCB
Definition
AbstractEventTeachingService.cpp:13
VLCB::begin
void begin()
Definition
VLCB.cpp:186
VLCB::CANFrame
Represents a CAN frame sent on the CAN bus.
Definition
CanTransport.h:21
CAN_HW_SERIAL
@ CAN_HW_SERIAL
Definition
vlcbdefs.hpp:673
src
SerialGC.h
Generated by
1.18.0