This library allows to parse and work with data sent by the Paradigma pelletti oven.
ParadigmaData.h@1:9c48326ad8c9, 2013-06-26 (annotated)
- Committer:
- leihen
- Date:
- Wed Jun 26 21:04:07 2013 +0000
- Revision:
- 1:9c48326ad8c9
- Parent:
- 0:4873b21e0bca
- Child:
- 2:27334bd6dc28
Small additions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
leihen | 0:4873b21e0bca | 1 | #ifndef __PARADIGMA_DATA_H__ |
leihen | 0:4873b21e0bca | 2 | #define __PARADIGMA_DATA_H__ |
leihen | 0:4873b21e0bca | 3 | |
leihen | 0:4873b21e0bca | 4 | #include "ParadigmaBase.h" |
leihen | 0:4873b21e0bca | 5 | #include "ParadigmaTemperature.h" |
leihen | 0:4873b21e0bca | 6 | #include "ParadigmaDateTime.h" |
leihen | 0:4873b21e0bca | 7 | |
leihen | 0:4873b21e0bca | 8 | #include <string> |
leihen | 0:4873b21e0bca | 9 | using namespace std; |
leihen | 0:4873b21e0bca | 10 | |
leihen | 1:9c48326ad8c9 | 11 | namespace Paradigma |
leihen | 1:9c48326ad8c9 | 12 | { |
leihen | 1:9c48326ad8c9 | 13 | |
leihen | 1:9c48326ad8c9 | 14 | /** ParadigmaBlockType_t enumerates valid values for the block type. The block type is always the first |
leihen | 0:4873b21e0bca | 15 | * data byte in a response from paradigma. There are currently two known values. |
leihen | 0:4873b21e0bca | 16 | */ |
leihen | 0:4873b21e0bca | 17 | typedef __packed enum { |
leihen | 0:4873b21e0bca | 18 | ParadigmaVariables = 0xFC, |
leihen | 0:4873b21e0bca | 19 | ParadigmaParameters = 0xFD, |
leihen | 0:4873b21e0bca | 20 | } ParadigmaBlockType_t; |
leihen | 0:4873b21e0bca | 21 | |
leihen | 0:4873b21e0bca | 22 | /** ParadigmaMessageID_t specifies the content of the transmitted object. Currently only one valid value |
leihen | 0:4873b21e0bca | 23 | * is known which indicates a valuid variable or parameter block is being transmitted */ |
leihen | 0:4873b21e0bca | 24 | typedef __packed enum { |
leihen | 0:4873b21e0bca | 25 | ParadigmaMessage = 0x0C, |
leihen | 0:4873b21e0bca | 26 | } ParadigmaMessageID_t; |
leihen | 0:4873b21e0bca | 27 | |
leihen | 1:9c48326ad8c9 | 28 | /** ParadigmaDatasetType_t specifies which type of information is contained in the datablock. Currently |
leihen | 0:4873b21e0bca | 29 | * known values are : Dataset1 and Dataset2 for Variables, and Parameters for different settings which |
leihen | 0:4873b21e0bca | 30 | * can be changed and queried by the user. |
leihen | 0:4873b21e0bca | 31 | */ |
leihen | 0:4873b21e0bca | 32 | typedef __packed enum { |
leihen | 0:4873b21e0bca | 33 | ParadigmaMonitorDataset1 = 0x01, |
leihen | 0:4873b21e0bca | 34 | ParadigmaMonitorDataset2 = 0x02, |
leihen | 0:4873b21e0bca | 35 | ParadigmaParameterset = 0x03, |
leihen | 0:4873b21e0bca | 36 | ParadigmaUnknown1 = 0x14, |
leihen | 0:4873b21e0bca | 37 | Invalid = 0xFF |
leihen | 0:4873b21e0bca | 38 | } ParadigmaDatasetType_t; |
leihen | 0:4873b21e0bca | 39 | |
leihen | 0:4873b21e0bca | 40 | typedef char ParadigmaParameterAddress_t[3]; |
leihen | 0:4873b21e0bca | 41 | |
leihen | 0:4873b21e0bca | 42 | const ParadigmaParameterAddress_t ParadigmaAdresses[] = { |
leihen | 0:4873b21e0bca | 43 | {0x00, 0x02, 0x2A}, // Heizkreis 1 |
leihen | 0:4873b21e0bca | 44 | {0x01, 0x88, 0x2A}, // Heizkreis 2 |
leihen | 0:4873b21e0bca | 45 | {0x03, 0x0E, 0x09}, // Warmwasser |
leihen | 0:4873b21e0bca | 46 | {0x03, 0xF7, 0x0F}, // Anlagendaten Kessel/Puffer und Zirkulation |
leihen | 0:4873b21e0bca | 47 | {0x03, 0xE6, 0x12}, // Wartung Telefonnummer |
leihen | 0:4873b21e0bca | 48 | {0x03, 0x17, 0x70}, // Warmwasserprogramm 1 |
leihen | 0:4873b21e0bca | 49 | {0x03, 0x87, 0x70}, // Warmwasserprogramm 2 |
leihen | 0:4873b21e0bca | 50 | {0x04, 0x06, 0x70}, // Zirkulationszeitprogramm 1 |
leihen | 0:4873b21e0bca | 51 | {0x04, 0x76, 0x70}, // Zirkulationszeitprogramm 2 |
leihen | 0:4873b21e0bca | 52 | {0x00, 0x2C, 0x70}, // Heizzeitprogramm 1 HK1 |
leihen | 0:4873b21e0bca | 53 | {0x00, 0x9C, 0x70}, // Heizzeitprogramm 2 HK1 |
leihen | 0:4873b21e0bca | 54 | {0x01, 0x0C, 0x70}, // Heizzeitprogramm 3 HK1 |
leihen | 0:4873b21e0bca | 55 | {0x01, 0xB2, 0x70}, // Heizzeitprogramm 1 HK2 |
leihen | 0:4873b21e0bca | 56 | {0x02, 0x22, 0x70}, // Heizzeitprogramm 2 HK2 |
leihen | 0:4873b21e0bca | 57 | {0x02, 0x92, 0x70}, // Heizzeitprogramm 3 HK2 |
leihen | 0:4873b21e0bca | 58 | {0x05, 0x08, 0x03} // Anlagendaten Kessel/Puffer 2 |
leihen | 0:4873b21e0bca | 59 | }; |
leihen | 0:4873b21e0bca | 60 | |
leihen | 0:4873b21e0bca | 61 | /** ParadigmaBlockHeader_t represents the header of any sent block by paradigma. */ |
leihen | 0:4873b21e0bca | 62 | typedef __packed struct { |
leihen | 0:4873b21e0bca | 63 | ParadigmaBlockType_t block_type; // 0xFC for normal observable variables, 0xFD for parameter blocks |
leihen | 0:4873b21e0bca | 64 | unsigned char block_length; |
leihen | 0:4873b21e0bca | 65 | ParadigmaMessageID_t message_id; // always 0x0C |
leihen | 1:9c48326ad8c9 | 66 | ParadigmaDatasetType_t dataset_type; |
leihen | 0:4873b21e0bca | 67 | } ParadigmaBlockHeader_t; |
leihen | 0:4873b21e0bca | 68 | |
leihen | 0:4873b21e0bca | 69 | typedef __packed struct { |
leihen | 0:4873b21e0bca | 70 | ParadigmaDateTime DateTime; |
leihen | 0:4873b21e0bca | 71 | ParadigmaTemperature Aussentemp; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 72 | ParadigmaTemperature Warmwassertemp; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 73 | ParadigmaTemperature Kesselvorlauf; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 74 | ParadigmaTemperature Kesselruecklauf; // (in 0,1 Grad Schritten) |
leihen | 1:9c48326ad8c9 | 75 | |
leihen | 0:4873b21e0bca | 76 | ParadigmaTemperature RaumtemperaturHK1; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 77 | ParadigmaTemperature RaumtemperaturHK2; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 78 | ParadigmaTemperature VorlauftemperaturHK1; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 79 | ParadigmaTemperature VorlauftemperaturHK2; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 80 | ParadigmaTemperature RuecklauftemperaturHK1; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 81 | ParadigmaTemperature RuecklauftemperaturHK2; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 82 | ParadigmaTemperature PuffertemperaturOben; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 83 | ParadigmaTemperature PuffertemperaturUnten; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 84 | ParadigmaTemperature Zirkulationstemperatur; // (in 0,1 Grad Schritten) |
leihen | 0:4873b21e0bca | 85 | |
leihen | 0:4873b21e0bca | 86 | byte Checksumme; |
leihen | 0:4873b21e0bca | 87 | } MonDta1_t; |
leihen | 0:4873b21e0bca | 88 | |
leihen | 0:4873b21e0bca | 89 | typedef __packed struct { |
leihen | 0:4873b21e0bca | 90 | ParadigmaTemperature RaumsollHK1; |
leihen | 0:4873b21e0bca | 91 | ParadigmaTemperature RaumsollHK2; |
leihen | 0:4873b21e0bca | 92 | ParadigmaTemperature VorlaufsollHK1; |
leihen | 0:4873b21e0bca | 93 | ParadigmaTemperature VorlaufsollHK2; |
leihen | 0:4873b21e0bca | 94 | ParadigmaTemperature Warmwassersolltemp; |
leihen | 0:4873b21e0bca | 95 | ParadigmaTemperature Puffersolltemp; |
leihen | 0:4873b21e0bca | 96 | __packed struct { |
leihen | 0:4873b21e0bca | 97 | word PHK1:1; |
leihen | 0:4873b21e0bca | 98 | word PHK2:1; |
leihen | 0:4873b21e0bca | 99 | word PK:1; |
leihen | 0:4873b21e0bca | 100 | word Mischer1Auf:1; |
leihen | 0:4873b21e0bca | 101 | word Mischer1Zu:1; |
leihen | 0:4873b21e0bca | 102 | word Mischer2Auf:1; |
leihen | 0:4873b21e0bca | 103 | word Mischer2Zu:1; |
leihen | 0:4873b21e0bca | 104 | word ULV:1; |
leihen | 0:4873b21e0bca | 105 | word PZ:1; |
leihen | 0:4873b21e0bca | 106 | word B1:1; |
leihen | 0:4873b21e0bca | 107 | word Taster:1; |
leihen | 0:4873b21e0bca | 108 | word LONModul:1; |
leihen | 0:4873b21e0bca | 109 | word OTModul:1; |
leihen | 0:4873b21e0bca | 110 | word reserver:3; |
leihen | 0:4873b21e0bca | 111 | } ZustandAusgaenge; |
leihen | 0:4873b21e0bca | 112 | ParadigmaDword BetriebsstundenKessel; |
leihen | 0:4873b21e0bca | 113 | ParadigmaDword AnzahlKesselstarts; |
leihen | 0:4873b21e0bca | 114 | ParadigmaWord StoercodeKessel; |
leihen | 0:4873b21e0bca | 115 | byte StoercodeFuehler; |
leihen | 0:4873b21e0bca | 116 | byte BetriebsartHK1; |
leihen | 0:4873b21e0bca | 117 | byte NiveauHK1; |
leihen | 0:4873b21e0bca | 118 | byte BetriebsartHK2; |
leihen | 0:4873b21e0bca | 119 | byte NiveauHK2; |
leihen | 0:4873b21e0bca | 120 | byte LeistungPHK1; |
leihen | 0:4873b21e0bca | 121 | byte LeistungPHK2; |
leihen | 0:4873b21e0bca | 122 | byte LeistungPK; |
leihen | 1:9c48326ad8c9 | 123 | |
leihen | 1:9c48326ad8c9 | 124 | byte Checksumme; |
leihen | 0:4873b21e0bca | 125 | } MonDta2_t; |
leihen | 0:4873b21e0bca | 126 | |
leihen | 0:4873b21e0bca | 127 | |
leihen | 0:4873b21e0bca | 128 | /** Class ParadigmaMonitorData encapsulates the data representation and parsing of the |
leihen | 0:4873b21e0bca | 129 | * data blocks that are being sent by the paradigma heater. The class also provides |
leihen | 0:4873b21e0bca | 130 | * a stream type functionality to detect and parse the data from a stream of chars. |
leihen | 0:4873b21e0bca | 131 | */ |
leihen | 0:4873b21e0bca | 132 | class ParadigmaMonitorData |
leihen | 0:4873b21e0bca | 133 | { |
leihen | 1:9c48326ad8c9 | 134 | FunctionPointer m_Callback; |
leihen | 1:9c48326ad8c9 | 135 | |
leihen | 1:9c48326ad8c9 | 136 | MonDta1_t m_Data1; |
leihen | 1:9c48326ad8c9 | 137 | MonDta2_t m_Data2; |
leihen | 1:9c48326ad8c9 | 138 | |
leihen | 1:9c48326ad8c9 | 139 | ParadigmaBlockHeader_t m_Header; |
leihen | 1:9c48326ad8c9 | 140 | ParadigmaDatasetType_t m_activeDataBlock; |
leihen | 1:9c48326ad8c9 | 141 | int m_actualPos; |
leihen | 1:9c48326ad8c9 | 142 | char m_checksum; |
leihen | 1:9c48326ad8c9 | 143 | |
leihen | 1:9c48326ad8c9 | 144 | void invalidateHeader(); |
leihen | 1:9c48326ad8c9 | 145 | void callBack() { |
leihen | 1:9c48326ad8c9 | 146 | m_Callback.call(); |
leihen | 1:9c48326ad8c9 | 147 | } |
leihen | 1:9c48326ad8c9 | 148 | word swapWord(word d) { |
leihen | 1:9c48326ad8c9 | 149 | return ((d&0xFF)<<8) | ((d>>8)&0xFF); |
leihen | 1:9c48326ad8c9 | 150 | } |
leihen | 1:9c48326ad8c9 | 151 | ulong swapDWord(ulong d) { |
leihen | 1:9c48326ad8c9 | 152 | return ((d>>24)&0xFF) | ((d>>8)&0x0000FF00) | ((d<<8)&0x00FF0000) | ((d<<24)&0xFF000000); |
leihen | 1:9c48326ad8c9 | 153 | } |
leihen | 1:9c48326ad8c9 | 154 | public: |
leihen | 1:9c48326ad8c9 | 155 | /** Public constructor. Will initialize all internal data and variables. */ |
leihen | 1:9c48326ad8c9 | 156 | ParadigmaMonitorData(): m_checksum(0) { |
leihen | 1:9c48326ad8c9 | 157 | memset(&m_Data1, 0, sizeof(m_Data1)); |
leihen | 1:9c48326ad8c9 | 158 | memset(&m_Data2, 0, sizeof(m_Data2)); |
leihen | 1:9c48326ad8c9 | 159 | invalidateHeader(); |
leihen | 1:9c48326ad8c9 | 160 | } |
leihen | 1:9c48326ad8c9 | 161 | /** Access function to get the transmitted date time object. |
leihen | 1:9c48326ad8c9 | 162 | * @returns : the date and time objects of the transmitted data. |
leihen | 1:9c48326ad8c9 | 163 | */ |
leihen | 1:9c48326ad8c9 | 164 | ParadigmaDateTime getDateTime() { |
leihen | 1:9c48326ad8c9 | 165 | return m_Data1.DateTime; |
leihen | 1:9c48326ad8c9 | 166 | } |
leihen | 1:9c48326ad8c9 | 167 | /** Access function to the Outside air temperature (AUSSENTEMP). |
leihen | 1:9c48326ad8c9 | 168 | * @returns : the outside air temperature. |
leihen | 1:9c48326ad8c9 | 169 | */ |
leihen | 1:9c48326ad8c9 | 170 | ParadigmaTemperature getAussentemp() { |
leihen | 1:9c48326ad8c9 | 171 | return m_Data1.Aussentemp; |
leihen | 1:9c48326ad8c9 | 172 | } |
leihen | 1:9c48326ad8c9 | 173 | /** Access function to the warm water temperature (WARMWASSERTEMP). |
leihen | 1:9c48326ad8c9 | 174 | * @returns : the warm water temperature. |
leihen | 1:9c48326ad8c9 | 175 | */ |
leihen | 1:9c48326ad8c9 | 176 | ParadigmaTemperature getWarmwassertemp() { |
leihen | 1:9c48326ad8c9 | 177 | return m_Data1.Warmwassertemp; |
leihen | 1:9c48326ad8c9 | 178 | } |
leihen | 1:9c48326ad8c9 | 179 | /** Access function to the 'kessel vorlauf' temperature. |
leihen | 1:9c48326ad8c9 | 180 | * @returns : the temperature of the 'kessel vorlauf'. |
leihen | 1:9c48326ad8c9 | 181 | */ |
leihen | 1:9c48326ad8c9 | 182 | ParadigmaTemperature getKesselvorlauf() { |
leihen | 1:9c48326ad8c9 | 183 | return m_Data1.Kesselvorlauf; |
leihen | 1:9c48326ad8c9 | 184 | } |
leihen | 1:9c48326ad8c9 | 185 | /** Access function to the 'kessel ruecklauf' temperature. |
leihen | 1:9c48326ad8c9 | 186 | * @returns : the temperature of the 'kessel ruecklauf'. |
leihen | 1:9c48326ad8c9 | 187 | */ |
leihen | 1:9c48326ad8c9 | 188 | ParadigmaTemperature getKesselruecklauf() { |
leihen | 1:9c48326ad8c9 | 189 | return m_Data1.Kesselruecklauf; |
leihen | 1:9c48326ad8c9 | 190 | } |
leihen | 1:9c48326ad8c9 | 191 | /** Access function to the room temperature of heating circuit 1. |
leihen | 1:9c48326ad8c9 | 192 | * @returns : the room temperature of heating circuit 1. |
leihen | 1:9c48326ad8c9 | 193 | */ |
leihen | 1:9c48326ad8c9 | 194 | ParadigmaTemperature getRaumtemperaturHK1() { |
leihen | 1:9c48326ad8c9 | 195 | return m_Data1.RaumtemperaturHK1; |
leihen | 1:9c48326ad8c9 | 196 | } |
leihen | 1:9c48326ad8c9 | 197 | /** Access function to the room temperature of heating circuit 2. |
leihen | 1:9c48326ad8c9 | 198 | * @returns : the room temperature of heating circuit 2. |
leihen | 1:9c48326ad8c9 | 199 | */ |
leihen | 1:9c48326ad8c9 | 200 | ParadigmaTemperature getRaumtemperaturHK2() { |
leihen | 1:9c48326ad8c9 | 201 | return m_Data1.RaumtemperaturHK2; |
leihen | 1:9c48326ad8c9 | 202 | } |
leihen | 1:9c48326ad8c9 | 203 | ParadigmaTemperature getVorlauftemperaturHK1() { |
leihen | 1:9c48326ad8c9 | 204 | return m_Data1.VorlauftemperaturHK1; |
leihen | 1:9c48326ad8c9 | 205 | } |
leihen | 1:9c48326ad8c9 | 206 | ParadigmaTemperature getVorlauftemperaturHK2() { |
leihen | 1:9c48326ad8c9 | 207 | return m_Data1.VorlauftemperaturHK2; |
leihen | 1:9c48326ad8c9 | 208 | } |
leihen | 1:9c48326ad8c9 | 209 | ParadigmaTemperature getRuecklauftemperaturHK1() { |
leihen | 1:9c48326ad8c9 | 210 | return m_Data1.RuecklauftemperaturHK1; |
leihen | 1:9c48326ad8c9 | 211 | } |
leihen | 1:9c48326ad8c9 | 212 | ParadigmaTemperature getRuecklauftemperaturHK2() { |
leihen | 1:9c48326ad8c9 | 213 | return m_Data1.RuecklauftemperaturHK2; |
leihen | 1:9c48326ad8c9 | 214 | } |
leihen | 1:9c48326ad8c9 | 215 | ParadigmaTemperature getPuffertemperaturOben() { |
leihen | 1:9c48326ad8c9 | 216 | return m_Data1.PuffertemperaturOben; |
leihen | 1:9c48326ad8c9 | 217 | } |
leihen | 1:9c48326ad8c9 | 218 | ParadigmaTemperature getPuffertemperaturUnten() { |
leihen | 1:9c48326ad8c9 | 219 | return m_Data1.PuffertemperaturUnten; |
leihen | 1:9c48326ad8c9 | 220 | } |
leihen | 1:9c48326ad8c9 | 221 | ParadigmaTemperature getZirkulationstemperatur() { |
leihen | 1:9c48326ad8c9 | 222 | return m_Data1.Zirkulationstemperatur; |
leihen | 1:9c48326ad8c9 | 223 | } |
leihen | 1:9c48326ad8c9 | 224 | |
leihen | 1:9c48326ad8c9 | 225 | ParadigmaTemperature getRaumsollHK1() { |
leihen | 1:9c48326ad8c9 | 226 | return m_Data2.RaumsollHK1; |
leihen | 1:9c48326ad8c9 | 227 | } |
leihen | 1:9c48326ad8c9 | 228 | ParadigmaTemperature getRaumsollHK2() { |
leihen | 1:9c48326ad8c9 | 229 | return m_Data2.RaumsollHK2; |
leihen | 1:9c48326ad8c9 | 230 | } |
leihen | 1:9c48326ad8c9 | 231 | ParadigmaTemperature getVorlaufsollHK1() { |
leihen | 1:9c48326ad8c9 | 232 | return m_Data2.VorlaufsollHK1; |
leihen | 1:9c48326ad8c9 | 233 | } |
leihen | 1:9c48326ad8c9 | 234 | ParadigmaTemperature getVorlaufsollHK2() { |
leihen | 1:9c48326ad8c9 | 235 | return m_Data2.VorlaufsollHK2; |
leihen | 1:9c48326ad8c9 | 236 | } |
leihen | 1:9c48326ad8c9 | 237 | ParadigmaTemperature getWarmwassersolltemp() { |
leihen | 1:9c48326ad8c9 | 238 | return m_Data2.Warmwassersolltemp; |
leihen | 1:9c48326ad8c9 | 239 | } |
leihen | 1:9c48326ad8c9 | 240 | ParadigmaTemperature getPuffersolltemp() { |
leihen | 1:9c48326ad8c9 | 241 | return m_Data2.Puffersolltemp; |
leihen | 1:9c48326ad8c9 | 242 | } |
leihen | 1:9c48326ad8c9 | 243 | |
leihen | 1:9c48326ad8c9 | 244 | /** Function will let the user select the temperature to be returned. |
leihen | 1:9c48326ad8c9 | 245 | * @param sel : Will specify which temperature value to return. |
leihen | 1:9c48326ad8c9 | 246 | * @returns : the temperature object as selected by param sel. |
leihen | 1:9c48326ad8c9 | 247 | */ |
leihen | 1:9c48326ad8c9 | 248 | ParadigmaTemperature getTemperature(ParadigmaTemperatureSelector_t sel); |
leihen | 1:9c48326ad8c9 | 249 | |
leihen | 1:9c48326ad8c9 | 250 | ulong getBetriebsstundenKessel() { |
leihen | 1:9c48326ad8c9 | 251 | return (ulong)m_Data2.BetriebsstundenKessel; |
leihen | 1:9c48326ad8c9 | 252 | } |
leihen | 1:9c48326ad8c9 | 253 | ulong getAnzahlKesselstarts() { |
leihen | 1:9c48326ad8c9 | 254 | return (ulong)m_Data2.AnzahlKesselstarts; |
leihen | 1:9c48326ad8c9 | 255 | } |
leihen | 1:9c48326ad8c9 | 256 | word getStoercodeKessel() { |
leihen | 1:9c48326ad8c9 | 257 | return (word)m_Data2.StoercodeKessel; |
leihen | 1:9c48326ad8c9 | 258 | } |
leihen | 1:9c48326ad8c9 | 259 | byte getStoercodeFuehler() { |
leihen | 1:9c48326ad8c9 | 260 | return (byte)m_Data2.StoercodeFuehler; |
leihen | 1:9c48326ad8c9 | 261 | } |
leihen | 1:9c48326ad8c9 | 262 | |
leihen | 1:9c48326ad8c9 | 263 | |
leihen | 1:9c48326ad8c9 | 264 | ParadigmaMonitorData& operator<<( char c ); |
leihen | 1:9c48326ad8c9 | 265 | ParadigmaMonitorData& operator<<( char Buffer[] ); |
leihen | 1:9c48326ad8c9 | 266 | |
leihen | 1:9c48326ad8c9 | 267 | void attach( void (*fct)(void) ) { |
leihen | 1:9c48326ad8c9 | 268 | m_Callback.attach(fct); |
leihen | 1:9c48326ad8c9 | 269 | } |
leihen | 1:9c48326ad8c9 | 270 | |
leihen | 1:9c48326ad8c9 | 271 | template<typename T> |
leihen | 1:9c48326ad8c9 | 272 | void attach(T* p, void (T::*mptr)(void)) { |
leihen | 1:9c48326ad8c9 | 273 | m_Callback.attach(p, mptr); |
leihen | 1:9c48326ad8c9 | 274 | } |
leihen | 0:4873b21e0bca | 275 | }; |
leihen | 1:9c48326ad8c9 | 276 | } |
leihen | 0:4873b21e0bca | 277 | #endif |