[vz-dev] Erweiterung Ausgabemodule

Kai Krueger kai.krueger at itwm.fraunhofer.de
Mon Feb 20 15:28:15 CET 2012


Hallo Steffen,

> Am Mittwoch, den 08.02.2012, 07:48 +0100 schrieb Kai Krueger:
>> Allerdings moechten wir gerne den vzlogger nutzen, um die Daten an den
>> MySmartGrid Server zu uebertragen. Habt Ihr darueber nachgedacht, die
>> Logger-API konfigurierbar zu machen, bzw besteht Interesse daran?
>
> Klar, ursprünglich hatte ich vzlogger nur für volkszaehler programmiert.
> Da es aber bisher kein vergleichbares Tool zum Auslesen von Stromzählern
> gibt, möchte ich die Entwicklung hier etwas allgemeiner ausrichten.
>
> Meine kleine ToDo-Liste für vzlogger:
>
> - flexible Ausgabemodule
>   - Flukso-API
>   - vz.org-API
>   - Google-API (existiert die eigentlich noch?)
>   - Dateiausgabe
>   - Syslog
>   - rrdtool
>   - Datenbanken (sqlite, mysql, pqsql)
  Nachdem ich mir den Teil ein bischen naeher angesehen habe, wuerde
ich die obige Erweiterungen in der "channel"-Definition unterbringen.

   Sofern man bei C bleibt waere die Implementierung analog zu den
"meter_details" (Protokollen) bei den Zaehlern.
   Wuerde man auf C++ wechseln, koennte man statt der union eine Metaklasse
nutzen, in deren Ableitung dann die Implementierung gemacht wird. Dies
haette den Vorteil, dasz die spaetere Pflege des Codes leichter wird.


Von unserer Seite wuerde ich somit folgende Methoden vorsehen:

class msg_api_t {
  void init(api);
  void cleanup();
  void parse_exception(std::string &resp, std::string error_msg);
  std::string create_json_message(buffer_t *buf, reading_t *first,
reading_t *last);
  int  send_message(std::string &json_str)
  std::string &get_response()
}

Damit halte ich auch gleich den ganzen Teil der mit dem Transportlayer
(curl) zu tun hat aus dem Ausgabemodul raus.


Da das Mysmartgrid Protokoll neben den Messwertpakete, noch weitere
Pakete vorsieht, habe ich das erzeugen des Messwertepakete und das
Senden in 2 getrennte Aktionen geteilt. Wie ich das Lebenszeichen
unterbringe muss ich mir noch ueberlege.

> PS: ich tendiere auch gerade dazu einige Teile des Codes nach C++ zu
> portieren. Das erleichtert das Warten des Codes einfach. Bereits jetzt
> ist vzlogger sehr objektorientiert in C programmiert (murks)
C++ wuerde sicherlich die eine oder andere (z.B.
Ausgabemodul-Implementieren) erheblich leichter machen.

Viele Gruesse,
Kai



More information about the volkszaehler-dev mailing list