\documentclass[a4paper,12pt]{extarticle}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{/home/eddy/ed}
\colorlet{punct}{red}
\definecolor{delim}{RGB}{20,105,176}
\colorlet{numb}{red!60!black}
\lstdefinelanguage{JSON}{
    basicstyle=\small\ttfamily,
    numbers=left,
    numberstyle=\scriptsize,
    stepnumber=2,
    numbersep=8pt,
    showstringspaces=false,
    breaklines=true,
    frame=tbrL,
    literate=
     *{0}{{{\color{numb}0}}}{1}
      {1}{{{\color{numb}1}}}{1}
      {2}{{{\color{numb}2}}}{1}
      {3}{{{\color{numb}3}}}{1}
      {4}{{{\color{numb}4}}}{1}
      {5}{{{\color{numb}5}}}{1}
      {6}{{{\color{numb}6}}}{1}
      {7}{{{\color{numb}7}}}{1}
      {8}{{{\color{numb}8}}}{1}
      {9}{{{\color{numb}9}}}{1}
      {.}{{{\color{numb}.}}}{1}
      {:}{{{\color{punct}{:}}}}{1}
      {,}{{{\color{punct}{,}}}}{1}
      {\{}{{{\color{delim}{\{}}}}{1}
      {\}}{{{\color{delim}{\}}}}}{1}
      {[}{{{\color{delim}{[}}}}{1}
      {]}{{{\color{delim}{]}}}}{1},
    morestring=[b]",
    morestring=[b]',
    extendedchars=true,
    escapechar=`,
    stringstyle=\bfseries\color[rgb]{0.6,0,1},
    keywords={true,false},
    keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
    frameround=tttt
}
\lstset{basicstyle=\small,breaklines=true,
	extendedchars=true,aboveskip=1em,belowcaptionskip=5pt,
	prebreak = \hbox{%
\normalfont\small\hfill\green{\ensuremath{\hookleftarrow}}},
	postbreak = \hbox to 0pt{%
\hss\normalfont\small\green{\ensuremath{\hookrightarrow}}\hspace{1ex}},
	commentstyle=\color{blue},showspaces=false,
	showstringspaces=false,stringstyle=\bfseries\color[rgb]{0.6,0,1},
	numbers=left,numberstyle=\tiny,stepnumber=2,
	keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
	frameround=tttt,frame=trBL,tabsize=4,backgroundcolor=\color[rgb]{.9,.9,1}}
\lstloadlanguages{JSON,C}
\def\lstlistingname{�������}
\def\lstref#1{(��.~�������~\ref{#1})}
\LTcapwidth=\textwidth

\title{��������������� ������ BTA-JSON}

\begin{document}
\nocolon
\maketitle
\section{��������}
��� ������������� ����������� ���������� ����������� ��������� ��������� ��� (�
�.�. ��� ���������� ������������ ��������� FITS-������) �� ������ �������������
�.�.~�������� ��������� \verb'bta_print' ��� ������ ������� ������� ������,
�������� �� ������� ������������ ��� ����������� ���������� � ������� JSON.

������������� �������� ������� ������� ���� ���������� ���, ��� �����������
multicast-������� �� ��������� ���� ��� � ��������� ���� ��� ��������
����������� ������������� ������������� ������� �������������.

������ ������ � ������ ������ �������� �� ���������� \verb'tb.sao.ru', �������
�� �������, ������������ ������� \verb'/bta_par' �� ����� \verb'12345'.
����� ��������� ������� ��� �� ���-��������, ��� � �� ���������������
������������ ���������� �������. ������ ����� ������� ��� ���-������� ��������
���:
$$
\verb'http://tb.sao.ru:12345/bta_par'
$$

�� ������� ������� ������ ���������� ������ JSON � �����������, ������������
������ ��������� \verb'bta_print'. 
\begin{lstlisting}[language=JSON]
{
"ACS_BTA": true,
"M_time": "13:58:57.74",
"JDate": 2456432.915943,
"S_time": "04:37:37.01",
"Tel_Mode": "Stopping",
"Tel_Focus": "Prime",
"ValFoc": 98.77,
"Tel_Taget": "Zenith",
"P2_Mode": "Stop",
"CurAlpha": "04:12:28.25",
"CurDelta": "+39:56:53.4",
"SrcAlpha": "06:25:53.48",
"SrcDelta": "+10:00:00.0",
"InpAlpha": "11:41:52.03",
"InpDelta": "+24:40:36.4",
"TelAlpha": "04:57:06.82",
"TelDelta": "+39:57:14.6",
"InpAzim": "-118:27:18.0",
"InpZenD": "83:52:29.3",
"CurAzim": "+053:55:21.3",
"CurZenD": "05:57:00.7",
"CurPA": "049:36:52.7",
"SrcPA": "329:54:01.0",
"InpPA": "315:37:58.0",
"TelPA": "317:08:11.1",
"ValAzim": "-045:59:40.4",
"ValZenD": "05:09:31.2",
"ValP2": "219:33:16.7",
"ValDome": "+134:55:41.6",
"DiffAzim": "+000:00:00.0",
"DiffZenD": "+00:00:00.0",
"DiffP2": "+000:00:00.0",
"DiffDome": "-180:55:22.0",
"VelAzim": "+00:00:00.0",
"VelZenD": "-00:00:00.0",
"VelP2": "+00:00:00.0",
"VelPA": "+00:00:00.0",
"VelDome": "+00:00:00.0",
"CorrAlpha": "+0:00:00.00",
"CorrDelta": "+0:00:00.0",
"CorrAzim": "+0:00:00.0",
"CorrZenD": "+0:00:00.0",
"ValTind": 010.4,
"ValTmir": 010.3,
"ValPres": 595.8,
"ValWind": 01.7,
"Blast10": 18633.4,
"Blast15": 59794.7,
"ValHumd": 86.3,
"Precipt": 1087.4
}
\end{lstlisting}

������ ������� ������� �� ���-��������� ����� ������������ ������ ���������
������. ������� �������� ��������� � ���������� \verb'/Users/eddy/BTA_utils'
���������� \verb'tb.sao.ru', � ����� "--- � ����������� \verb'btautils' ��
������ \url{https://sourceforge.net/projects/btautils/}. ������ �����������
�������� ������ ����� ������� ���������� ����������� � ������ ������ ���
���������� �������� ������������ ��� ������ (��.~�.~\ref{coding}).

\section{����������� ����� ������� JSON}
� �������~\ref{json_head} ��������� �������� ����� ������� JSON, �������������
�������� �������. ��� ������ ���� ����� ���� �� ��������� ��������:
\begin{description}
\item[����� --] ��������� �������� (��������, \verb'"Zenith"');
\item[����� --] ��������� ��������, ��������������� �����, ����
	\verb'HH:MM:SS.SS' (��� ������� � ������ �����������);
\item[���� --] ��������� �������� ���� \verb'[+]D:MM:SS.S' (��� �������
	�������);
\item[����� --] ����� � ��������� ������.
\end{description}


\def\CH#1{\multicolumn{1}{|c|}{#1}}
\begin{longtable}{|>{\tt}r|p{0.46\textwidth}<{\hfil}|c|>{\tt}c|}
\caption{���� ��������}\label{json_head}\\
\hline\hline
\multicolumn{1}{|m{2cm}|}{\bf ��������\par\hfil ����\hfil}& \CH{\bf
��������} & \bf ��� ������ &\bf ����\\
\hline
\CH{\bf 1}&\CH{\bf 2}& \bf 3 & \bf 4\\
\hline\endfirsthead
\hline
\multicolumn{4}{r}{\small(����������� ��.~�� ��������� ��������)}\\
\endfoot
\hline\hline\endlastfoot
\caption{�����������}\\
\hline
\CH{\bf 1}&\CH{\bf 2}& \bf 3& \bf 4\\
\hline\endhead
ACS\_BTA& �������������� �� \texttt{bta\_print} ����, ������ \texttt{true}&
--- & \bf---\\
M\_time& ������� ���������� �����& ����� & mtime\\
JDate& ������� ��������� ���� (���.)& ����� & sidtime\\
S\_time& ������� �������� �����& ����� & sidtime\\
Tel\_Mode& ����� ������ ���������& ������ & telmode\\
Tel\_Focus& �������� ����� ��������� & ������ & telfocus\\
ValFoc& ������ ������� ������ ���������, ��& ����� & telfocus\\
Tel\_Taget& ������� ���� ���������& ������ & target\\
P2\_Mode& ����� ������ ����������� �����& ������ & p2mode\\
CurAlpha& ������� ���������� ���������� ���� ($\alpha$~-- ������ �����������) &
����� & eqcoor\\
CurDelta& ������� ���������� ���������� ���� ($\delta$~-- ���������)& ���� &
eqcoor\\
SrcAlpha& ������� ���������� ���� ($\alpha$)& ����� & eqcoor\\
SrcDelta& ������� ���������� ���� ($\delta$)& ���� & eqcoor\\
InpAlpha& ��������� ������������� ���������� ($\alpha$)& ����� & eqcoor\\
InpDelta& ��������� ������������� ���������� ($\delta$)& ���� & eqcoor\\
TelAlpha& ������� ���������� ��������� ($\alpha$)& ����� & eqcoor\\
TelDelta& ������� ���������� ��������� ($\delta$)& ���� & eqcoor\\
InpAzim& ��������� �������������� ���������� ($A$~-- ������)& ���� & horcoor\\
InpZenD& ��������� �������������� ���������� ($Z$~-- �������� ����������)&
���� & horcoor\\
CurAzim& ������� �������������� ���������� ���������� ���� ($A$)& ���� &
horcoor\\
CurZenD& ������� �������������� ���������� ���������� ���� ($Z$)& ���� &
horcoor\\
CurPA& ������� ����������� ���� ���������� ����& ���� & horcoor\\
SrcPA& ������� ����������� ���� ����& ���� & horcoor\\
InpPA& ��������� ������������� ����������� ����& ���� & horcoor\\
TelPA& ������� ����������� ���� ���������& ���� & horcoor\\
ValAzim& ������ ������� �������& ���� & valsens\\
ValZenD& ������ ������� ��������� ����������& ����  & valsens\\
ValP2& ������ ������� ��������� ����������� �����& ���� & valsens\\
ValDome& ������ ������� ������� ������& ���� & valsens\\
DiffAzim& ��������������� �� �������& ���� & diff\\
DiffZenD& ��������������� �� ��������� ����������& ���� & diff\\
DiffP2& ��������������� �� ���� �������� ����������� �����& ���� & diff\\
DiffDome& ��������������� �� ������� ������& ���� & diff\\
VelAzim& ������� �������� �������� ��������� �� �������& ���� & vel\\
VelZenD& ������� �������� �������� ��������� �� ��������� ����������& ���� &
vel\\
VelP2& ������� �������� �������� ����������� ����� & ���� & vel\\
VelPA& ������� �������� <<�������� ����>>& ���� & vel\\
VelDome& ������� �������� �������� ������& ���� & vel\\
CorrAlpha& ��������� �������� �� ������� �����������& ���� & corr\\
CorrDelta& ��������� �������� �� ���������& ���� & corr\\
CorrAzim& ��������� �������� �� �������& ���� & corr\\
CorrZenD& ��������� �������� �� ��������� ����������& ���� & corr\\
ValTind& ����������� � ������������, $\degr$C& ����� & meteo\\
ValTmir& ����������� �������, $\degr$C& ����� & meteo\\
ValPres& ����������� ��������, ��.��.��.& ����� & meteo\\
ValWind& �������� �����, �/�& ����� & meteo\\
Blast10& ����� �� ���������� ������ �����, ������������ 10\,�/�, ������& ����� &
meteo\\
Blast15& ����� �� ���������� ������ �����, ������������ 15\,�/�, ������& ����� &
meteo\\
ValHumd& ��������� �������, \%& ����� & meteo\\
Precipt& �����, ��������� � ������� ���������� ��������� �������, ������&
����� & meteo\\
\end{longtable}

\section{������������� ����������� �����������}
\label{coding}
��� ������������� ����������� ���������� ����������� � ������ ���
�������������� ��������� ����������� ������, ���������� ������� �����,
������������ � ����� \verb'tb.sao.ru' �� ����� \verb'12345'.

��� ������� ����������� ����� ������ �� ����� ����������� �����������, �
�������� ������� ���������� ���������� �����, ��������� � ������ <<����>>
�������~\ref{json_head}.

������������ ������ ������� ����� ������� ����� �� ��������� ��������:
\begin{itemize}
\item ����������� ������������ �������� ������ ������ ����� �����������
(������������ �������� ������, ���������, ������ ��������� ��� ������ �����
������);
\item ����������� ������������ ������� ���� \verb'GET /bta_par&blocks', ���
\verb'blocks'~-- ������ ����������� ����������� ������;
\item ����������� ������������ ������� ���� \verb'GET /bta_par', � ���� ������
����� ��������� ����� � ������������� ���� ������, � ����� �����������. 
\end{itemize}

��� ��������� JSON--������� ����� ������������ ���������� \verb'libjson', ����
�� ������������ ��� ������� (�.�. ��������� ������� ������������ �
������������).

�������� ��, ��� ����������-������ � ������� �� ��� ���������������� �� ����
15~��� �~�������, �� ����� ������ ������� ���� 10~��� �~�������.

\end{document}
