Arduino C++ Library for VLCB
Loading...
Searching...
No Matches
EventProducerService.h
Go to the documentation of this file.
1// Copyright (C) Martin Da Costa 2023 (martindc.merg@gmail.com)
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#include "Service.h"
9#include <vlcbdefs.hpp>
10
11namespace VLCB {
12
13struct VlcbMessage;
14
25public:
28 void setRequestEventHandler(void (*fptr)(byte index, const VlcbMessage *msg));
30 virtual void processAction(const Action & action) override;
31
32 virtual VlcbServiceTypes getServiceID() const override
33 {
35 }
36 virtual byte getServiceVersionID() const override
37 {
38 return 1;
39 }
41
48 void sendShortEvent(bool state, int eventNumber);
49
57 void sendLongEvent(bool state, int eventNumber);
58
69 void sendLongEventWithSpoofedNodeNumber(bool state, int nodeNumber, int eventNumber);
70
77 void sendEventAtIndex(bool state, byte evIndex);
78
86 void sendEventAtIndex(bool state, byte evIndex, byte data1);
87
96 void sendEventAtIndex(bool state, byte evIndex, byte data1, byte data2);
97
107 void sendEventAtIndex(bool state, byte evIndex, byte data1, byte data2, byte data3);
108
112 void sendEventResponse(bool state, byte index);
113
117 void sendEventResponse(bool state, byte index, byte data1);
118
122 void sendEventResponse(bool state, byte index, byte data1, byte data2);
123
128 void sendEventResponse(bool state, byte index, byte data1, byte data2, byte data3);
129
130
131private:
132 void (*requesteventhandler)(byte index, const VlcbMessage *msg);
133 void handleProdSvcMessage(const VlcbMessage *msg);
134
135 void sendMessage(VlcbMessage &msg, byte opCode, const byte *nn_en);
137protected:
138 unsigned int diagEventsProduced = 0;
140};
141
142} // VLCB
Service for producing events.
Definition EventProducerService.h:24
void setRequestEventHandler(void(*fptr)(byte index, const VlcbMessage *msg))
void sendEventResponse(bool state, byte index)
void sendEventResponse(bool state, byte index, byte data1)
void sendEventAtIndex(bool state, byte evIndex, byte data1, byte data2, byte data3)
Send an event from the taught events table with data.
void sendEventAtIndex(bool state, byte evIndex, byte data1)
Send an event from the taught events table with data.
void sendEventResponse(bool state, byte index, byte data1, byte data2, byte data3)
void sendEventResponse(bool state, byte index, byte data1, byte data2)
void sendShortEvent(bool state, int eventNumber)
Send a short event.
void sendLongEventWithSpoofedNodeNumber(bool state, int nodeNumber, int eventNumber)
Send a long event with a spoofed node number.
void sendEventAtIndex(bool state, byte evIndex, byte data1, byte data2)
Send an event from the taught events table with data.
void sendEventAtIndex(bool state, byte evIndex)
Send an event from the taught events table.
void sendLongEvent(bool state, int eventNumber)
Send a long event.
Interface base class for all VLCB services.
Definition Service.h:25
Definition VLCB.h:50
VlcbServiceTypes
Definition vlcbdefs.hpp:487
@ SERVICE_ID_PRODUCER
Definition vlcbdefs.hpp:496