Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX.write Kompilerfehler

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    KNX.write Kompilerfehler

    Hallöchen,
    ich bin mittendrin im Basteln meiner Lüftersteuerung, hab aber folgendes Problem beim Kompilieren meines Projekts.

    Ich hab ein array von structs gebastelt, das sieht folgendermaßen aus:
    Code:
    typedef struct {
        ....
      uint8_t ActualDirection;    // aktuelle Drehrichtung des Lüfters
      uint8_t TargetSpeed;   // Ziel-Lüftergeschwindigkeit
        ...
    } Luefter_Parameter;
    Luefter_Parameter Luefter[8];
    wenn ich jetzt einen dieser Werte auf den Bus schreiben will, mittels
    Code:
    Knx.write(COMOBJ_Luefter1_Direction_Status, Luefter[1].ActualDirection);
    Knx.write(COMOBJ_Luefter1_TargetSpeed_Status, Luefter[1].TargetSpeed);
    dann bekomme ich immer folgenden Kompilerfehler:
    undefined reference to `e_KnxDeviceStatus KnxDevice::write<char>(unsigned char, char)'

    COMOBJ sind definiert als
    Code:
        /* Index 18 - Luefter1_Direction_Status */ KnxComObject(KNX_DPT_1_012, 0x34),
        /* Index 30 - Luefter1_TargetSpeed_Status */ KnxComObject(KNX_DPT_5_001, 0x34),
    Offensichtlich passt der Datentyp nicht zusammen, aber ich verstehs nicht ganz - wo liegt mein Fehler?

    Danke,
    Christoph

    Edit: Ein
    Code:
     
     Knx.write(COMOBJ_Luefter1_TargetSpeed_Status, 13)
    wird ganz normal kompiliert, also liegts irgendwo daran...
    Zuletzt geändert von Sonnengruesser; 10.07.2017, 21:56.

    #2
    Nimm statt uint8 uint32 oder int...
    das hatte ich auch immet witder... das werden später evtl. hinzufügen

    Kommentar


      #3
      Danke Eugenius für den Tipp, hab es jetzt so gelöst:
      Code:
       Knx.write(COMOBJ_Luefter1_TargetSpeed_Status, (int) Luefter[1].TargetSpeed);
      funktioniert....

      Bin eigentlich überhaupt kein Fan dieser typecasts, aber wenn's hilft...

      Kommentar

      Lädt...
      X