������������� �������
���������������������


6. ������������� ���������

6.1. ��������

������������� ��������� (Dev) ������������ ��������� ����� ���������� � ������������� ������������. ����� ������������ ��������� ����������� ������������ ���� �����/������ � ���������� � �������� /dev. ��������, ������� � ������� QNX ����� ��� /dev/con1.

6.2. ������ � ������������

��������� QNX �������� ������ � ������������ ����������� � ������� ����������� ������� read(), write(), open() � close(). ��� �������� QNX ������������ ���������� �������������� ��������������� ������� ������, ������� ����� ����������� ��� ������������ ���������.

������������� ��������� ���������� ����������� ������ ����� ����������� � �����������. ��������� ��������� ���� ������ ����������� ��������������� Dev � ������������ � �����������, ��������� � ��������� ���������� ������������� ������������ (termios), ������� ���������� ��� ������� ����������. ������������ ����� ����������� �/��� �������� ��� ���������, ��������� ������� stty; � ��������� ��� ���� ���� ������������ ������� tcgetattr() � tcsetattr().

��������� t�rmios ��������� ����������������� ��������� �� ������ ������, � ��������� ��� ������:

����� ����, ������������� ��������� ��������� ��� �������������� �������, � ������� ������� �������� ����� ��������� ������������� ������������.

� ����������� ���� ������� ������������ ��������� �� ���� �������.

������� ����� ����������� ������� ��
��������� ������������������ �������� ������ dev_read() ��� read() + tcsetattr()
���������� ���������� ������� � ����������� ������ �� ����� ��� ���������� ��������� ����� dev_arm()
������� ������� ���������� �������� �������� ������ tcdrain()
������� ���������� �� ������ ����� tcsendbreak()
����������� ���������������� ����� tcdropline()
������ ������ dev_insert_chars()
��������� ������������� ������ ��� ������ (����� O_NONBLOCK) open() � fcntl()

6.3. ����� �������������� �����

�������� ������ ������� ������ � ������������ ��������� ��� ICANON ����������� ��������� termios. ���� ���� ����������� ��� ����������, �� ������������� ��������� ��������� ������� ��������� �������������� ����������� ��������. ����� �������, ������ ����� �������� ��� ��������� ���������� ��������� ������ ��� ����� ������, ��� ������ ������������ ������������ ���� ������� "������� �������" (CR). ���� ����� ������ ���������� ������� �������������� �����, ������������ ���, ������, "cooked".

����������� ��������������� ���������� �������� � ������ �������������� �����. ������������� Shell �������� �������� ��������.

� ��������� ������� ������������ ��������� ����������� ����������� �������, ������� ����� ���� ������ � ����������� ��������� termios ��� ����, ����� ������� �������������� Dev, ����� ������� ��������� ��������������.

Dev ����� ��������� ��� ���������
����������� ������� �� ���� ������ ����� LEFT
����������� ������� �� ���� ������ ������ RIGHT
����������� ������� � ������ ������ HOME
����������� ������� � ����� ������ END
�������� ������� ����� �� ������� ERASE
�������� ������� � ������� ������� ������� DEL
�������� ���� �������� ������ KILL
�������� ������� ������ � ������� � ���������� ������ UP
�������� ������� ������ � ������� � ��������� ������ DOWN
������������ ����� �������� ������� � ���������
(������ ����� ������ �������� ��������� � ������ ���������)
INS
�������, ����������� ��������������� ������, ����������� ��� ������ ����������. ������� QNX ������ �������� � ������ ������� ������������ ������ ��������������. ���� �������� ��������� � ����������, �� ������� ��������� ������� QNX, ����� ���������������� ����, �� ���������� ���������� ����������� ������� �������������� ��� ������� ����������� ���������. ��� ����� ������������ ������� stty. ��������, ���� �� ���������� �������� VT100 ����� ���������������� ���� (��������� /dev/ser1), �� ��� ����, ����� ������� ��������������� ���� ������ �������������� � �������� �� � /dev/ser1, ����� ������������ ��������� �������

    stty term=vt100 </dev/ser1

� ��������, ���� �� ���������� � ����������������� ����� �����, ������� � ���� ������� �������� � ������ �����������, ����������� �������� QNX, � ������� ����������� ������� qtalk, �� ��������� ������ �������������� ������ ������� ��������� ��������� �������

    stty term=qnx </dev/ser1

6.4. ����� ���������������� �����

���� ��� ICANON �� ����������, �� �������, ��� ���������� ��������� � ������ ���������������� ����� (raw). � ���� ������ ������� �������������� �� �����������, � ��� ����������� ������ ���������� ���������� ���������� �������� QNX.

��������� ���������� QNX, ����������� � ������������ � ���� ������, �������� ������������� � ���������������� ���������������� ���������.

��� ���������� ������ �� ���������� � ������ ���������������� ����� ���������� ����� ������ ������� ��������� �������� �������. �������� ������� � �������� ��������������� ������ ������������ ����� ���������� ����������� ��������� termios: MIN � TIME.

���������� ����� �������� ����� ������� � �������� ������ ��� ������ ������� �� ������ ����������� ������� dev_read(). ���������, ���������� ���������� TIMEOUT, ������ ������������ � ���������� ������, ���� � ����������� ��������� �������. �������� �������� �� ��, ��� ��� ������� read() �������� TIMEOUT ������ ����� 0.

��� ������ ��������� QNX ������� �� ������ n ������ ��� ��� ��������� ����������, ����� ������ ������ ������ ���� ��������, ��� ��������� � ��������� �������.

MIN TIME TIMEOUT ��������
0 0 0 ���������� ���������� ����������, ������ ������� ������, ������� �������� � ������ ������ (�� n ������)
� 0 0 ���������� ����������, ������ �� n ������, ������ � ��� ������, ���� �������� �� ������� ���� M ������
0 T 0 ���������� ����������, ������ �� n ������, ���� �������� ���� �� ���� ����, ���� ���� ������� T*0.1 ������
M T 0 ���������� ����������, ������ �� n ������, � ��� ������, ���� ���� �������� �� ����� M ������, ���� ���� ������ ���� �� ���� ���� � �������� ������� ����� ��������������� ���������� ����� ������ ��������� �������� T*0.1 ������
0 0 t ���������������
M 0 t ���������� ����������, ������ �� n ������ �� ��������� t*0.1 ������, ���� � ������ ����������� �� ����� M ������
0 T t ���������������
M T t ���������� ����������, ������ �� n ������ � ������ ����������� �� ����� M ������, ���� �� ��������� t*0.1 ������ ����� ��������� ���������� �������, ���� ��� ��������� ���� �� ������ ����� � ���������� ��������� ������� ����� ����� ����������������� ������������ �������� T*0.1 ������

6.5. �������� ���������

�� ���. 25 ������������ �������� ���������� ��������� QNX.

���. 25

������������� ��������� (Dev) ��������� �������� ������ ����� ����������� ���������� QNX. ���������� ����������� ��������� ������������������ ��������. ������, �������� ������������ ������������� Dev � ��������, �������� ����� ������ �������� � ��������� ������������ ������, ������� ���������� ��� ������� ������������� ����������.

������ ���������� ����� ��� �������. ������ �� �������� ������������ �� �������� "������ ������ - ������ ��������". � ������ �������� ������� ����������� ���������.

�������� ������ ���������� ��������� �� ������� ������� � ���������� ��������������� Dev ������ �����, ����� ���������� ������� �������� ������. ����������� ����������, �������� � ������ ���������, ������ ���������� � ������������ ������������ �������������� Dev ��� ���������� ������ � �������: ��� ������������ ���������������� ������� ���������� � ����������� ��������� ���������� ����������� �� ������� �������.

Dev �������� �������� ������ � �������� �������, ����� ������� ������������ ���������� �������� ������ ����������. ������ ��� ��� ���������� ������ Dev �������� ������������, �������� � ������ ��������, � ������������ ������� � ��� ������, ���� �� �� ��� ��� �������. ��������� ������������� �������� ��������, Dev ������������ ������ ������ ��� ���� ������������ ���������. ������� ����������� ��� ������ ������ � ������ ������������ �������� �������.

������������ ������� ��������� ����������� ��������������� Dev � ������������ ��� ��������� ������� ������ � ������ �������������� �����. ������ ���� ������� ������������ ������������ �������� ������� ������������� ������ ��� ������� ����������� ����������.

������ ���� ���� �������� ��������������� ��������� ���������������; ��� ���� ������������ ������������ �������� ��, ��� ��������� ������ ���� ���� �������� �� ����� ��������� 64 ������. ��������, ������������ �� ���������, ������ ������ ��������� ��� �������� ���������, �� �� ����� ��������� ��� ����, ����� ��������� ������ ���������� ��������� ������ ��� ����� ����������� �������� � ��������� �������.

6.5.1. ���������� ������������

�������� ��������� ���� ���������� �������� ������ �� ������� �������, ���� �������� ������ �� �������� �������. ������������� Dev ����������, � ����� ������ ��������� ��������� ��������, ��������� �� ����������� �������� ������ �� ������� � �.�.

��� ����������� ������� ������� ������������ ������������� Dev ������ ����������� � ���������� ������� �����������. ������ �������������� Dev �� ���������� ������ ��������� ���������, ������� �� ������������� ������ �� ����� ������������������ �������.

��������, ������� ����� ������ ��������� QNX, ����� ����������� � ���������� ������������ � ����������� �� ������������ ������������� ��� ����������� �������.

���������� ������������ �� ������ ������ ����������� ����������� ������ ���������������� �������� �� ����� ioctl. ����� ����� ioctl-������ �������������� ������������ ���������, ������������ ��������������� ��������������� Dev. ����� ����, �������� QNX ����� ����� Dev �������� ��������� ioctl-�������, ��������������� �� ���������� (����������� ������� �� qnx_ioctl()).

6.6. ������� QNX

���������� ��������� ��������� ������� Dev.con. ������� - ��� ������������ �������������, �������� � ��������� ����������.

� ������� QNX ������� ����������� ����������� ������������ ������ ����������� ����������� ��������. ������� ������� Dev.con ������ ��������� ��������� ���������� ������� �������� �����/������ � �������������� Dev, ��� ��������� ��������� ������������ ����� ����� ������������ ��������� � ������� /dev/con1, /dev/con2 � �.�. � ����� ������ ���������� ������������ ������������ ��������� ��������.

�������, � ����������������, ������� ������ ���� ���������� ������� � ����������, ������� � ������ ������ ������� ������������� ������ ���� �� ����������� ��������. ���������� "������������" � ��� ����������� �������, ������� � ���� ������ ������.

6.6.1. ������������� ��� ������� �������

������ ����������� ������������ ������� QNX (��. ����������� ������������) ������� ������� �������� �� �������������� ��� ������� ���������, ������� ��������� ���������� ��������� ����������������� � ��������� ������� �������� ����������� ���������. ����� ��������������� �������� �� console_open(). ����� ������������ ����� ������� QNX ����� ��������� �����������.

������� ����� ����������� ������� ��
��������� ������ ��������������� � ������ ������� console_read()
�������� ������ ��������������� �� ����� ������� console_write()
���� ���������� ����������� � ����������� ������������ ������� (��������� ������������ ������, ����������� �������, ��������� ������������ ��������, ����� ������� ������� � �.�.) console_arm()
��������� �������� ������� console_size()
����������� ������� ������� console_active()

������� ������� QNX ����������� ��� ������� �������. �������� � ���������� ������ ������������� ������������ ���������� ���������� � ���������� ��������������� �� ������� �������. �������� ������ ��������� � ���������� ������� Dev.con, ���� �� ���������� � �������� ��������.

6.7. ���������� � ���������������� �����������

����������������� ����������������� �������� ��������� ������� Dev.ser. ���� ������� ����� ��������� ����������� ����������� ��������, ������� � ������������� ������������, ������� ����� ����� /dev/ser1, dev/ser2 � �.�.

��� ������� Dev.ser � ��������� ������ ����� ������ ���������, ������� ���������� ���� � ���������� ������������� ���������������� ������. ��� ����, ����� ������, ����� ���������������� ����� ��������, ����������� ������� ls

    ls /dev/ser*

Dev.ser ������ �������� ������� �����/������, ������������ ������ ������������. ����� ������������� ����������� ����������� ������� ��������� � ����� ��������. ����������� ���������� �������� ������� ������ ��������������� �� ������� �������. ������ ��������� ������ ���������� ����� ����� ����������� ���������� ����� ������� �������� ��������������� Dev. ���������������� ������� ���������� ��� ����������� ��������������� ����������.

6.8. ���������� � ������������ �����������

������������� ������� �������� ��������� ������� Dev.par. ��� ������� Dev.par � ��������� ������ �������� ��������, ������������, ����� ������������ ���� ����������. ��� ����, ����� ������, �������� �� ������������ ����, ����������� ������� ls

    ls /dev/par*

Dev.par - ��� ������� ������, ������� � ���� ��� ������� ��� ������������ ������� ��������. ��� ������� Dev.par ������ ��������� ������ �������� � ������� ���������� ��������� ������. ����� ������� �������� ����� ����� �������� �������, ��������, � ������ �������� ������������ ������ ������.

Dev.par �������� �������� ������������ ��������� ��� ���������� ������� �����/������. ������ ���� ������� ��������� � RECEIVE-������������� ���������, ������ ��������� ������ � ����� �������� �������, � ����������� ��������������� Dev. ����� ������ ���������� ���������� ��� ������, Dev.par �������� ����������� � ����� ��������� �������� (� ������������ ������ ���������� �����������), ������ ������ ������ ���������. ����� ����������������� ���� ��������� �������� �� ������ �� ����� ������������������ �������, � � ������� ������������ ����������� ��������� ���������� ����������� ��� ���������� � ������������ �����������.

6.9. ������������������ ���������� ������������ ���������

���������� ������� ������� � ���������� ������������ ��������� ������������ ����� �������, ��� �������������� ��������� ������� � ��������������� ���������� ����������� ��� ���������, ����������� � ��������������� (raw) ������. ��� ����������� ��������� �������:

����� �������, � ������ ������� ������ �����/������ ������� QNX ����� ��������� ���� �������� ���������� ������� ������� � ���������� ������������ ���������, � ����� �������� ������� ����� ����� ������� �������� ���������� � ������������.


���������������������
������������� �������