123
Fork of Ventiel by
ventiel.cpp
- Committer:
- Sven3010
- Date:
- 2014-09-07
- Revision:
- 4:0b90e095f3b7
- Parent:
- 3:0a998c16eead
File content as of revision 4:0b90e095f3b7:
#include "MODSERIAL.h" #include "ventiel.h" extern Serial pc; // definiert in main extern Serial com; //extern MODSERIAL com; // definiert in main //-------------------------------------------------------- // Construktor initialisiert das Ventiel ventiel::ventiel() { v_var = 0; } void ventiel::set(uint8_t val) { uint8_t wert1 = 0; //pc.printf("\nmagnet.set alt = %02x parmeter = %d",v_var,val); if (val < 8) { // interne Variabel setzen wert1 = (1 << val); v_var |= wert1; } else { // alle Ventile auf 1 setzen v_var = 0xff; } pc.printf("\nmagnet.set neu = %02x verknuepfung = %02x\n",v_var,wert1); // Alle Kanäle ausschalten //com.putc('9'); // aktive Kanäle einschalten for (uint8_t n = 0; n < 8; n++) { if ((v_var & (1 << n)) != 0) { char ch = 0x31 + n; //com.putc(ch); //pc.printf("\nZeichenausgabe = %c \n",ch); //wait_ms(10); } } com.printf(":AA0201%02xA5\n",v_var); } void ventiel::toggle(uint8_t val) { uint8_t wert1 = 0; //pc.printf("\nmagnet.toggle alt = %02x parmeter = %d",v_var,val); if (val < 8) { // interne Variabel setzen wert1 = (1 << val); if((v_var & wert1)==0){ v_var |= wert1; }else{ v_var &= ~wert1; } } pc.printf("\nmagnet.toggle neu = %02x verknuepfung = %02x\n",v_var,wert1); // Alle Kanäle ausschalten //com.putc('9'); // aktive Kanäle einschalten for (uint8_t n = 0; n < 8; n++) { if ((v_var & (1 << n)) != 0) { char ch = 0x31 + n; //com.putc(ch); //pc.printf("\nZeichenausgabe = %c \n",ch); //wait_ms(10); } } com.printf(":AA0201%02xA5\n",v_var); } void ventiel::reset(uint8_t val) { uint8_t wert1 = 0; //pc.printf("\nmagnet.reset alt = %02x parameter = %d",v_var,val); if (val < 8) { // interne Variabel setzen wert1 = ~(1 << val); v_var &= wert1; } else { // alle Ventile auf 1 setzen v_var = 0x00; } pc.printf("\nmagnet.reset neu = %02x, verknuepfung = %02x\n",v_var,wert1); // Alle Kanäle ausschalten //com.putc('9'); com.printf(":AA0201%02xA5\n",v_var); // aktive Kanäle einschalten for (uint8_t n = 0; n < 8; n++) { if ((v_var & (1 << n)) != 0) { char ch = 0x31 + n; //com.putc(ch); //pc.printf("\nZeichenausgabe = %c \n",ch); //wait_ms(10); } } } bool ventiel::get(uint8_t val) { if ((v_var & (1 << val)) == 0) return false; else return true; }