nlothik (nlothik) wrote,
nlothik
nlothik

О кросс-платформенном программировании

Вот на чём проще написать программу, которую можно использовать как на Хрюниксах, так и на Винде или на Маке -- на Си или на Джаве? Обычно я не задумываясь отвечаю "на Джаве!" Да? А вот фигачечная!!!

Всё зависит от того, что программе нужно делать. Если вывалить какое-то графическое окно и красиво считать там циферки -- да, можно на Джаве. И работать будет практицки везде.

А вот если надо работать с железом -- то частенько на Джаве без войны -- никак. Простой пример. Пишу небольшую программу, которая будет общаться с железкой через COM-порт. На Джаве для этого есть несколько библиотек. Оригинальная -- JavaComm. Не обновлялась с Джавы 1.2. Не входит в комплект стандартной поставки Джавы. Клон JavaComm -- RxTx. Проект ушёл в оффлайн. jSSC -- вроде живая... Для каждой из них нужно доставлять библиотеки и долго шаманить. Общее ощущение корявости и отсутствие человеческой документации полностью меня удручили.

Знаете, у кого есть хорошие и прекрасно документированные библиотеки для работы с серийными портами? ВНЕЗАПНО, у Майкрософт.

Там есть класс SerialPort с блекджеком и шлюхами: http://msdn.microsoft.com/en-us/library/system.io.ports.serialport%28v=vs.110%29.aspx

Красота же, блин! Но программа, написанная на C#, не запустится под Линуксом.

А что Си? А на Си писать под серийный порт можно, используя termios.h. И этот файл есть практически на всех итерациях хрюниксов -- на Линупсе, на FreeBSD, и даже на MacOS, и, более того, на cygwin под Виндой! Так что пусть бинарник и не запустится -- плевать я на это хотел, перекомпилировать, что, долго, что ли? Везде же есть животворящий gcc.

Только вот рисовать, используя termios.h, скажем так, непросто. Там надо коряги кода с битовыми операциями и флагами. Но есть добрый человек Теуниз ван Беелен (не знаю, правильно ли пишу его имя), который нарисовал свою библиотеку RS232, где работа с серийным портом была сильно упрощена:

http://www.teuniz.net/RS-232

Там нет работы с прерываниями (используется поллинг) и прочего, но для моих целей -- вполне достаточно. Мне сильно сложного не надо -- читать и писать char'ы в порт.
Tags: программирование, рекомендую, фигачечная
Subscribe

  • Опять накурился???

    Просто смешная картинка. С пятницей всех. Mirrored from Лабораторный Журнал №6 rss2lj

  • Русская, что ли

    Ехал из офиса, проезжал через небольшой городок, увидел интересный номерной знак. Впрочем, конечно, возможно, что это “а-ха”,…

  • Аффтопрограммирование

    В автомобили уже давно ставят компьютер с бортовой самодиагностикой. До 1996 года единообразия работы с этим компьютером не было, а теперь везде…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • Опять накурился???

    Просто смешная картинка. С пятницей всех. Mirrored from Лабораторный Журнал №6 rss2lj

  • Русская, что ли

    Ехал из офиса, проезжал через небольшой городок, увидел интересный номерной знак. Впрочем, конечно, возможно, что это “а-ха”,…

  • Аффтопрограммирование

    В автомобили уже давно ставят компьютер с бортовой самодиагностикой. До 1996 года единообразия работы с этим компьютером не было, а теперь везде…