Ada_Ru форум

Обсуждение языка Ада

Re: [ada_ru] serial ports and Ada

Оставить новое сообщение

Сообщения

Boris Samorodov
Re: [ada_ru] serial ports and Ada
2006-11-11 09:27:11

On Wed, 11 Oct 2006 15:35:33 +0700 Dmitriy Anisimkov wrote:

 

>Хм, Inout_File mode видел. Такого -- нет. Спасибо за пример, буду над >ним думать.

 

>Наверное я поспешил с цитатами из RM. В данном случае режим файла либо >In либо Out.

>Наверное придется открывать 2 файла одновременно, один на запись другой >на чтение.

>Либо пользоваться библиотеками другими.

 

Ааа вот есть

---------------

*package* Ada.Direct_IO *is*

3

*type* File_Type *is* *limited* *private*;

4

*type* File_Mode *is* (In_File, Inout_File, Out_File);

 

Угу. Именно это я и видел (см. мою цитату вверху). Насколько я понял, Direct_IO предназначен для случайного поиска по последовательному файлу. То есть: позиционировать курсор на запись номер 8, прочитать её, курсор на запись номер 10, записать новые данные и т.п. У портов же последовательное чтение по мере появления данных...

 

 

WBR

--

bsam

On Wed, 11 Oct 2006 13:27:11 +0400, you wrote:

 

Угу. Именно это я и видел (см. мою цитату вверху). Насколько я понял, Direct_IO предназначен для случайного поиска по последовательному файлу. То есть: позиционировать курсор на запись номер 8, прочитать её, курсор на запись номер 10, записать новые данные и т.п. У портов же последовательное чтение по мере появления данных...

 

Возможно, будет работать с портом, если файл откроется, конечно. Например:

package Port_IO is new Ada.Direct_IO (Interfaces.C.char);

 

и читать-писать с позиции 1.

 

В-принципе, порты - файлы прямого доступа с размером записи 1 бит или байт. Все остальное - системные навороты. Так что, это зависит от того с какими атрибутами в Ada RTL и какой файл открывается. Пробовать надо, и для разных /dev/*.

 

А вообще, лучше сразу системные вызовы пользовать. Все равно, когда-нибудь понадобится ioctl, тайм-аут, там поставить, и т.п. Переносимым оно не будет...

 

--

Regards,

Dmitry A. Kazakov

http://www.dmitry-kazakov.de

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти