Hallo Martin, > Habe das Protokoll vom Oase FM Master (433Mhz ASK) reverse engineered > und dazu die rfm12_ask.c angepasst, leider als absoluter Beginner.
ich wollte deine Änderungen in Ethersex sauber einpflegen, jedoch passt Deine Beschreibung nicht zu Deinen Code. > - Das Protokoll hat ein Bit mehr als 2272=> Array erweitert auf 50. > uint8_t code[50]; In dem Array belegt ein Bit aber zwei Bytes, es müssten also 51 Bytes sein. > - Befehle können nicht mit 3 Bytes übertragen werden. Workaround: > 1Bit "write ahead" dann 3Bytes wie üblich. > //Eine 0 im voraus die immer bleibt, so dass befehl in trotzdem in 3 Byte > übergeben werden kann. > *p++ = pgm_read_byte(duty_factor + 2); > *p++ = pgm_read_byte(duty_factor + 3); Weiter im Code unten: > for (uint8_t i = 1; i < 50; i++) Warum wird das erste Byte des Dutycycles übersprungen? > - Das Protokoll startet mit Low Pegel, d.h. codeArray0 mit Trigger Level 0 > schicken, dann erst Loop. > rfm12_ask_trigger(rfm12_trigger_level = 0, code[0] * delay); rfm12_trigger_level ist bereits mit Null initalisiert Wäre es nicht logischer, rfm12_trigger_level mit Eins zu initialisieren und die Schleife normal von 0-50 zu durchlaufen? > - Die Steckdosen schalten, aber das Net-IO bricht jedesmal die telnet > session ab, sobald es mit dem senden fertig ist. kein OK. Warum das? Du hast das Array zu klein dimensioniert und Ethersex stürzt bei dem Zugriff auf das letzte Element ab. Würdest Du kurzfristig den Code, wenn er denn im Github steht, auf seine Funktion testen? _______________________________________________ Ethersex-devel mailing list Ethersex-devel@list.zerties.org https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel