Ich baue mir gerade, angeregt durch das Ahoy-Projekt
Beitrag "Wechselrichter Hoymiles HM-xxxx 2,4 GhZ Nordic Protokoll?"
einen LoRa-Node, um die Daten des Hoymiles-Wechselrichters zu
übertragen. Dazu verwendete ich ein Heltec LoRa-Board mit einer STM32L51
MCU und SX1276 LoRa-Modem. Als Firmware verwende ich den offiziellen
LoRaMac-node von Semtech,
https://github.com/Lora-net/LoRaMac-node
ergänzt um eine Definition für das Heltec-Board. Das hat sich in anderen
Projekten schon bewährt.
Zur Steuerung des nRF24L01 Transceivers habe ich die im Ahoy-Projekt
verwendete Arduino Library RF24 in Teilen portiert, also nur die
Methoden, die ich zum Auslesen des Wechselrichters brauche.
Ich betreibe ein LoRa Indoor Gateway und gehe über das The Things
Network. Um keinen übermäßigen Datenverkehr zu erzeugen, wollte ich den
Wechselrichter alle 10 Minuten auslesen, die Daten sammeln und einmal
pro Stunde als Block mit LoRa senden. Statt der Berechnung der Zeiten
mit Tageslicht werde ich noch einen Lichtsensor integrieren.
Alles kompiliert ohne Warnungen und Fehler, nur beim Linken gibt es
Probleme. Hier die relevanten privaten Methoden meiner RF24-Klasse:
1 | uint8_t RF24::read_register(uint8_t reg)
|
2 | {
|
3 | m_status = SpiInOut(&Rf24_spi, R_REGISTER | reg);
|
4 | return (uint8_t) SpiInOut(&Rf24_spi, 0xff);
|
5 | }
|
6 |
|
7 | void RF24::read_register(uint8_t reg, uint8_t *buf, uint8_t len)
|
8 | {
|
9 | m_status = SpiInOut(&Rf24_spi, R_REGISTER | reg);
|
10 | while (len--) {
|
11 | *buf++ = SpiInOut(&Rf24_spi, 0xff);
|
12 | }
|
13 | }
|
Das RF24_spi Objekt ist als extern deklariert und an anderer Stelle
implementiert.
Der Linker meckert jetzt über die RF24_spi Referenzen in der ersten
Methode, an denen in der zweiten Methode hat er nichts auszusetzen:
1 | in function `RF24::read_register(unsigned char)':
|
2 | /Users/uli/Projekte/LoRaMac-node_heltec/src/peripherals/rf24/rf24.cpp:99: undefined reference to `Rf24_spi'
|
Ich verwende eine Toolchain mit Arm GCC 10.2.1 auf macOS.
Hat jemand eine Idee, was da schiefläuft oder kann mir die Tomaten von
den Augen entfernen?
Viele Grüße,
Uli