Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Du machst mich fertig... Wenn ich das so auf die schnelle rictig sehe, dann nutzen wir seit rund 2 jahren für GA und IA die jeweils falschen byte-macros für die Umrechnung...
*facepalm* Wie konnte sowas passieren?
Ich werde mir das für beta5 nochmal genauer ansehen und ggf. korrigieren.
Damit "könnte" es sein, dass ich auch die Programmier-GA auf 31/7/255 ändere... mal schauen.
Die Zentral-Gruppenadressen werden in der Regel mit der Hauptgruppe 0 bzw. 14 oder 15 versehen. Total können bis 32 Hauptgruppen (0–31) vergeben werden. Eventuelle Einschränkungen bei Linienkoppler, Bereichskoppler, PlugIns, Visualisierungen und Gateways sind zu berücksichtigen.
Fakt ist: SirSydom hat recht. Habs eben in der ETS auch mal praktisch ausprobiert...
GA's kannst du ohne weiteres bis 31/7/255 anlegen...
Wenn man einen LK hat der das nicht mitmacht: Dann ist das nicht das Problem von KONNEKTING, sondern von dem, der seine GAs nicht passend zu seinem Equipment vergibt.
Hm ich würde es vielleicht doch lassen, da es dann absolut sicher ist. Jemand der mehr braucht, darf die >15 gerne nutzen.
Da sich bis jetzt erst einer gemeldet hat *g* ist das wohl nicht geläufig und ich muss gestehen, ich wusste das auch nicht :-) bei den Beispielen im Internet findet man eigentlich nur Hauptgruppe 15max als Wert.
Bei den zweifach gegliederten GA gibt es auch nur 15 Hauptgruppen oder ?
Also den Support für 32 Hauptgruppen sollten wir reinnehmen... ob ich die Prog-GA ändere... weiß ich noch nicht. Ich werde da mal schauen wie das mit LKs ist... Wenn wir nämlich nicht mehr über einen LK hinweg programmieren können, weil die Prog GA auf der Hauptgruppe 31 sitzt wäre das in der Tat doof.
Allerdings ist es auch doof "irgendwo in der Mitte" eine unbenutzbare GA (weil Prog GA) zu haben...
sollten die GA ohne Adress-Zuweisung in der Suite nicht als aktive=false gekennzeichnet werden? Oder muss ich dies in der xml von Hand machen,.. bei mir sind alle aktive=true,..
irgendwie kommt bei mir der Sortier- und Suchalgoritmus im KnxTpUart.cpp durcheinander, sodass ich nicht auf allen benützen CommObjecten
ein knxEvents() bekomme.. je nachdem ob ich ein paar Adress-Zuweisungen in der Suite dazu oder wegnehme werden bestimme Adressen nicht von KnxTpUart::IsAddressAssigned gefunden..
in der _orderedIndexTable sind alle CommObjecten wiederholt d.h. Doppelt-und Dreifach vorhanden,.. und so kommt die Suche oft zu keinen Ergenis:
Zykluszeit vom Loop (ohne Event) liegt derzeit bei ca. 30-40µs (SAMD21-Controller)
244CommObjekte davon derzeit nur 68 mit Zugewiesener Adresse.. alle 244 CommObjekte sind in der xml aber als aktive=true!
Grundsätzlich: Finger weg von der XML. Es gibt, außer du bist KONNEKTING-Entwickler und probierst was neues, keinen Grund in der XML von Hand etwas einzutragen oder umzustellen. Wenn etwas nicht so funktioniert wie es vllt. sein soll, dann ist es allem anschein nach ein Bug.
Mir ist aktuell kein Szenario bekannt, wo _alle_ mit einem active=true versehen sind, ohne dass es eine passende GA dazu gibt. Hab eben den Code dazu nochmal durchgeschaut... Kein anderweitiges Szenario gefunden.
Ich weiß nicht ob du da schon selbst am Werk warst, aber ausschließen kann ich es nicht. Vor allem nicht, da du an der XML ja offenbar selbst Hand anlegen möchtest.
Am besten du fängst mit einer ".kdevice.xml" (die hat keinen Konfigurationsabschnitt) von vorne an und beobachtest das ganze.
Zu deinem zweiten Problem:
Ist das eher generell so, oder ist das ein vermeintlicher Folgefehler? Wenn der Arduino ein KO als Aktiv genannt bekommt, aber keine vernünftige GA dafür hat, dann kann da schon einiges schief gehen.
Notiz an mich selbst:
Ich werde wohl noch eine Prüfsumme oder dergleichen in die XML einbauen müssen, damit die Suite dem Anwender "Abweichungen" die nicht Suite-verursacht sind gleich melden kann.
P.S.
244KOs... das ist immens viel. Bedenke dass wir noch im Beta-Stadium sind es noch nicht ausdiskutiert ist, wie weiter mit (vielen) KOs verfahren wird.
Hab mich etwas zu sehr von der Config verleiten lassen. Da ist das active/inaktiv Flag etwas anders in der Semantik als beim tatsächlichen Programmieren. Dort zählt nämlich ob eine GA überhaupt gesetzt ist.
Lass mir doch mal ein Log zukommen in dem du das Gerät programmierst. Am besten in der Debug-Variante.
natürlich habe ich auch in der XML "gebastelt", ich sehe darin auch den Sinn einer XML?
244KOs... das ist immens viel.
ich benötige bei weitem nicht alle davon..
für jeden Raum welche das Gateway beleuchten können soll, benötige ich derzeit min 6KO's - bei 15 Räumen macht das 90KO's aus, wobei die 6KO für alle Räume gleich sind.
Die KO sind pro Raum gleich, wiederholen sich also nur 15mal (mit unterschiedlichen GA natürlich) im XML mit unterschiedlichen Namen und ID.
Damit ich beim späteren Einfügen von KO's für eine der 15 Gruppen nicht die ganze ID's ändern / verschieben bzw neu eintippen muss, habe ich für jeden Raum "ein paar" unbenützte Reserve KO's dazwischen vergeben, um eine gleichbleibende sich wiederholende Struktur in die CommObj-Liste zu bekommen,.. 6 benötigt + 9 Reserve = 15KO/je Raum
Zuzüglich ein paar KO's für Zentrale-Bedinung,. so komme ich derzeit eben auf 244KO wovon derzeit 68KO auch eine gültige GA zugewiesen haben.
zum eigentlichen Problem:
die _orderedIndexTable im KnxTpUart.cpp hat nach dem Sortieren 244 Index-Einträge, obwohl nur 68KO eine GA haben, also ist jede ID 3 mal in der _orderedIndexTable vorhanden.
Der Suchalgorithmus im KnxTpUart::IsAddressAssigned findet daraufhin einiger der Adressen in der Tabelle nicht, obwohl diese in der Tabelle sind. Ich vermute es hängt mit den auskommentierten Zeilen zusammen, kann es aber erst am Abend testen..
Code:
/*
* Removed duplicate check: GAs are initialized as "active=false", so they are not used.
* As soon as an address is set (only done on startup when reading user-settings from eeprom)
* the flag is set to "active=true" and ComObj is able to communicate.
*
* If device starts with factory settings, all ComObjs have *no* GA, which leads to "duplicates"
* if this check is enabled.
*
* Also it makes no sense to check for duplicates, as it is quite a use-case to have
* multiple ComObjs with same GA
*/
// Deduct the duplicate addresses
// for (byte i = 0; i < listSize; i++) {
// if (!IS_COM(i)) continue;
// for (byte j = 0; j < listSize; j++) {
// if ((i != j) && (ADDR(j) == ADDR(i)) && (IS_COM(j))) { // duplicate address found
// if (j < i) break; // duplicate address already treated
// else {
// _assignedComObjectsNb--;
// DEBUG_PRINTLN(F("AttachComObjectsList : warning : duplicate address found! i=%d:0x%04x j=%d:0x%04x"), i, j, ADDR(i), ADDR(j));
// }
// }
// }
// }
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar