/* * Phytotron * configuration par la console */ /* -------------------------------------------------- */ #include #include #define DEBUG 0 /* -------------------------------------------------- */ /* some interesting macros */ #define prt(a) Serial.print(a) #define prtln(a) Serial.println(a) /* -------------------------------------------------- */ char waitkey(char echo) { char key; while (!Serial.available()); key = Serial.read(); if (echo) Serial.write(key); return key; } /* -------------------------------------------------- */ short readline(char *where, short sz) { char key; short count = 0; for(;;) { /* check for end of buffer */ if (count==sz) { where[count] = '\0'; return -1; } key = waitkey(1); #if DEBUG > 1 prtln((int)key); #endif if ((0x08==key) && count) { /* we have got a backspace */ count--; where[count] = '\0'; #if DEBUG prt("< "); prtln(count); #endif continue; } if ('\r' == key) { prt('\n'); where[count] = '\0'; return count; } where[count++] = key; } /* NOTREACHED */ } /* --------------------------------------------------------------- */ void hexdump(unsigned char *ptr, short nbre) { short foo; for (foo=0; foodelai = value; break; case 'h': param->temp_maxi = value; break; case 'l': param->temp_mini = value; break; default: prtln("GNI ?"); } } /* --------------------------------------------------------------- */ void test_relais(short nb) { short foo; prtln("test du relais frigo"); for (foo=0; foo 1 hexdump((unsigned char *)line, ret); #endif key = *(sptr = strtok(line, " ")); switch(key) { case 'x': flag_exit=1; break; case '?': clihelp(); break; case 'I': init_storage(¶metres); break; case 'd': display_config(¶metres); break; case 'r': read_config(0, ¶metres); break; case 'w': write_config(0, ¶metres); break; case 'h': hexdump((unsigned char *)¶metres, sizeof(Global)); break; case 's': setvalue(line, ¶metres); break; case 'T': test_relais(5); break; case '+': controle_frigo(1); break; case '-': controle_frigo(0); break; default: prtln("gni ?"); break; } } while (!flag_exit); } /* --------------------------------------------------------------- */