CUL - Entwicklung > CUL Development

[PATCH] Vereinheitlichung von rf_mode

(1/2) > >>

Matthias Gehre:
Hallo,

Folgendes Problem: Ich bin gerade im rfmode X, möchte kurz etwas auf rfmode Y senden, und dann wieder zurück in den alten rfmode X.
Im Moment ist das für verschiede Kombinationen von X und Y in riesigen 'if's' gelöst.
Angehängter Patch vereinheitlicht alle asksin_on/moritz_on/cc_on/fastrf_on etc in ein cc_rf_mode

typedef enum {
  RF_OFF = 0,
  RF_SLOWRF,
  RF_FASTRF,
  RF_INTERTECHNO,
  RF_ASKSIN,
  RF_MORITZ,
  RF_RWE,
} cc_rf_mode_t;
extern cc_rf_mode_t cc_rf_mode;

Insbesondere ist die Funktion
void ccSetRfMode(cc_rf_mode_t mode);
hinzugekommen. Wenn dieser Patch auf Gegenliebe stößt, dann
wird der nächste Patch das ganze
if(X_on) {
  restore_x = 1;
  x_on = 0;
}
if(Z_on) {
  ...
}
activate_Y()
send_something_on_Y()
if(restore_x) {
  x_init()
  x_on = 1;
} ...

durch

cc_rf_mode_t oldmode = cc_rf_mode;
activate_Y()
send_something_on_Y()
ccSetRfMode(oldmode);

ersetzten.

Da das alle Funkmodule betrifft, würde ich gerne eure Meinung hören.

rudolfkoenig:
Hallo Matthias,

ich finde dein Patch gut, das Umschalten wird dadurch "ordentlicher". Ich bin aber prinzipiell gegen "kurz auf rfmode Y senden", mAn ist der Support-Aufwand unverhaeltnismaessig, und es kann auch die Maintainer der anderen Protokolle betreffen. Dein Patch sollte (falls es getestet ist :) eingecheckt werden, ob man das Feature in fhem oder in der Doku aktiv bewirbt, ist eine andere Baustelle.

Gruss,
  Rudi

tostmann:
Gibt es was Neues zu dieser Idee? Da nunmehr SOMFY und M-Bus hinzugekommen sind wird es immer dringender ...

Matthias Gehre:
Gibt nichts Neues. Hab seit über einem Jahr wieder angefangen, mich etwas mit meiner FHEM Installation zu beschäftigen.
Wenn wir die Idee umsetzen wollen, dann können wir den Patch wie im ersten Beitrag einchecken
(und SOMFY und M-BUS hinzufügen)

thdankert:
Ich finde den Patch ebenfalls klasse - das spart diese leidigen if(rfmode_xyz) im Code.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln