void lambda_auswerten(char *buffer) { char * nextWordPtr; int i; //printf("%s\r\n",buffer); if( countchr(buffer, ';') != 4) { if(strncmp(buffer, WATCHDAG_ERROR_STRING, strlen(WATCHDAG_ERROR_STRING)) == 0) { sprintf(O2Mem.cur_value, "ERROR" ); _status.Watchdog = 1; lambda_state = 0; } return; } nextWordPtr = strtok(buffer, ";"); // split using space as divider _lambda = atoi(nextWordPtr); nextWordPtr = strtok(NULL,";"); _ref = atoi(nextWordPtr); nextWordPtr = strtok(NULL,";"); _bat = atoi(nextWordPtr); nextWordPtr = strtok(NULL,";"); _status.data = atoi(nextWordPtr); nextWordPtr = strtok(NULL,";"); _cj.data = atoi(nextWordPtr); _Ubetrieb = (1.22/_ref)*1023; _Ubat = ((5.0 * 4.9) / 1023) * _bat; if(lambda_fehler()){ sprintf(O2Mem.cur_value, "ERROR" ); }else if(lambda_state == RUNNING) { _Ip = (_lambda * 1.22)/(250.0*17.0*62.0); //in A _o2 = (_Ip*1000.0+0.035)/0.1221; //printf(" %u : %f : %f\r\n",_lambda, _Ip, _o2); sprintf(O2Mem.cur_value, "%3.1f%%", _o2); for(i=126;i>0;i--) { O2Mem.Mem[i+1] = O2Mem.Mem[i]; } O2Mem.Mem[1] = O2Mem.Mem[0]; O2Mem.Mem[0] = _o2; } else { sprintf(O2Mem.cur_value, "STOP"); } }
uint32_t GetClanFromStatstring(char *text) { char blah[8], *tmp; if (countchr(text, ' ') == 3) { tmp = strrchr(text, ' '); if (!tmp) return 0; strncpy(blah, tmp + 1, sizeof(blah)); return *(uint32_t *)blah; } return 0; }
int string_split( char *str, char del, int *countp, char ***vecp ) { char **vec ; int count_max, i, len ; char *s, *p ; if( str == 0 ) return( -1 ); count_max = countchr(str,del)+1 ; vec = malloc( sizeof(char *)*(count_max+1) ); if( vec == 0 ) return( -1 ); for( i=0 ; i<count_max ; i++ ) { while( *str == del ) str ++ ; if( *str == 0 ) break; for( p = str ; *p!=del && *p!=0 ; p++ ) continue; /* *p == del || *p=='\0' */ len = p - str ; s = malloc( len+1 ); if( s == 0 ) { int j ; for( j=0 ; j<i; j++ ) { free( vec[j] ); vec[j] = 0 ; } return( -1 ); } memcpy( s, str, len ); s[len] = 0 ; vec[i] = s ; str = p ; } vec[i] = 0 ; *countp = i ; *vecp = vec ; return( i ); }