Du musst noch ein paar Skripte modifizieren. Siehe https://github.com/BoschSensortec/BSEC-Arduino-library
Ankündigung
Einklappen
Keine Ankündigung bisher.
ESP8266 KNX mit ETS
Einklappen
X
-
Hi Thomas,
ich kam mal wieder dazu, was zu machen und hab nen pull von Deinem Stack gemacht. Ich denke, das ist einfach nur ein Tippfehler, aber ich bekomme ein Warning bei
Code:#define DPT_UElCurrent?A_Z Dpt(203, 13)
Code:#define DPT_UElCurrent_Z Dpt(203, 13)
.
Nur als Feedback... wenn Du willst, kann ich das auch in einen Pull-Request packen.
Gruß, Waldemar
Kommentar
-
Hi,
ich bekomme seit dem letzten Pull (also mit dem aktuellen github-Stand vom Stack) keine Applikation mehr auf den SAMD übertragen (mit der ETS). PA programmieren läuft noch. Ich bin noch am weiter analysieren, wollte nur fragen, ob sonst noch jemand das Problem hat.
Dass es an meinem Coding liegt, kann ich ausschließen, da es sofort wieder funktioniert hat, wenn ich einfach nur die knx-library ausgetauscht habe. Ich melde mich, sobald ich das Problem besser eingekreist habe.
Gruß, Waldemar
Kommentar
-
Hi Bernator,
yepp, Dein Pull-Request repariert das wieder (ich habe die Sachen mal testhalber übernommen). Schön, wenn es gleich immer Lösungen zu gefundenen Problemen gibt. Danke, ich hätte das nicht gefunden.
thesing: Du hast ein change drin mit dem Namen "fix connect", der ist meiner Meinung nach fehlerhaft bzw. ich bin mir nicht sicher. Derzeit wirkt sich das nicht aus, erst wenn ich meinen pull-Request mit "restartDevice" mache (sorry, dass das so lange dauert, ich teste immer noch verschiedene Geräte).
Dein change:
Code:void ApplicationLayer::connectConfirm(uint16_t destination, uint16_t tsap, bool status) { if (status) _connectedTsap = tsap; else _connectedTsap = -1; }
Code:void TransportLayer::A13(uint16_t destination) { _applicationLayer.connectConfirm(destination, 0, true); }
Ich wollte nur Feedback geben, auf jeden Fall wird mein pull-Request diese Stelle auch behandeln...
Gruß, Waldemar
Kommentar
-
mumpf Das ist schon richtig so. Der tsap ist in dem Fall nicht die Zieladresse, sondert die Verbindungsnummer, die vorher aufgebaut wurde. Da das aktuelle Transportlayer nur eine Verbindung auf einmal kann, ist der tsap 0, wenn es eine Verbindung gibt, und -1 sonst.
Theoretisch könnte auch ein negatives confirm kommen, wenn es beim Senden einen Fehler gibt. Ggf. fehlt das.
VG ThomasZuletzt geändert von thesing; 09.09.2019, 18:23.
Kommentar
-
Danke für die Rückmeldung, dann passe ich mal mein Coding entsprechend an und teste mal weiter mit restart...
Zum negativen confirm: Soweit ich die Spec noch in Erinnerung habe (Ich habe nicht alles gelesen, von dem Gelesenen nicht alles verstanden und von dem Verstandenen wahrscheinlich einiges falsch verstanden), wird ein Connect nicht bestätigt bzw. man muss auf keine Bestätigung warten, deswegen gibt es auch kein "negatives confirm". Deswegen liest die ETS (und inzwischen hab ich das auch bei anderen Geräten, die ein connect machen, beobachtet) gleich den DeviceDescriptior hinterher. Wenn da ne Antwort kommt, weiß man, dass der Connect geklappt hat. Du hast auch den Connect so implementiert, ich hab mich mal durch die StateEngine durchdebugged und nach A12 wird mehr oder weniger gleich auch die A13 und somit immer ein positiver connectConfirm aufgerufen.
Ich wolle damit nur sagen, dass man gar nicht auf if (status) abfragen müsste, das Ding wird wohl nie mit "false" aufgerufen...
Gruß, Waldemar
Kommentar
-
Hallo,
ich versuche gerade den bme680 wieder zu beleben.
Du benutzt ja die 1.4.7.3. Bisher benutzte ich die 1.4.7.1.
Die .3 gibt es nicht mehr zum Download. Also habe ich auf die .4 Aktualisiert. Das lief nicht mit meiner älteren Arduino IDE.
Also die auch neu installiert. Nochmal durch die Installations-Hölle der BSEC-Lib. Beispiel-Sketch der BSEC-Lib kompiliert.
Aber dein BSEC-Sketch nicht. Da haben die also wieder an der Syntax gefummelt. Das ist echt unschön (nicht von dir, von denen). Ich frage mich was das soll. Die könnten die API doch echt mal stabil halten, zumindest wenn sich die vierte Nachkommastelle ändert...
Code:H:\HeimNetzwerk\espknx\BME680\knx-bme680\knx-bme680.ino: In function 'void loop()': knx-bme680:139:43: error: 'class Bsec' has no member named 'iaq' output += ", " + String(iaqSensor.iaq);
Gruß,
Hendrik
Kommentar
-
Moin zusammen,
auf die Gefahr, das es hier nicht so gut hinpasst (dann bitte Hinweis, ob ich einen neuen Thread aufmachen soll): Ich habe das CreateKnxProd von thesing versucht in eine Bibliothek zu migrieren. Hintergrund ist, dass ich auf dem Mac entwickele und eine WPF-Applikation dort nicht läuft und ich ohnehin lieber eine Kommandozeilenversion nutzen möchte. Ihr findet das Ergebnis meiner Bemühungen unter https://github.com/metaneutrons/KnxProd. Die Bibliothek nutze ich selber für mein Kommandozeilen-Tool mknx, welches unter https://github.com/metaneutrons/mknx verfügbar ist.
Wer Lust hat das zu testen, klont am besten beide Repos und erzeugt eine übergeordnete Solution in die man dann beide Projekte lädt.
Ich muss einräumen, dass ich aller andere als ein C#-Experte bin; das Erstellen/Bearbeiten der XML-Dateien funktioniert bei mir jedoch tadellos.
Ein Problem gibt es aktuell noch beim Erstellen der knxprod-Datei. Dort erhalten ich aus dem Invoke der Knx.Ets.Converter-Dlls folgenden Fehler:
Code:System.TypeInitializationException: The type initializer for 'Knx.Ets.Converter.ConverterEngine.ConvertBase' threw an exception. ---> System.NotSupportedException: No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. at System.Text.Encoding.GetEncoding(Int32 codepage) at Knx.Ets.Converter.ConverterEngine.ConvertBase..cctor()
Pull-Requests sind jederzeit hochwillkommen!
Herzliche Grüße, Fabian
Kommentar
-
Hi Fabian,
über das Problem bin ich auch schon gestolpert, ist einfach zu lösen... ich habe folgendes Statement gefunden gehabt:
It turns out that some “exotic” encodings (including popular Windows-1252) are defined in separate NuGet package and these encodings are not available by default.
Solution is simple. Add System.Text.Encoding.CodePages NuGet package to solution and use the following piece of code in application startup class to registester new encodings.Code:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Gruß, Waldemar
Kommentar
-
Moin zusammen!
Danke mumpf für den Hinweis mit dem Encoding. Läuft jetzt bei mir. Leider ist im NetCore die Cryptographie offenbar noch nicht vollständig implementiert. Da gibt es derzeit den nächsten Fehler. Ich schaue mir das die Tage an.
@thesing: Ja, da stimme ich Dir zu. Ich habe mir bereits https://avaloniaui.net angeschaut. Hast Du Erfahrungen mit einem Cross-Plattform GUI Toolkit unter C#? Ich habe leider überhaupt keine Erfahrungen mit GUI-Apps unter C# - egal welches GUI Framework. Die Funktionalität für das Bearbeiten der XML-Dateien in eine Bibliothek zu verlagern schien mir aber ein sinnvoller Zwischenschritt zu sein. Würdest Du eine Weiterarbeit an CreateKnxProd als Monolith bevorzugen?
Herzliche Grüße, Fabian
Kommentar
-
Hi,
was ist denn der Fehler? Ich bin auch über einige Fallen gestolpert und hab sie alle lösen können - die letzte dann allerdings nur, indem ich auf core3.0-beta gegangen bin.
thesing: Ich habe leider auch keine Erfahrungen mit GUI unter netcore, aber man könnte das ja mit der Idee von Fabian verbinden: Es gibt eine Library, die das Management der xml-Files übernimmt und verschiedene Frontends: ein Kommandozeilen-Tool und ein GUI-Tool. Ich könnte mal schauen, was von meinem Kommandozeilen-Tool auszugliedern wäre, um das bei Fabian mit aufzunehmen, ich habe inzwischen einige "Sanity-Checks" gemacht.
Ich wäre z.B. viel mehr dran interessiert, die resultierenden XML-Files, die als input für den ETS-Converter dienen, über einen Präprozessor zu erzeugen, der á la XInclude wiederverwendbare Teile nutzen kann (ParameterTypes sind dafür ein Kandidat, aber auch ganze paramter-Bereichte). Und dann an einer Template-Engine, die sich wiederholende XML-Blöcke generiert. Und dann noch an einem Headerfile-Generator...
An sich habe ich die obigen Teile schon, aber eher "verwoben" in einem Tool, dass wohl kein anderer auf der Welt nutzen könnte.
Ein GUI-Tool werde ich wohl nicht benutzen und bin deswegen eher weniger daran interessiert, sorry.
Gruß, Waldemar
Kommentar
-
Ohne GUI ist die Funktion doch eigentlich nur: Ids erzeugen und Datei signieren. Das ist so wenig Code, es sich nicht lohnt das aufzuspalten. Eine Kommandozeile würde ich nicht zum vollständigen Erstellen nutzen wollen. Das avaloniaui sollte man relativ leicht einbauen können. Ich habe damit aber noch nicht gearbeitet.
Prinzipiell ist mein Fokus aber auch eher auf der Geräteseite. Die GUI ist nur ein notwendiges Übel.
VG
Thomas
Kommentar
Kommentar