+#include <stdlib.h>
+#include <stdio.h>
+
+#include "cmd_proc.h"
+
+
+/**
+ * \brief
+ * Commands detection.
+ */
+void poll_cmd(struct rpi_state* state){
+ unsigned int tmp;
+ /*
+ * Note:
+ * pri pouziti scanf("%u",&simple_hall_duty); dochazelo
+ * k preukladani hodnot na promenne test. Dost divne.
+ */
+ while (1){
+ scanf("%u",&tmp);
+ printf("volba=%u\n",tmp);
+ switch (tmp){
+ case 1:
+ scanf("%u",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->pwm1=tmp&0xFFF;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 2:
+ scanf("%u",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->pwm2=tmp&0xFFF;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 3:
+ scanf("%u",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->pwm3=tmp&0xFFF;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 4:
+ scanf("%u",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->test=tmp&0xFF;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 5:
+ sem_wait(&state->thd_par_sem);
+ state->commutate=!state->commutate;
+ /* switch off pwms at the end of commutation */
+ state->pwm1&=state->commutate*0xFFFF;
+ state->pwm2&=state->commutate*0xFFFF;
+ state->pwm3&=state->commutate*0xFFFF;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 6:
+ scanf("%d",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->duty=tmp;
+ sem_post(&state->thd_par_sem);
+ break;
+ case 7:
+ scanf("%d",&tmp);
+ sem_wait(&state->thd_par_sem);
+ state->desired_pos=tmp;
+ sem_post(&state->thd_par_sem);
+ break;
+
+ default:
+ break;
+ }
+
+ }
+ return ;
+}