mirror of
https://github.com/eddyem/mmpp.git
synced 2026-03-20 08:40:59 +03:00
Add readme for mmpp_new & refresh russian documentation
This commit is contained in:
Binary file not shown.
@@ -185,33 +185,54 @@ Standa,
|
||||
отключения питания эту процедуру проводить не нужно.
|
||||
|
||||
Для удобства управления устройствами MMPP разработана утилита
|
||||
\verb'MMPP_control'~\footnote{\url{https://github.com/eddyem/mmpp/tree/master/MMPP_control}}
|
||||
\lstref{mmppcontrman}.
|
||||
\verb'MMPP_control'~\footnote{\url{https://github.com/eddyem/mmpp/tree/master/MMPP_control}}. Краткий
|
||||
перечень параметров утилиты:
|
||||
|
||||
\def\t#1{{\ttfamily #1}}
|
||||
\begin{description}
|
||||
\item[\ttfamily -A, --absmove] --- абсолютное движение, данный параметр используется для задания абсолютной
|
||||
величины количества шагов (аргументы \t{-L} и \t{-l}) или угла в градусной мере (аргументы \t{-R} или
|
||||
\t{-r}), без этого параметра подразумевается задание аргумента относительно текущего положения;
|
||||
\item[\ttfamily E, --reset] --- выполнить программный сброс заданного контроллера, для сброса обоих
|
||||
контроллеров необходимо указать: \t{-E1 -E2};
|
||||
\item[\ttfamily -L, --lin1=arg] --- переместить линейный транслятор поляроида на заданное количество шагов;
|
||||
\item[\ttfamily -R, --rot1=arg] --- повернуть поляроид на заданный угол (в градусной мере);
|
||||
\item[\ttfamily -S, --stop] --- прекратить движение (оба контроллера получают сигнал остановить любое
|
||||
движение);
|
||||
\item[\ttfamily -a, --sendraw=arg] --- отправить неформатированные <<сырые>> данные в порт, например, для
|
||||
передачи команд или получения значений, выходящих за рамки стандартных аргументов утилиты;
|
||||
\item[\ttfamily -b, --baudrate=arg] --- скорость связи (например, 115200), по умолчанию ее значение "--- 9600;
|
||||
\item[\ttfamily -d, --comdev=arg] --- название устройства последовательного порта, \t{/dev/ttyUSB0} по
|
||||
умолчанию;
|
||||
\item[\ttfamily -h, --help] --- отображение справки по параметрам;
|
||||
\item[\ttfamily -l, --lin2=arg] ---переместить линейный транслятор волновой пластины на заданное количество
|
||||
шагов;
|
||||
\item[\ttfamily -p, --pidfile=arg] --- название pid-файла (по умолчанию "--- \t{/tmp/MMPP\_control.pid});
|
||||
\item[\ttfamily -q, --quiet] --- <<тихий>> режим для вызова из внешних программ (на стандартный вывод
|
||||
отображается лишь необходимый минимум информации в виде <<параметр=значение>>, стандартный поток ошибок
|
||||
отображается без изменений);
|
||||
\item[\ttfamily -r, --rot2=arg] --- повернуть волновую пластину на заданный угол (в градусной мере);
|
||||
\item[\ttfamily -s, --status] --- отображение текущего состояния фотометра;
|
||||
\item[\ttfamily -t, --temp] --- отображение примерной температуры обоих микроконтроллеров;
|
||||
\item[\ttfamily -w, --wait] --- ожидание завершения всех движений, заданных в предыдущих запусках утилиты с
|
||||
<<асинхронным>> параметром \t{-y};
|
||||
\item[\ttfamily -y, --async] --- <<асинхронное>> движение: сразу после передачи команды движения утилита
|
||||
завершается, не ожидая окончания движения.
|
||||
\end{description}
|
||||
|
||||
Коды возврата утилиты заданы в начале файла \t{main.c}. Они имеют следующее значение:
|
||||
\begin{description}
|
||||
\item[0, RET\_ALLOK] нормальное завершение работы;
|
||||
\item[1, RET\_NOTFOUND] при запуске утилиты не найдено ни одного отвечающего контроллера, либо не получен
|
||||
ответ от искомого контроллера при передаче команды;
|
||||
\item[2, RET\_ONLYONE] при запуске обнаружен лишь один контроллер;
|
||||
\item[3, RET\_COMMERR] ошибка связи или формата передаваемых \slash принимаемых данных;
|
||||
\item[4, RET\_CANTINIT] невозможно инициализировать контроллер установкой на нулевой концевик;
|
||||
\item[5, RET\_WAITERR] ошибка, возникшая во время ожидания завершения выполнения предыдущих передвижений;
|
||||
\item[9, RET\_ERROR] прочая ошибка (из libsnippets);
|
||||
\item[255, RET\_HELPCALL] запуск утилиты с параметром \t{-h}.
|
||||
\end{description}
|
||||
|
||||
\begin{lstlisting}[caption=Краткая справка по параметрам {\tt MMPP\_control},label=mmppcontrman]
|
||||
-A, --absmove абсолютное движение (без этого флага заданное
|
||||
количество шагов рассматривается как
|
||||
относительное)
|
||||
-L, --lin1=arg перемещение линейного транслятора поляроида на
|
||||
N шагов
|
||||
-R, --rot1=arg вращение поляроида на заданный угол (в градусах)
|
||||
-S, --stop прекратить любое движение
|
||||
-a, --sendraw=arg отправить в порт заданную управляющую
|
||||
последовательность символов напрямую
|
||||
-d, --comdev=arg имя устройства последовательного порта
|
||||
-h, --help отобразить данную справку
|
||||
-l, --lin2=arg перемещение линейного транслятора фазовой
|
||||
пластины на N шагов
|
||||
-q, --quiet не отображать никакой информации в stdout
|
||||
-r, --rot2=arg вращение фазовой пластины на заданный угол
|
||||
(в градусах)
|
||||
-s, --status получение состояния устройства
|
||||
-t, --temp отображение температуры (довольно условной)
|
||||
микроконтроллеров
|
||||
-w, --wait ожидание окончания движения узлов (если
|
||||
предыдущая команда выполнялась с -y)
|
||||
-y, --async не ожидать окончания движения
|
||||
\end{lstlisting}
|
||||
|
||||
\section{Интерфейс системы управления}
|
||||
\comment[Тимур]{конфигурационный файл колес}
|
||||
@@ -662,14 +683,14 @@ PF1 & PUPD &
|
||||
|
||||
\subsubsection{Протокол управления}
|
||||
Управление контроллерами производится по шине UART (8N1, скорость задана в конфигурации, по умолчанию
|
||||
115200\,бод). Команды передаются в строковом режиме: признаком окончания команды является символ новой строки.
|
||||
9600\,бод). Команды передаются в строковом режиме: признаком окончания команды является символ новой строки.
|
||||
Микроконтроллер не обрабатывает принимаемые данные до формирования валидной строки. Символы пробела или
|
||||
табуляции внутри строки игнорируются. Первым в строке следует номер контроллера (число int32). Данный номер
|
||||
сохраняется во флеш памяти МК во время его инициализации. Каждый модуль обрабатывает лишь те команды, которые
|
||||
адресованы ему, либо же имеют широковещательную адресацию (в этом случае в качестве адреса указывается -1).
|
||||
Так как вывод данных микроконтроллером при получении широковещательного идентификатора не блокируется, не
|
||||
рекомендуется использовать широковещательные посылки при наличии более одного устройства на линии связи (кроме
|
||||
посылок экстренного останова, сброса и т.п.).
|
||||
табуляции внутри строки игнорируются. Первым в строке следует номер контроллера (16-битное беззнаковое
|
||||
целое). Данный номер сохраняется во флеш памяти МК во время его инициализации. Каждый модуль обрабатывает лишь
|
||||
те команды, которые адресованы ему, либо же имеют широковещательную адресацию (в этом случае в качестве адреса
|
||||
указывается -1). Так как вывод данных микроконтроллером при получении широковещательного идентификатора не
|
||||
блокируется, не рекомендуется использовать широковещательные посылки при наличии более одного устройства на
|
||||
линии связи (кроме посылок экстренного останова, сброса и т.п.).
|
||||
|
||||
После идентификатора контроллера следует текст команды и (опционально) ее аргументы. В случае, если команда
|
||||
валидна, контроллер возвращает строку <<ALLOK>>. Если команда не распознана, возвращается маркер ошибки
|
||||
@@ -915,13 +936,39 @@ ESW00 ESW01 ESW10 ESW11 || ESW00 ESW01 ESW10 ESW11
|
||||
\end{description}
|
||||
Значение полей описано в пункте <<Геттеры состояния>> на стр.~\pageref{stategetters}.
|
||||
|
||||
В <<тихом>> режиме, задаваемом флагом \t{-q},состояние устройства отображается как перечень параметров и их
|
||||
значений. Например,
|
||||
\begin{lstlisting}
|
||||
POLMOTOR0=MOVE
|
||||
POLSTEPSLEFT0=742
|
||||
POLPOS0=4558
|
||||
POLESW00=RLSD
|
||||
POLESW01=RLSD
|
||||
POLMOTOR1=MOVE
|
||||
POLSTEPSLEFT1=7289
|
||||
POLPOS1=32411
|
||||
POLESW10=RLSD
|
||||
POLESW11=RLSD
|
||||
L4MOTOR0=MOVE
|
||||
L4STEPSLEFT0=642
|
||||
L4POS0=4358
|
||||
L4ESW00=RLSD
|
||||
L4ESW01=RLSD
|
||||
L4MOTOR1=MOVE
|
||||
L4STEPSLEFT1=1542
|
||||
L4POS1=6458
|
||||
L4ESW10=RLSD
|
||||
L4ESW11=RLSD
|
||||
\end{lstlisting}
|
||||
Т.е. в данном случае просто копируются значения всех переменных, выдаваемых контроллерами по запросу текущего
|
||||
состояния, с добавлением префикса \t{POL} для контроллера поляроида и \t{L4} для контроллера фазовой пластины.
|
||||
|
||||
\paragraph{Базовые настройки.}\label{MMPP_basesettings}
|
||||
Параметры текущей конфигурации контроллера можно получить при помощи геттера конфигурации. Например,
|
||||
\begin{lstlisting}[caption=Базовые настройки контроллеров]
|
||||
MMPP_control -a 1GC
|
||||
./MMPP_control -a 1GC
|
||||
Send raw string: 1GC
|
||||
Receive:
|
||||
CONFSZ=36
|
||||
Receive: CONFSZ=36
|
||||
DEVID=1
|
||||
V12NUM=605
|
||||
V12DEN=94
|
||||
@@ -942,10 +989,9 @@ USTEPS=16
|
||||
ACCDECSTEPS=50
|
||||
DATAEND
|
||||
|
||||
MMPP_control -a 2GC
|
||||
./MMPP_control -a 2GC
|
||||
Send raw string: 2GC
|
||||
Receive:
|
||||
CONFSZ=36
|
||||
Receive: CONFSZ=36
|
||||
DEVID=2
|
||||
V12NUM=605
|
||||
V12DEN=94
|
||||
|
||||
Reference in New Issue
Block a user