freebus.org

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

Alle Zeiten sind UTC + 2 Stunden




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: BUG in AVR 8 Out? Rückmeldeobjekte
BeitragVerfasst: 10. Januar 2012 21:19 
Offline
Gold Boarder
Gold Boarder

Registriert: 12. November 2008 17:22
Beiträge: 232
Wohnort: Alfter
Hallo,

habe heute beim Programmieren meiner neuen MDT Taster durch das nicht funktionieren der
Status LEDs festgestellt, dass der AVR 8Out anscheind keine Rückmeldungen sendet wenn der Kanal eine Zeitfunktion
nutzt.

Ich habe auf einem Aktor alle 8 Kanäle belegt, Jedem Kanal ist eine GA für die Rückmeldung zugewiesen.

Bei den normalen Schaltkanälen kommt die Rückmeldung auch brav. Bei den 3 mit beigefügter Zeitfunktion konfigurierten
Kanälen jedoch nicht. Weder eine Rückmeldung fürs Einschalten noch fürs zeitgesteuerte Ausschalten.


Kann das vielleicht mal jemand überprüfen?

Besteht die Möglichkeit das dies kurzfristig behoben werden kann?

Vielen lieben Dank

Gruß Martin


Dateianhänge:
rm.jpg
rm.jpg [ 48.58 KiB | 683-mal betrachtet ]
Nach oben
 Profil  
 
BeitragVerfasst: 11. Januar 2012 23:19 
Offline
Gold Boarder
Gold Boarder

Registriert: 12. November 2008 17:22
Beiträge: 232
Wohnort: Alfter
Update:

Ich hab das eben mit dem ETS Busmonitor mal Überprüft.

Der AVR sendet wenn die Zeitfunktion Aktiv ist nur eine Rückmeldung für den Abschaltvorgang, Keine fürs Einschalten.

Im gegensatz dazu sendet ein LPC brav beide Rückmeldungen.

Bitte fixt den Bug kurzfristig.

Vielen Dank, gruss Martin


Nach oben
 Profil  
 
BeitragVerfasst: 17. Januar 2012 23:38 
Offline
Gold Boarder
Gold Boarder

Registriert: 12. November 2008 17:22
Beiträge: 232
Wohnort: Alfter
Ok, nachdem ich die Sourcen gefunden hatte hab ich mich selbst ans Werk gemacht.

mit diesem Patch bekomme ich nun auch für alle Statusänderungen Rückmeldungen.

Was noch nicht implementiert ist ist die Überprüfung ob es zu einem Kommunikationsobjekt ein Rückmeldeobjekt gibt.

Gruß Martin

Code:
*** original.c   2012-01-17 22:26:56.000000000 +0100
--- fb_relais_app.c   2012-01-17 22:24:36.866477800 +0100
***************
*** 158,164 ****
              // DEBUG_PUTHEX(portValue);
 
              /* send response telegram to inform other devices that port was switched */
!             sendTelegram(i,(portValue & j)?1:0, 0x0C);
 
              switchObjects();
          }
--- 158,164 ----
              // DEBUG_PUTHEX(portValue);
 
              /* send response telegram to inform other devices that port was switched */
!             //sendTelegram(i,(portValue & j)?1:0, 0x0C); //CommentKrasserMann
 
              switchObjects();
          }
***************
*** 547,557 ****
 
          //** @todo need to check here for respond
          // send response telegram to inform other devices that port was switched
!         sendTelegram(commObjectNumber, data, 0x0C);
      }
      switchObjects();
  }
!
  /**
   * Switch the objects to state in portValue and save value to eeprom if necessary.
   *
--- 547,558 ----
 
          //** @todo need to check here for respond
          // send response telegram to inform other devices that port was switched
!         //sendTelegram(commObjectNumber, data, 0x0C);  //Comment: KrasserMann
      }
      switchObjects();
  }
!
!
  /**
   * Switch the objects to state in portValue and save value to eeprom if necessary.
   *
***************
*** 561,567 ****
      uint16_t initialPortValue;
      uint8_t portOperationMode;  /**< defines if IO is closer or opener, see address 0x01F2 in eeprom */
      uint8_t savedValue;
!     uint8_t i;
 
      DEBUG_PUTS("Sw");
      DEBUG_NEWLINE();
--- 562,570 ----
      uint16_t initialPortValue;
      uint8_t portOperationMode;  /**< defines if IO is closer or opener, see address 0x01F2 in eeprom */
      uint8_t savedValue;
!     uint8_t i;
!    uint8_t pattern;
!
 
      DEBUG_PUTS("Sw");
      DEBUG_NEWLINE();
***************
*** 573,579 ****
 
      /* read saved status and check if it was changed */
      savedValue = mem_ReadByte(0x0100);
!     if(savedValue != portValue) {
          // now check if last status must be saved, we write to eeprom only if necessary
          initialPortValue = ((uint16_t)mem_ReadByte(0x01F7) << 8) | ((uint16_t)mem_ReadByte(0x01F6));
          for(i=0; i<=7; i++) {
--- 576,596 ----
 
      /* read saved status and check if it was changed */
      savedValue = mem_ReadByte(0x0100);
!     if(savedValue != portValue) {
!
!
!       // R�ckmeldungen Senden ( @todo pruefen ob ein r�ckmeldeobjekt besteht)
!       for (i=0;i<8;i++) {
!          pattern=1<<i;
!          if((portValue&pattern)!=(savedValue&pattern)) {
!             sendTelegram(i, (portValue & pattern) ? 1 : 0, 0x0C);
!          }
!          
!       }
!
!
!
!
          // now check if last status must be saved, we write to eeprom only if necessary
          initialPortValue = ((uint16_t)mem_ReadByte(0x01F7) << 8) | ((uint16_t)mem_ReadByte(0x01F6));
          for(i=0; i<=7; i++) {


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 2 Stunden


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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