Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-- soros port kezelése
- while (Serial.available() > 0) { // amíg van a soros port bufferben beolvasható karakter
- char serRead= Serial.read(); // serRead az épp beolvasott karakter
- switch (commandPtr){ // commandPtr az a változó ami a beérkezett karakterek számát számolja.
- case 0: if (serRead== commandStart) { // start karakter, ez a @, így kezdődik minden üzenet amit küld a nanonak.
- commandPtr++;
- serTimeout= millis()+ 100; // a timeout, 100 msec. Ezen belül kell megérkezni az üzenet vége karakternek.
- Serial.println( "START");
- }
- break;
- case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
- // parancsok
- // nullázás ZERO
- // végérték megadás ENDP004000
- // átalagolás száma AVGC30 01..99
- // tizedes pontok DECP2 0..5
- // lepes nagysag LEPS01 01 02 05 10 20 50
- // nyug feltétel NYUG01 01..99 tizedosztás
- if (serRead== commandEnd ) { // commandEnd az üzenet vége karakter
- commandPtr= 0;
- serTimeout= 0;
- if (strncmp( command, "ZERO", 4)== 0){ // ha a command, vagyis a beolvasott üzenet a ZERO string
- if (strlen( command)== 4){
- zeroAd= avgAd;
- Serial.print( "ZERO: ");
- Serial.println( avgAd);
- EEPROM.put( 0, zeroAd);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- if (strncmp( command, "ENDP", 4)== 0){ // ha a beolvasott üzenet az ENDP string
- if (strlen( command)== 10){
- strncpy( setPoint, command+ 4, 6);
- setPoint[ 6]= 0;
- long endValue= strtol( setPoint, NULL, 10);
- long endAd= avgAd- zeroAd;
- spanAd= (float)endValue/ (float) endAd;
- Serial.print( "endAd: ");
- Serial.print( endAd);
- Serial.print( " endValue: ");
- Serial.print( endValue);
- Serial.print( " spanAd: ");
- Serial.println( spanAd);
- EEPROM.put( 4, spanAd);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- if (strncmp( command, "AVGC", 4)== 0){ // ha a beolvasott üzenet az AVGC string
- if (strlen( command)== 6){
- strncpy( setPoint, command+ 4, 2);
- setPoint[ 2]= 0;
- avgCount= strtol( setPoint, NULL, 10);
- Serial.print( "avgCount: ");
- Serial.println( avgCount);
- EEPROM.put( 12, avgCount);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- if (strncmp( command, "DECP", 4)== 0){ // ha a beolvasott üzenet a DECP string
- if (strlen( command)== 5){
- strncpy( setPoint, command+ 4, 1);
- setPoint[ 1]= 0;
- decPoint= strtol( setPoint, NULL, 10);
- Serial.print( "decP: ");
- Serial.println( decPoint);
- EEPROM.put( 13, decPoint);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- if (strncmp( command, "NYUG", 4)== 0){ // ha a beolvasott üzenet a NYUG string
- if (strlen( command)== 6){
- strncpy( setPoint, command+ 4, 2);
- setPoint[ 2]= 0;
- nyugFelt= strtol( setPoint, NULL, 10);
- Serial.print( "nyugFelt: ");
- Serial.println( nyugFelt);
- EEPROM.put( 14, nyugFelt);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- if (strncmp( command, "LEPS", 4)== 0){ // ha a command, vagyis a beolvasott üzenet a LEPS string
- if (strlen( command)== 6){
- strncpy( setPoint, command+ 4, 2);
- setPoint[ 2]= 0;
- lepes= strtol( setPoint, NULL, 10);
- Serial.print( "lepes: ");
- Serial.println( lepes);
- EEPROM.put( 15, lepes);
- }else{
- Serial.print( "LENGTH ERROR ");
- Serial.println( command);
- }
- }else
- {
- Serial.print( "ERROR: ");
- Serial.println( command);
- }
- }else{
- command[ commandPtr-1]= serRead; // ha még nem jött a parancs vége karakter, akkor hozzáadja a beolvasott karaktert
- command[ commandPtr]= 0; // lezárja a command stringet
- commandPtr++; // növeli a karakterek számát
- if (commandPtr> 11) { // ha túl sok karakter jött, és még nem jött commandEnd, akkor törli az egész üzenetet.
- commandPtr= 0;
- serTimeout= 0;
- Serial.println( "ERROR 11");
- }
- }
- break;
- default:
- break;
- }
- }
- if (serTimeout>0 && millis()> serTimeout){ // ha időtúllépés van, törli az üzenetet.
- serTimeout= 0;
- commandPtr= 0;
- Serial.println( "TIMEOUT");
- }
Advertisement
Add Comment
Please, Sign In to add comment