+ uint8_t uartprint_ok=0;
+ uint8_t cmdok=0;
+#ifdef USE_UART
+ char buf[21];
+#endif
+ //
+#ifdef USE_UART
+ if (uart_has_one_line){
+ if (uartstr[0]=='i' && uartstr[1]=='=' && uartstr[2]!='\0'){
+ set_val[0]=atoi(&uartstr[2]);
+ if(set_val[0]>I_MAX){
+ set_val[0]=I_MAX;
+ }
+ if(set_val[0]<0){
+ set_val[0]=0;
+ }
+ uartprint_ok=1;
+ }
+ // version
+ if (uartstr[0]=='v' && uartstr[1]=='e'){
+ uart_sendstr_p(P(" "));
+ uart_sendstr_p(P(SWVERSION));
+ uart_sendstr_p(P("\r\n"));
+ cmdok=1;
+ }
+ // store
+ if (uartstr[0]=='s' && uartstr[1]=='t'){
+ store_permanent();
+ uartprint_ok=1;
+ }
+ if (uartstr[0]=='u' && uartstr[1]=='=' && uartstr[2]!='\0'){
+ set_val[1]=atoi(&uartstr[2]);
+ if(set_val[1]>U_MAX){
+ set_val[1]=U_MAX;
+ }
+ if(set_val[1]<0){
+ set_val[1]=0;
+ }
+ uartprint_ok=1;
+ }
+ // help
+ if (uartstr[0]=='h' || uartstr[0]=='H'){
+ uart_sendstr_p(P(" Usage: u=V*10|i=mA/10|store|help|version\r\n"));
+ uart_sendstr_p(P(" Examples:\r\n"));
+ uart_sendstr_p(P(" set 6V: u=60\r\n"));
+ uart_sendstr_p(P(" max 200mA: i=20\r\n"));
+ cmdok=1;
+ }
+ if (uartprint_ok){
+ cmdok=1;
+ uart_sendstr_p(P(" ok\r\n"));
+ }
+ if (uartstr[0]!='\0' && cmdok==0){
+ uart_sendstr_p(P(" command unknown\r\n"));
+ }
+
+ int_to_dispstr(measured_val[1],buf,1);
+ uart_sendstr(buf);
+ uart_sendchar('V');
+ uart_sendchar(' ');
+ uart_sendchar('[');
+ int_to_dispstr(set_val[1],buf,1);
+ uart_sendstr(buf);
+ uart_sendchar(']');
+ uart_sendchar(',');
+ int_to_dispstr(measured_val[0],buf,2);
+ uart_sendstr(buf);
+ uart_sendchar('A');
+ uart_sendchar(' ');
+ uart_sendchar('[');
+ int_to_dispstr(set_val[0],buf,2);
+ uart_sendstr(buf);
+ uart_sendchar(']');
+ if (is_current_limit()){
+ uart_sendchar('I');
+ }else{
+ uart_sendchar('U');
+ }
+ uart_sendchar('>');
+ uart_has_one_line=0;
+ uartstrpos=0;
+ }
+#endif