freebus.org

Open Bus System
Aktuelle Zeit: 15. Juni 2015 14:48

Alle Zeiten sind UTC + 2 Stunden




Ein neues Thema erstellen Auf das Thema antworten  [ 39 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 14. März 2013 19:40 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Hallo,
wenn ich versuche die Firmware zu übersetzen, bekomme ich eine menge Fehlermeldungen.
(AVR Studio6, RF-Board, Mega 168p oder 328p)
Die ersten beiden "APPLICATION_RUN_STATUS' undeclared here (not in a function)" und "MANUFACTORER_ADR' undeclared here (not in a function)" bekomme ich ja noch geradegebogen.
Aber spätestens bei "struct grp_addr_s' has no member named 'ga' " ist schluß.
Muss ich da noch irgendwelche libs mit einbinden?
Was mache ich falsch?

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 14. März 2013 21:12 
Offline
Expert Boarder
Expert Boarder

Registriert: 18. Juli 2007 10:38
Beiträge: 112
uwe223 hat geschrieben:
Hallo,
wenn ich versuche die Firmware zu übersetzen, bekomme ich eine menge Fehlermeldungen.
.....
Was mache ich falsch?


Hallo Uwe,

du machst überhaupt nichts falsch.
Die Applikation für den 10V Analogeingang ist noch nicht auf die neue lib umgestellt. Dies ist auch nicht mit ein paar Zeilen zu erledigen.

Mit der neue Lib habe ich einen ganz anderen Ansatz gewählt. Hier werden nicht mehr Gruppenadressen in der Applikation behandelt sondern generisch in der Lib.
D.h. die Applikation braucht sich nicht um die Gruppenadressen / Flags der Kommunikationsobjekte zu kümmern. Stattdessen bedient die Applikation direkt die Kommunikationsobjekte und kennt eigentlich überhaupt keine Gruppenadressen.

Wenn du den 10V- Analogeingang nutzen möchtest musst du entweder die alte Version verwenden oder du hilfst bei der Anpassung auf die neue Lib.

Dirk


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 17. März 2013 13:49 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Hallo Dirk,

jetzt wird mir schon einiges klarer. Ich weiß nicht ob ich bei der Umstellung auf die neue lib helfen kann, denke dazu reichen meine C-Kenntnisse noch nicht aus.
Ich habe mal von der App8-in aus alles imho "Unnütze" rausgelöscht um zu verstehen wie das funktioniert.
Code:
#include "fbTestprojekt.h"

uint8_t nodeParam[EEPROM_SIZE];           /**< parameterstructure (RAM) */
//extern uint8_t userram[USERRAM_SIZE];
//static enum states_e app_state;

void app_loop() {
 } /* app_loop()

uint8_t restartApplication(void) {
 return FB_ACK;
}

Geht prima, es lässt sich als Binäreingang Programmieren, ich kann alle Objekte auslesen und mit SetandTransmitBit() auch Telegramme senden.
Das ist ja super gelöst, für einen App-Programierer wirklich sehr komfortabel.
Jetzt in der Headerdatei COMMSTAB_ADDRESS, SOFTWARE_VERSION_NUMBER, MANUFACTORER_ADR und DEVICE_NUMBER angepasst und zack war’s ein 8-fach Aktor, prima, war einfach.
Nun mal den ain10V probiert: COMMSTAB_ADDRESS=0x3A, SOFTWARE_VERSION_NUMBER=0x01, MANUFACTORER_ADR=0x0004, DEVICE_NUMBER=0xB003
Das lässt sich zwar per ETS Parametrieren, ich kann aber keine Objekte lesen und SetandTransmitBit() lässt das ganze verm. abstürzen(Prog.Led bleibt nicht an).
Was ist falsch und wie könnte ich dann einen 8- bzw. 16-Bit Wert senden?

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 17. März 2013 15:18 
Offline
Expert Boarder
Expert Boarder

Registriert: 18. Juli 2007 10:38
Beiträge: 112
uwe223 hat geschrieben:
SetandTransmitBit() lässt das ganze verm. abstürzen(Prog.Led bleibt nicht an).
Was ist falsch und wie könnte ich dann einen 8- bzw. 16-Bit Wert senden?


Hallo Uwe,

SetandTransmitBit() kann hier nicht funktionieren. Damit kannst du nur ein Bit verändern / übertragen. Deshalb auch der Name ...Bit().
Trotzdem dürfte die Funktion nicht abstürzen sondern einfach ohne Auswirkung zurückkehren. Intern wird geprüft ob der Datentyp zu dem Kommunikationsobjekt passt.

Für 8-16 Bit Werte oder noch mehr brauchst du SetAndTransmitObject().
SetAndTransmitBit() ist eigentlich nur ein shortcut für ein Bit. Siehe auch folgenden Code Auszug.

Code:
/**
* Copies 1 bit to object data and transmits the object specified by objectNr
*
*/
void SetAndTransmitBit(uint8_t objectNr, uint8_t value) {
    SetAndTransmitObject(objectNr, &value, 0);
}

/**
* Copies "len" bytes from "src" to the object data and transmits the
* object specified by "objectNr".
*
*/
void SetAndTransmitObject(uint8_t objectNr, void* src, uint8_t len)
{
    UpdateDat2Obj(src, len, objectNr);
    SendObjNr(objectNr);
}


Bei Werten > 8 bit musst du dann aufpassen wegen dem Format. Die Kommunikationsobjekte erwarten die Daten immer im nativen KNX Format. D.h. du müsstet vorher selber die Zahlenformate konvertieren.

Gruß
Dirk


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 17. März 2013 18:42 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Aha ok Danke.
Aber ich sollte ja wenigstens bei leerer app_loop schonmal die Objekte bei entspr. gesetzten Flags per ETS auslesen können, was ja auch bei meinen 8-in, 8-out Versuchen geklappt hat. Deshalb mus ja noch was anderes faul sein.
Hier nochmal meine gekürzte Headerdatei:
Code:
#ifndef _FB_TEST_AIN10V_H
#define _FB_TEST_AIN10V_H

#ifdef _FB_TEST_AIN10V_C
#define APP_EXT
#else
#define APP_EXT    extern
#endif

#include "fb_prot.h"
#include "fb_app.h"

const STRUCT_DEFPARAM defaultParam[] PROGMEM = {
{ SOFTWARE_VERSION_NUMBER,      0x01 },    /**< version number                               */
{ RUN_ERROR_STATUS,             0xFF },    /**< Error-Status (FF=no error)                   */
{ COMMSTAB_ADDRESS,             0x3A },    /**< COMMSTAB Pointer                             */
{ MANUFACTORER_ADR_HIGH,        0x00 },    /**< Herstellercode                            */
{ MANUFACTORER_ADR_LOW,         0x08 },    /**< Herstellercode                           */
{ DEVICE_NUMBER_HIGH,           0xB0 },    /**< device type                */
{ DEVICE_NUMBER_LOW,            0x03 },    /**<                                              */
{ 0xFF,                         0xFF }     /**< END-sign; do not change                      */
};

const struct FBAppInfo AppInfo PROGMEM = {
    .FBApiVersion = 0x01,
    .pParam = defaultParam,
};

#endif

Vielleicht springt ja jemanden von den C-Experten gleich ins Auge was da nicht stimmt. Eventuell die Commstab_Address 0x3A, das hab ich einfach aus der ain10V.h übernommen, weiß aber nicht wie man eigentlich auf diesen Wert kommt und ob das so stimmt.

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 17. März 2013 20:59 
Offline
Expert Boarder
Expert Boarder

Registriert: 18. Juli 2007 10:38
Beiträge: 112
uwe223 hat geschrieben:
Hier nochmal meine gekürzte Headerdatei:

Vielleicht springt ja jemanden von den C-Experten gleich ins Auge was da nicht stimmt. Eventuell die Commstab_Address 0x3A, das hab ich einfach aus der ain10V.h übernommen, weiß aber nicht wie man eigentlich auf diesen Wert kommt und ob das so stimmt.


Hallo Uwe,
so auf den ersten Blick sieht das gut aus. Habe keine Idee warum es nicht gehen sollte.
Commstab_Address 0x3A ist auch korrekt, das steht in der vd Datei.

Wenn du ein übersetzbares Projekt hast, könnte ich versuchen zu debuggen warum es nicht geht. Zumindest *.c und *.h sollten reichen.

Gruß
Dirk


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 18. März 2013 20:34 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Hallo Dirk,

ich hab dir gestern mal noch das Projekt gemailt, und nach dem Hinweis mit der vd Datei mich mal damit beschäftigt.
Also mal die vd vom Dimmer genommen und die entspr. Werte rausgesucht, damit hat es sofort geklappt, ich kann alle Objekte des Dimmers auslesen.
Nur der ain10V mag nicht.

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 19. März 2013 00:14 
Offline
Expert Boarder
Expert Boarder

Registriert: 18. Juli 2007 10:38
Beiträge: 112
uwe223 hat geschrieben:
ich hab dir gestern mal noch das Projekt gemailt, und nach dem Hinweis mit der vd Datei mich mal damit beschäftigt.
..
Nur der ain10V mag nicht.

Ja,
habe ich bekommen. Ich bräuchte nur nocht etwas mehr Zeit. Eine Kleinigkeit habe ich aber schon gefunden, aber das erklärt nicht alles.


Dirk


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 21. März 2013 18:49 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
So, falls hier jemand mitliest, das Problem ist gelöst.
An der neuen lib lag es nicht, Dirk hat festgestellt das ein Parameter im EEPROM fehlte.
Der Zeiger auf die Assoziationstabelle wird normalerweise von der ETS beim programmieren mit übertragen.
Bei dieser Applikation nicht, deshalb muß unter:
const STRUCT_DEFPARAM defaultParam[] PROGMEM = {
noch diese Zeile eingefügt werden:
{ ASSOCTABPTR, 0x29 }, /**< ASSOCTAB Pointer */

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 21. März 2013 19:25 
Offline
Expert Boarder
Expert Boarder

Registriert: 23. Juli 2009 15:16
Beiträge: 126
Wohnort: Hemmoor
Hallo,

das ist so nicht ganz richtig. Die ETS schreibt das schon mit, nur muss dort auch angewählt werden das Applikationsprogramm zu schreiben. Zuerst die PA und dann nur Parameter und Gruppenadressen reichen hier nicht aus.

erich73


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 21. März 2013 19:41 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Oh, wieder was gelernt.
Da scheint das aber die einzige Applikation zu sein, ich hab im ganzen Haus nur Parameter/Gruppenadressen programmiert.
Gerade noch mal bei der Dimmer Applikation geschaut, da wird "Adresse:0111 Daten:$29" mit übertragen.

Gruß
Uwe


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 21. März 2013 21:13 
Offline
Expert Boarder
Expert Boarder

Registriert: 23. Juli 2009 15:16
Beiträge: 126
Wohnort: Hemmoor
Hallo Uwe,

das hängt damit zusammen wie die Tabellen verwaltet werden. Beim Analog_In ist die statisch (also in diesem Fall für 8GA + 8Zuordnungen), bei den Anderen wird die Größe dynamisch, je nach Anzahl der tatsächlich parametrierten GA+Zuordnungen, festgelegt.

erich73


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 30. März 2013 13:36 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
So, ich hab mich jetzt mal an der Software versucht und sie an die neue lib angepasst.
Ich habe sie mit dem Mega328P und dem RF-Board getestet, und hoffe mal das alles halbwegs funktioniert.
Hier ist sie zu finden.

Gruß
Uwe

p.s. nicht wundern wenn der Code an manchen Stellen etwas komisch aussieht, ich übe noch.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 1. April 2013 15:50 
Offline
Administrator
Administrator

Registriert: 15. September 2007 15:31
Beiträge: 702
Wohnort: Fürstenfeldbruck
Vielen Dank Uwe für Deine Mühe. Bin sehr glücklich, dass du mit der neuen Lib ganz gut zurecht kommst.
Ich hoffe die Bedienung ist einfach, falls du Verbesserungsvorschläge hast, kannst du dich jederzeit bei mir melden.

Ich habe nur eine Bitte (das betrifft alle Entwickler):
Legt bitte keine neuen Dateinamen an um darzustellen das es sich um neuen Code handelt oder das er neue Funktionen hat. Ändert einfach die alte Datei und schreibt das beim Commit ind die Commitmeldung mit rein. Somit kann es jeder in den Commitmeldungen lesen.
Falls es komplett experimenteller Code ist, der noch nicht funktioniert, könnte ihr auch einen neuen Branch anlegen und eure Änderungen dort machen. Diesen kann man dann später einfach in den Master Branch wieder zurück mergen.

Das hat den enormen Vorteil, das jede Änderungen auf dem Dateinamen nachvollziehbar bleibt und wenn es mal ein Problem geben sollte, ist es leichter herauszufinden welche Zeile das Problem verursachen könnte. Und jeder baut mal den ein oder anderen Bug ein ;)
(falls ihr das nachlesen wollt, kann ich das Kapitel Branches udn Tags hier sehr empfehlen: http://git-scm.com/book/de)

Wünsche Euch allen noch wunderschöne Osterfeiertage.

_________________
Gruß
Matthias


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: 10V-Analogeingang
BeitragVerfasst: 1. April 2013 18:23 
Offline
Expert Boarder
Expert Boarder

Registriert: 16. Juni 2008 20:11
Beiträge: 90
Hallo Matthias,

ich habe mich nicht getraut den Code von jemand anderem mit meinem Machwerk zu überpinseln :roll: .
Werd mich aber in Zukunft daran halten.
Vielleicht kannst du ja den Link mit in deine Git-Anleitung aufnehmen.

Ja die neue lib ist wirklich recht einfach zu benutzen. Ich kann nur allen interessierten empfehlen sich einmal damit zu beschäftigen.
Man kann damit wirklich einfach eine freebus Applikation erstellen ohne sich um die Kommunikation mit der ETS oder um Gruppenadressen kümmern zu müssen.
Alles was man braucht sind die Objektnummern aus der ETS und die Adressen der Parameter im EEPROM, welche einem mit diesem Tool auf dem Silbertablett serviert werden.
Toll ist auch die Benutzung der Timer z.B. für das zykl. Senden gelöst. Einfach einen der zahlreich (wie viele eigentlich, ich hab hier 12 gebraucht) vorhandenen Timer anfordern, Zeit einstellen und bei Gelegenheit nachschauen ob er abgelaufen ist.
Einfacher geht’s wirklich nicht.
Also alle die gerne eine App nach ihren Wünschen hätten, probiert es aus.

Gruß
Uwe


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 39 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste

Alle Zeiten sind UTC + 2 Stunden


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de