работа с com портами
Участников: 5
FreeBasic :: Программирование :: Общее
Страница 1 из 1
работа с com портами
привет. можно ли на FreeBasic, программировать com порты по протоколам xon/xoff. у меня на работе специальная машина для печати текста на матрицах, работает под dos, прога написана на c. мне не составит труда перевести ее на Freebasic, но мне нужно обязательно после готовности машины считать статус порта, потом в порт засылать текст. в нашей программе не используется протокол xon/xoff, но машиной он поддерживается. все сделано примитивно, засылается в машину шесть страниц, после того как она их отпечатает, приходиться нажимать на компе клавишу, чтоб она еще шесть заслала. цель, научится программировать xon/xoff, и портировать под windows и linux. если во FreeBasic читать статусы, работать по xon/xoff невозможно, я знаю точно, что можно открыть com порт winapi функцией "CreateFile, но я незнаю, что нужно подготавливать для этой функции. заранее всем огрооомное спасибо!
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
Непосредственно указанный протокол, как и прочие другие протоколы, FB, как и все подобные неспециализированные ЯВУ, не знает - последовательность данных согласно протоколу должна обеспечивать твоя программа. Для чтения/записи текущего байта данных в порт принтера используются команды "INP &h3e8, value" и "value = OUT (&h3e8)" (если я не ошибся с номером порта - уточни в сетапе BIOSа твоей машины)
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: работа с com портами
я боюсь, что если программировать порт на прямую, могут возникнуть проблемы при неадминистративных пользователях. вобщем пороюсь по инету.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
Ты же писал, что тебе надо под dos - там проблем точно не будет.
А под виндой если есть проблемы с правами пользователя, то они обходятся путём настройки параметра "Запускать от имени..." в свойствах программы.
А под виндой если есть проблемы с правами пользователя, то они обходятся путём настройки параметра "Запускать от имени..." в свойствах программы.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: работа с com портами
да нет, мне как раз и надо под windows и linux портировать dos программу..
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
ну вот, нашол. работа с последовательными портами в win32
http://www.citforum.idknet.com/hardware/articles/comports/
Работа с коммуникационными портами (COM и LPT) в программах для Win32
http://www.codingclub.net/Modules/Articles/Default.aspx?cat=2&id=474
как я и думал, все обращения происходят через winApi функцию "CreateFile". статьи расчитаны под c, но под FreeBasic 100% можно переписать.
Работа с СОМ-портом в Windows (W9x, W2k)
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1126
ну а это уже под delphi, кто знает разберется.
Работа с Com портом под Windows
http://www.realcoding.net/article/view/169
совсем кратенько про порты, лишь только подробно описываются параметры winApi функции "CreateFile.
http://www.cyberguru.ru/cpp-sources/hardware/rabota-s-com-i-lpt-portom-createfile.html
еще про com порты, походу на этом сайте, много чего полезного.
http://www.citforum.idknet.com/hardware/articles/comports/
Работа с коммуникационными портами (COM и LPT) в программах для Win32
http://www.codingclub.net/Modules/Articles/Default.aspx?cat=2&id=474
как я и думал, все обращения происходят через winApi функцию "CreateFile". статьи расчитаны под c, но под FreeBasic 100% можно переписать.
Работа с СОМ-портом в Windows (W9x, W2k)
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1126
ну а это уже под delphi, кто знает разберется.
Работа с Com портом под Windows
http://www.realcoding.net/article/view/169
совсем кратенько про порты, лишь только подробно описываются параметры winApi функции "CreateFile.
http://www.cyberguru.ru/cpp-sources/hardware/rabota-s-com-i-lpt-portom-createfile.html
еще про com порты, походу на этом сайте, много чего полезного.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Кстати :-)
Кстати, один из самых молодых разделов на официальном форуме Hardware Interfaces / Communication (For issues with communication ports, protocols, etc.) Что в переводе Аппаратные интерфейсы / Связь (Для вопросов по коммуникационным портам, протоколам и т.д.)
Много интересной информации можно почерпнуть
Electrik спасибо за ссылки
Много интересной информации можно почерпнуть
Electrik спасибо за ссылки
Re: работа с com портами
Извините, но в документации по FreeBASIC'у, которую можно скачать http://downloads.sourceforge.net/fbc/FB-manual-0.20.0-chm.zip всё написано, я не буду копировать оттуда текст, ищите по ссылке Open COM. Никаких WinAPI не нужно, приложение будет кроссплатформенным.
А за ссылки спасибо, я много чего узнал, о некоторых вещах даже не подозревал.
А за ссылки спасибо, я много чего узнал, о некоторых вещах даже не подозревал.
Re: работа с com портами
да я знаю, что FreeBasic поддерживает ком порты функцией open com. но я не уверен, что при помощи FreeBasic, можно реализовать мою задачу, по этому, я и открыл тему ком портов. но вообще спасибо, почитаю по подробней мануал, может в новых версиях что-нибудь появилось.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
решился я взяться снова за эту программу. переписал код под dos, забил пока на винды и линукс. столкнулся с проблемой.
не как не считать статус порта. пока забил на xon/xoff, но даже перед засылкой символяа в порт, надо прочитать пятый бит регистра порта.
на пример, у порта com1, адрес 3f8, адрес регистра статуса 3fd.
родная программа написана на turbo c, я переписал под freebasic, не
фига не работает, тоесть не приходит пятый ьбит. блин, почемуж во FreeBasic, так все криво сделано.
может кто-нибудь с этим заморачивался. пойду на оф сайт.
не как не считать статус порта. пока забил на xon/xoff, но даже перед засылкой символяа в порт, надо прочитать пятый бит регистра порта.
на пример, у порта com1, адрес 3f8, адрес регистра статуса 3fd.
родная программа написана на turbo c, я переписал под freebasic, не
фига не работает, тоесть не приходит пятый ьбит. блин, почемуж во FreeBasic, так все криво сделано.
может кто-нибудь с этим заморачивался. пойду на оф сайт.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
попробовать можно. а в linux, на прямую к порту сработает? вот какая тема. мы хотим с dos перейти на linux. почему я и переписываю прогу, так мне удобней. хотя, если под линукс прямое обращение к порту разрешено, я могу оставить и сишную прогу, просто переписать код на прямую. в программе используются функции из bios.h. под windows, в mingw такого заголовочного файла нет.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
блин, какой синтаксис чтения и запись в порты у gas. такая хрень как:
in al,61h ;получим значение порта 61h в al
or al,3 ;инициализируем динамик и подаем ток в порт 61h
out 61h,al
не прокатывает. мне казалось, что раньше я пробовал мудрить, хотя, может и не с gas.
может там типа
inport
outport
попробовал, не работает.
in al,61h ;получим значение порта 61h в al
or al,3 ;инициализируем динамик и подаем ток в порт 61h
out 61h,al
не прокатывает. мне казалось, что раньше я пробовал мудрить, хотя, может и не с gas.
может там типа
inport
outport
попробовал, не работает.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
Программирование на аппаратном уровне RS-232
http://bugtraq.ru/library/programming/rs232.html
после прочтения данной статьи, мне сразу много чего открылось.
оказывается, я программировал не тот регистр, вот так бывает.
мало того, и не тот бит проверял. это моя ошибка. плохо читал. там написано бит 5, а я проверял бит 5, только с учетом битов от 1 до 8, а не от 0 до 7.
вот такие глюки ловлю, хотя знаю, что так биты надо считать. ох как ржать охото!
но все-равно остается вопрос. если использовать стандартные функции FreeBasic, get#, put#, состояние порта, когда некое устройство посылает информацию о том, что оно отдает байт, придется читать на прямую.
http://bugtraq.ru/library/programming/rs232.html
после прочтения данной статьи, мне сразу много чего открылось.
оказывается, я программировал не тот регистр, вот так бывает.
мало того, и не тот бит проверял. это моя ошибка. плохо читал. там написано бит 5, а я проверял бит 5, только с учетом битов от 1 до 8, а не от 0 до 7.
вот такие глюки ловлю, хотя знаю, что так биты надо считать. ох как ржать охото!
но все-равно остается вопрос. если использовать стандартные функции FreeBasic, get#, put#, состояние порта, когда некое устройство посылает информацию о том, что оно отдает байт, придется читать на прямую.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
В линухе можно сделать примерно так...
Во первых, все устройства в нем размещаются в файловой системе (для меня по первой это было странно), размещены обычно в /dev/, и драйвера ядра позволяют общаться с устройствами также как и с файлами.
Во вторых, надо иметь права, на работу с устройством, но во время испытаний мона с етим пока не заморачиваться и делать все из под рута, у него везде прав хватит
В итоге, чтобы сделать нечто на порте, мы должны сделать следующее: открыть как обычный файл в бинарном режиме устройство /dev/port, спеститься на 378 (иль скок надо) байт seek-ом и записать/прочитать нужный байт. Вот както так это должно выглядеть. Однако помимо /dev/port обычно создают устройство /dev/lp0 - которое и есть уже сам lpt порт, как с ним работать я незнаю, но подозреваю, что аналогично, тока в нем ограниченное адресное пространство под один порт.
Во первых, все устройства в нем размещаются в файловой системе (для меня по первой это было странно), размещены обычно в /dev/, и драйвера ядра позволяют общаться с устройствами также как и с файлами.
Во вторых, надо иметь права, на работу с устройством, но во время испытаний мона с етим пока не заморачиваться и делать все из под рута, у него везде прав хватит
В итоге, чтобы сделать нечто на порте, мы должны сделать следующее: открыть как обычный файл в бинарном режиме устройство /dev/port, спеститься на 378 (иль скок надо) байт seek-ом и записать/прочитать нужный байт. Вот както так это должно выглядеть. Однако помимо /dev/port обычно создают устройство /dev/lp0 - которое и есть уже сам lpt порт, как с ним работать я незнаю, но подозреваю, что аналогично, тока в нем ограниченное адресное пространство под один порт.
Re: работа с com портами
наконец, у меня заработала машина пума. но вот такая ерунда. к примеру, открываю я ком порт на 9600, соответственно, я должен засылать символы в порт именно с этой скоростью. я думал, что во FreeBasic, функция put, сама обрабатывает этот случай, а нет. покрайней мере под dos- не пашет. символы летят в порт со злющей скоростью, следовательно, машина захлебывается. ставлю слееп 2, тоже не прокатывает. видимо это проблема dos, слееп может работать только 1/18, тоесть начиная с 55 мс.
где-то, когда я учил ассемблер, было написано как под dos увеличить частоту прерывания таймера. но там через прерывания dos.
можно попробовать не слееп, а сверяться с таймером. может он настроен по нармальному.
короче, во FreeBasic, работа с ком портами, реализована не очень. не возможно проверить состояние регистров, приходиться на прямую обращатся к портам. конечно если юзать модем, в самый раз, а вот мудрить с приборами-, приходится применять низкий уровень.
хорошо, что они сделали обращения к портам через дрова,. тоесть под dos, линукс и windows, можно писать на низком уровне. правда в linux, прогу, наверное, придется запускать с особыми правами, но это фигня.
тукс, ты пробовал под linux, запускать программу следующего содержания:
она работает из любого пользователя, или только из root?
просто я в линухе, не спец, а прогу надо продумать, чтоб она работала.
заработает нормально под dos, поставлю linux и буду портировать. я не просто так, заморочился с портами, ведь это единственный способ, который портируемый. а поповоду таймеров, ну там вы сами знаете
#ifdef __FB_DOS__
всякая фигня под \dos
#endif
просто хочется сделать так, чтоб было минимальное изменение кода.
пойду, погляжу wiki, хотя там уже все перешуршено.
где-то, когда я учил ассемблер, было написано как под dos увеличить частоту прерывания таймера. но там через прерывания dos.
можно попробовать не слееп, а сверяться с таймером. может он настроен по нармальному.
короче, во FreeBasic, работа с ком портами, реализована не очень. не возможно проверить состояние регистров, приходиться на прямую обращатся к портам. конечно если юзать модем, в самый раз, а вот мудрить с приборами-, приходится применять низкий уровень.
хорошо, что они сделали обращения к портам через дрова,. тоесть под dos, линукс и windows, можно писать на низком уровне. правда в linux, прогу, наверное, придется запускать с особыми правами, но это фигня.
тукс, ты пробовал под linux, запускать программу следующего содержания:
- Код:
'speakersound.bas
Sub Sound(ByVal freq As UInteger, dur As UInteger)
Dim t As Double,f1 As Unsigned Short
f1 = 1193181 \ freq
Out &h61,Inp(&h61) Or 3
Out &h43,&hb6
Out &h42,LoByte(f1)
Out &h42,HiByte(f1)
t=Timer
While ((Timer - t) * 1000) < dur
Sleep 0,1
Wend
Out &h61,Inp(&h61) And &hfc
End Sub
Sound(523, 60) 'C5
Sound(587, 60) 'D5
Sound(659, 60) 'E5
Sound(698, 60) 'F5
Sound(784, 60) 'G5
Sound(880, 60) 'A5
Sound(988, 60) 'B5
Sound(1046, 60) 'C6
она работает из любого пользователя, или только из root?
просто я в линухе, не спец, а прогу надо продумать, чтоб она работала.
заработает нормально под dos, поставлю linux и буду портировать. я не просто так, заморочился с портами, ведь это единственный способ, который портируемый. а поповоду таймеров, ну там вы сами знаете
#ifdef __FB_DOS__
всякая фигня под \dos
#endif
просто хочется сделать так, чтоб было минимальное изменение кода.
пойду, погляжу wiki, хотя там уже все перешуршено.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
повнимательней прочитав про sleep и таймер, выяснилось следующее:
The accuracy of Sleep is variable depending on the OS cycle time (Windows NT/2K/XP: 15 ms, 9x/Me: 50 ms, Linux 10ms, DOS 55 ms).
что означает:
Точность sleep зависит от времени цикла OS. (Windows NT/2K/XP: 15 мс, 9x/ме: 50 мс, Linux 10ms, DOS 55 мс).
так что в dos, sleep можно применять как:
print"нажмите любую клавишу"
sleep
с такой большой задержкой, ни чего не замутить.
а про таймер, написано:
If the processor has a precision timer (as the Performance Counter Pentium processors from
Intel have) and the OS uses it, the precision is linked to the processor clock and microseconds can be expected. With older processors (386, 486), and
always in DOS, the resolution is 1/18 second.
если у тебя процессор intel пентиум с прецизионным таймером, все отсчитывается, вплодь до одной мс. с процессором 386, 486, и всегда в dos, отсчет идет 1/18- тоесть, 55 мс.
неужели, под dos, мне придется использовать функции bios. кстати, я так пробовал, все работает нормально. эти функции сами знают, сколько ждать после засылки символа в порт и т.д.
кстати, от куда они это знают. не ужели, включают более большую скорость прерывания таймера.
может кто-нибудь знает, чем можно заменить функции из файла bios.bi, или для языка си - bios.h
в mingw, этих заголовков нет. в линуксовом gcc, я думаю тоже.
но ведь народ как-то портирует свои старые проги. не ужели, сами в ручную переписывают через функции ос.
вот блин, заморочился, но все-таки интересно. надо добить. впринципе, на работе меня об этом не просили, просто мне надоело нажимать каждые 6 страниц, любую клавишу. вот я и решил переписать прогу на FreeBasic, и работать по xon/xoff. пума это поддерживает.
The accuracy of Sleep is variable depending on the OS cycle time (Windows NT/2K/XP: 15 ms, 9x/Me: 50 ms, Linux 10ms, DOS 55 ms).
что означает:
Точность sleep зависит от времени цикла OS. (Windows NT/2K/XP: 15 мс, 9x/ме: 50 мс, Linux 10ms, DOS 55 мс).
так что в dos, sleep можно применять как:
print"нажмите любую клавишу"
sleep
с такой большой задержкой, ни чего не замутить.
а про таймер, написано:
If the processor has a precision timer (as the Performance Counter Pentium processors from
Intel have) and the OS uses it, the precision is linked to the processor clock and microseconds can be expected. With older processors (386, 486), and
always in DOS, the resolution is 1/18 second.
если у тебя процессор intel пентиум с прецизионным таймером, все отсчитывается, вплодь до одной мс. с процессором 386, 486, и всегда в dos, отсчет идет 1/18- тоесть, 55 мс.
неужели, под dos, мне придется использовать функции bios. кстати, я так пробовал, все работает нормально. эти функции сами знают, сколько ждать после засылки символа в порт и т.д.
кстати, от куда они это знают. не ужели, включают более большую скорость прерывания таймера.
может кто-нибудь знает, чем можно заменить функции из файла bios.bi, или для языка си - bios.h
в mingw, этих заголовков нет. в линуксовом gcc, я думаю тоже.
но ведь народ как-то портирует свои старые проги. не ужели, сами в ручную переписывают через функции ос.
вот блин, заморочился, но все-таки интересно. надо добить. впринципе, на работе меня об этом не просили, просто мне надоело нажимать каждые 6 страниц, любую клавишу. вот я и решил переписать прогу на FreeBasic, и работать по xon/xoff. пума это поддерживает.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
с правами работает, пиликаеттукс, ты пробовал под linux, запускать программу следующего содержания:
Re: работа с com портами
Tux, огромное спасибо, будем пробовать.
когда-то я выкладывал свою колекцию справочников по ассемблеру, вот советую почитать от туда:
Справочник программиста на персональном компьютере фирмы IBM
вся информация по ком портам и вообще по всему компу. не каких задержек делать не надо. я читал дешевые статейки, в которых не сказана важная вещь.
помимо проверки бита 4 регистра &h3f8+6, статус модема, надо проверять пятый бит статуса линии, регистр &h3f8+5.
только когда статус линии готов, тоесть буфер порта пуст, тогда можно слать байт.
в этом справочнике все рассказывается как писать на бейсике, функциями dos, функциями bios, работа на прямую с портами и прямое обращение к памяти, к адресам портов. тоесть, приводится программа на бейсике, а потом на ассемблере.
справочник очень древний, тогда еще pentium в проекте небыло, но это азы, которые очень полезны, если хочешь писать на прямую в железо.
как здорово, что такое есть и на русском.
когда-то я выкладывал свою колекцию справочников по ассемблеру, вот советую почитать от туда:
Справочник программиста на персональном компьютере фирмы IBM
вся информация по ком портам и вообще по всему компу. не каких задержек делать не надо. я читал дешевые статейки, в которых не сказана важная вещь.
помимо проверки бита 4 регистра &h3f8+6, статус модема, надо проверять пятый бит статуса линии, регистр &h3f8+5.
только когда статус линии готов, тоесть буфер порта пуст, тогда можно слать байт.
в этом справочнике все рассказывается как писать на бейсике, функциями dos, функциями bios, работа на прямую с портами и прямое обращение к памяти, к адресам портов. тоесть, приводится программа на бейсике, а потом на ассемблере.
справочник очень древний, тогда еще pentium в проекте небыло, но это азы, которые очень полезны, если хочешь писать на прямую в железо.
как здорово, что такое есть и на русском.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
у меня, наконец то заработала машина по протоколу xon/xoff.
правдо, в dos при закрытии ком порта есть глюк.
короче, говорю все последовательно.
включаю комп, пока он грузится включаю пуму.
после загрузки операционки, запускаю прогу на печать- все работает
завершаю программу, запускаю снова, а она не работает, постоянно получает xoff.
перегружаю пуму, запускаю прогу, так-же все не работает.
перезапускаю комп, после загрузки dos, запускаю прогу, все работает.
видимо, как-то по левому закрывается порт. закрываю порт командой close без параметров. в документации, написано что так можно. close, закрывает все открытые файлы и устройства.
завтра попробую закрыть с параметром, мож глюк пройдет.
а вообще, надо порытся по инету, и узнать, как правильно закрыть порт.
если кто-нибудь встречался с такой проблемой, напишите.
так же в документации к freeBasic'у сказано, что в dos поддержка com портов эксперементальна от com1, до com4
блин, как не охото самому писать функцию инициализации порта. если глюк не выяснится, придется.
правдо, в dos при закрытии ком порта есть глюк.
короче, говорю все последовательно.
включаю комп, пока он грузится включаю пуму.
после загрузки операционки, запускаю прогу на печать- все работает
завершаю программу, запускаю снова, а она не работает, постоянно получает xoff.
перегружаю пуму, запускаю прогу, так-же все не работает.
перезапускаю комп, после загрузки dos, запускаю прогу, все работает.
видимо, как-то по левому закрывается порт. закрываю порт командой close без параметров. в документации, написано что так можно. close, закрывает все открытые файлы и устройства.
завтра попробую закрыть с параметром, мож глюк пройдет.
а вообще, надо порытся по инету, и узнать, как правильно закрыть порт.
если кто-нибудь встречался с такой проблемой, напишите.
так же в документации к freeBasic'у сказано, что в dos поддержка com портов эксперементальна от com1, до com4
блин, как не охото самому писать функцию инициализации порта. если глюк не выяснится, придется.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
ну все, проблема решена, но только под dos. программа работает и после перезагрузки машины. вот только через функции биос это решилось.
если надо, расскажу как с com работать через биос.
короче, почему-то на прямую с портами, не как не получить статус того, что пришел байт.
через биос прокатывает. но мне от этого радости мало.
задумка была сделать многоплатформенную программу, а получилась зависит от биос, причем только в dos.
сегодня попробовал опять, переписать функциями FreeBasic,
print #
и т.д.
но почему-то символы летят в порт не с скоростью с которой я его открыл, а влет.
пытался искать универсальную библиотеку, пока безуспешно.
правда что-то видел для c++, но там с шаблонами и т.д.
понятно, что на c++ написать можно все, но моя цель, добится управление пумой полностью на FreeBasic.
у меня пока наработе нет машины с windows, некак не проверить, может там будет все нормально. раз в винде нормально, в линуксе, надеюсь, тоже будет работать.
ух уж этот com порт. а если потом придется так-же с usb, еще ьбольше намучаюсь.
хотя, в винде и linux, с этим все впорядке.
если надо, расскажу как с com работать через биос.
короче, почему-то на прямую с портами, не как не получить статус того, что пришел байт.
через биос прокатывает. но мне от этого радости мало.
задумка была сделать многоплатформенную программу, а получилась зависит от биос, причем только в dos.
сегодня попробовал опять, переписать функциями FreeBasic,
print #
и т.д.
но почему-то символы летят в порт не с скоростью с которой я его открыл, а влет.
пытался искать универсальную библиотеку, пока безуспешно.
правда что-то видел для c++, но там с шаблонами и т.д.
понятно, что на c++ написать можно все, но моя цель, добится управление пумой полностью на FreeBasic.
у меня пока наработе нет машины с windows, некак не проверить, может там будет все нормально. раз в винде нормально, в линуксе, надеюсь, тоже будет работать.
ух уж этот com порт. а если потом придется так-же с usb, еще ьбольше намучаюсь.
хотя, в винде и linux, с этим все впорядке.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: работа с com портами
с usb какраз по моему все проще, тк ща есть куча контроллеров, превращающих его в обычный параллельный порт, ну соответственно дрова или библиотеки для работы с ними, но ет конечно если делать нечто под свое устройство, а не уже для готового
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|