documentation

This commit is contained in:
eddyem 2015-08-04 16:57:01 +03:00
parent f88cbaafd5
commit 4979163d6f
3 changed files with 125 additions and 6 deletions

View File

@ -370,7 +370,7 @@ He, Minimizing Errors in Multiplexed 3-Wire RTD Data-Acquisition Systems.// Anal
%\item[n]
\item[o] открыть затвор;
\item[p] отобразить значение основного ($+12\,$В) напряжения питания в сотых долях Вольта;
%\item[q]
\item[q] отобразить состояние начальной инициализации линейных трансляторов;
\item[r] повторная инициализация затвора в случае ошибки (обрыв провода, короткое замыкание и т.п.);
\item[s (служ)] отображение значений по восьми каналам внешнего АЦП;
\item[t] отображение текущего состояния затвора (открыт\slash закрыт);
@ -379,7 +379,7 @@ He, Minimizing Errors in Multiplexed 3-Wire RTD Data-Acquisition Systems.// Anal
%\item[w]
\item[x (число)] установить период шаговых двигателей приводов турелей в заданное число микросекунд;
%\item[y]
%\item[z]
\item[z] принудительная инициализация линейных трансляторов (установка в нуль);
\item[0..4 (число)] вращать шаговый двигатель с указанным номером на заданное число шагов
(положительное значение числа шагов соответствует вращению в условном положительном направлении,
отрицательное~--- в условном отрицательном).
@ -492,6 +492,14 @@ He, Minimizing Errors in Multiplexed 3-Wire RTD Data-Acquisition Systems.// Anal
системой управления в случае снижения пиковой просадки напряжения ниже 9\,В при получении команды
движения или ниже 7.5\,В при работе шаговых двигателей (в этом случае также генерируется команда
останова всех активных двигателей);
\item[\hbox{[ q ]}] запрос состояния процедуры инициализации линейных трансляторов; ответ имеет
форму \textbf{[ q статус ]}, где \textbf{статус}:
\begin{description}
\item[started] начальное состояние, подготовка к установке нуля транслятора фокуса;
\item[focus] движение транслятора фокуса в нуль;
\item[sin] движение транслятора синусного механизма в нуль;
\item[ready] инициализация окончена;
\end{description}
\item[\hbox{[ r ]}] повторная инициализация затвора в случае ошибки (обрыв провода, короткое
замыкание и т.п.); ответом является эхо команды;
\item[\hbox{[ s ]} (служ)] отображение значений по восьми каналам внешнего АЦП; ответ зависит от
@ -520,11 +528,13 @@ He, Minimizing Errors in Multiplexed 3-Wire RTD Data-Acquisition Systems.// Anal
флаг \textbf{состояние} описывает реальное состояние геркона затвора и имеет значение
\textbf{opened}, если затвор открыт, либо \textbf{closed}, если затвор закрыт;
\item[\hbox{[ x период ]}] установить период шаговых двигателей приводов турелей в заданное число
микросекунд; ответом является эхо команды, если \textbf{период} имеет значение в диапазоне
\verb'uint16_t';
микросекунд; ответом является эхо команды, если \textbf{период} имеет значение в диапазоне
\verb'uint16_t';
\item[\hbox{[ z ]}] принудительная инициализация линейных трансляторов (установка в нуль);
состояние процедуры можно узнать по запросу \textbf{[ q ]};
\item[\hbox{[ 0..4 шаги ]}] вращать шаговый двигатель с указанным номером на заданное число шагов
(положительное значение числа шагов соответствует вращению в условном положительном направлении,
отрицательное~--- в условном отрицательном); ответом является эхо команды.
(положительное значение числа шагов соответствует вращению в условном положительном направлении,
отрицательное~--- в условном отрицательном); ответом является эхо команды.
\end{description}
Команды \textbf{J}, \textbf{K} и \textbf{L} (движение турелей) и \textbf{0..4} (движение
двигателей на заданное количество шагов) не возвращают эха введенной команды в случае, если

View File

@ -0,0 +1,67 @@
/*
* init_on_power.c
*
* Copyright 2015 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#include "main.h"
#include "init_on_power.h"
#include "stepper_motors.h"
started_ini stini_status = INI_START;
void init_on_poweron_proc(){
switch (stini_status){
case INI_START:
move_motor(4, -4500); // move focus to zero
stini_status = INI_FOCUS_PROC;
break;
case INI_FOCUS_PROC:
if(Motor_active[4]) return; // focus is still moving
move_motor(3, -55000); // move sinus mechanism to zero
stini_status = INI_SIN_PROC;
break;
case INI_SIN_PROC:
if(Motor_active[3]) return;
stini_status = INI_READY;
break;
case INI_READY:
default:
return;
}
}
void print_init_status(){
MSG("ini status: ", "[ " STR_INIT_STATUS " ");
switch (stini_status){
case INI_START:
LP("started");
break;
case INI_FOCUS_PROC:
LP("focus");
break;
case INI_SIN_PROC:
LP("sin");
break;
case INI_READY:
default:
LP("ready");
}
if(mode == LINE_MODE) LP(" ]");
lastsendfun('\n');
}

View File

@ -0,0 +1,42 @@
/*
* init_on_power.h
*
* Copyright 2015 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#pragma once
#ifndef __INIT_ON_POWER_H__
#define __INIT_ON_POWER_H__
#include "user_proto.h"
// states of system-on-poweron initialisation
typedef enum{
INI_START
,INI_FOCUS_PROC
,INI_SIN_PROC
,INI_READY
} started_ini;
extern started_ini stini_status;
void init_on_poweron_proc();
void print_init_status();
#define forced_init() do{stini_status = INI_START;}while(0)
#endif // __INIT_ON_POWER_H__