Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Makro FlashSetAndSave will nicht kompilieren

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

    Makro FlashSetAndSave will nicht kompilieren

    Hallo zusammen,

    egal, ob ich FlashSetAndSaveS16 oder F16 nehme, es kommt der Parser mit einer Fehlermeldung. Der interessante Ausschnitt daraus:

    String zu lang. Bitte auch Sonderzeichen mit Speicherbedarf >1 Byte bedenken.

    Den Rest der Fehlermeldung (das ganze Makro) laß ich mal weg. Mein Code:

    Code:
    FlashSetAndSaveS16(1,AlarmStatus,0,1,0)
    
    [EibPC]
    AlarmStatus=0s16
    Hab's auch mit der F16 Variante probiert. Natürlich den Variablentyp auch entsprechend geändert -> gleicher Fehler. Erstaunlicherweise kann ich hier im ganzen Forum nichts zu FlashSetAndSave finden.

    Schönen Abend noch,

    Harry

    #2
    Zitat von FHarry Beitrag anzeigen
    Der interessante Ausschnitt daraus:
    interessant wäre glaube ich eher der ganze Teil davor.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Zitat von FHarry Beitrag anzeigen
      Hallo zusammen,
      FlashSetAndSaveS16(1,AlarmStatus,0,1,0)
      Sollte nicht beim Makro auch alles s16 sein? Das erste Argument muss hingegen u16 sein, also
      Also eher in der Form
      Code:
      FlashSetAndSaveS16(1u16,AlarmStatus,-10s16,10s16,0s16)
      Das Makro würde ich mal von den Debugmeldungen entschlacken bzw. diese per define ausschalten. Zudem sollten die Zahlen per ^s16 gecastet werden.
      ich geb das mal weiter.
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #4
        Nu denn Uwe,

        du wolltest es so:
        Laufzeitfehler in Zeile:Makro: "FlashSetAndSaveS16" in Zeile [1251] in C:/Program Files (x86)/EibStudio/Makros/Bibliotheken/EnertexCodingWettbewerb.lib
        if systemstart() then { Variable = stringcast( FlashString_S16, Variable, FlashIndex*2u16 ); if Variable < MinValue or Variable > MaxValue then Variable = Preset endif; if Flash_Debug then { write(address(Flash_DebugGA), $FlashStringread$c14); write(address(Flash_DebugGA), $IDX $c14+convert(FlashIndex, $$c14)+$,$c14+convert(Variable,$$c14)) } endif} endif ==> if systemstart() then { AlarmStatus = stringcast( FlashString_S16, AlarmStatus, 1u16*2u16 ); if AlarmStatus < 0s16 or AlarmStatus > 1s16 then AlarmStatus = 0s16 endif; if Flash_Debug then { write(address(Flash_DebugGA), $FlashStringread$c14); write(address(Flash_DebugGA), $IDX $c14+convert(1u16, $$c14)+$,$c14+convert(AlarmStatus,$$c14)) } endif} endif in der Datei "C:/Program Files (x86)/EibStudio/EibstudioData/tmpApp.txt" in der Datei "C:/Program Files (x86)/EibStudio/EibstudioData/tmpApp.txt"
        String zu lang. Bitte auch Sonderzeichen mit Speicherbedarf >1 Byte bedenken. in >$FlashStringread$< in >write(address(Flash_DebugGA)< in >{< in >if_then Flash_Debug< in >AlarmStatus=stringcast(FlashString_S16,AlarmStatu s,1u16*2u16)--Set;if_then AlarmStatus<0s16 or AlarmStatus>1s16 then AlarmStatus=0s16--Set endif ;< in >{< in >if_then systemstart()<
        ID:34
        EibParser wurde mit Fehler beendet.


        Dolle, Zeile 1251 ist eingentlich eine leere Zeile. Selbst wenn man des Informatikers Problem berücksichtigt (+1/-1) ist auch auf 1250 oder 1252 nix aussergewöhnliches.

        Also mal anders gefragt: Sind diese Flash-Makros überhaupt zum Laufen zu bekommen? Selbst mit casten geht da nix.

        Grüße,

        Harry

        Kommentar

        Lädt...
        X