Hallo zusammen,
ich möchte mir zur Kommunikation über eine serielle Schnittstelle ein
Kommunikationsobjekt bauen:
1 | class ComBase {
|
2 | protected:
|
3 | void send(void *data);
|
4 | void receive(void *data);
|
5 | };
|
6 |
|
7 | class ComMaster: public ComBase {
|
8 | void sendRequest(void) {
|
9 | //Requestframe bauen
|
10 | //...
|
11 | send(&frame);
|
12 | }
|
13 | };
|
14 |
|
15 | class ComSlave: public ComBase {
|
16 | void sendReply(void) {
|
17 | //Replyframe bauen
|
18 | //...
|
19 | send(&frame);
|
20 | }
|
21 | };
|
22 |
|
23 | //Auf Masterseite
|
24 | ComMaster com;
|
25 | //Auf Slaveseite
|
26 | ComSlave com;
|
Soweit so gut, nun möchte ich aber optional an die Schnittstelle ein
Funkmodul anschließen und dazu eine ComRadio Klasse schreiben, die die
Methoden send und receive überschreibt, und darin die Daten für das
Funkmodul einpacket.
1 | class ComRadio: public ComBase {
|
2 | void send(void *data); //überschreibt ComBase
|
3 | void receive(void *data); //überschreibt ComBase
|
4 | };
|
Wie kann ich nun einen RadioSlave bzw. einen RadioMaster instanziieren?
Ich müsste fallweise die Klasse ComRadio zwischen ComBase und ComSlave
bzw. ComMaster schieben. Wie könnte man das umsetzen?
Werner