+/*
+ * \brief
+ * Set speed.
+ */
+static void setSpeed(struct rpi_state* state, int speed){
+ if (speed>MAX_SPEED) speed=MAX_SPEED;
+ if (speed<-MAX_SPEED) speed=-MAX_SPEED;/*paranoia*/
+ sem_wait(&state->thd_par_sem);
+ state->pos_reg_ena=0;
+ state->spd_reg_ena=1;
+ state->commutate=1;
+ state->desired_spd=speed;
+ sem_post(&state->thd_par_sem);
+}
+
+/*
+ * \brief
+ * Set alpha offset.
+ */
+static void setAlphaOff(struct rpi_state* state, int offset){
+ if (offset<0) offset*=-1;
+ offset%=1000;
+ sem_wait(&state->thd_par_sem);
+ state->alpha_offset=(unsigned short)offset;
+ sem_post(&state->thd_par_sem);
+}
+
+/*
+ * \brief
+ * Initialize logs
+ */
+static void logInit(struct rpi_state* state){
+ int r;
+ state->log_col=0;
+ state->log_col_count=LOG_DEF_COL;
+ for (r=0;r<LOG_ROWS;r++){
+ state->logs[r]=malloc(state->log_col_count*sizeof(int));
+ if (state->logs[r]==NULL){
+ error=1;
+ state->log_col_count=-1;
+ return;
+ }
+ }
+ state->doLogs=1;
+}
+
+
+
+/**
+ * \brief
+ * SetLog
+ * if logs are being logged, save them
+ * if they are not, start log them
+ */
+static void setLogSEM(struct rpi_state* state){
+ sem_wait(&state->thd_par_sem);
+ /* ulozim logy a vypnu zachytavani*/
+ if (state->log_col_count){
+ state->doLogs=0;
+ sem_post(&state->thd_par_sem);
+ saveLogs(state);
+ /* spustim zachytavani logu */
+ }else{
+ logInit(state);
+ sem_post(&state->thd_par_sem);
+ }
+}