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