Уважаемые форумцы, на работе поставили задачу написать прогу. которая в xp проверяет правильно ли работают com порты, но я раньше железо никогда не программировал поэтому даже не знаю с чего начать. Прогу планирую писать в delphi или pascal, кто знает в нете, где почитать про функции и процедуры, которые позволяют работать с com. Куда не кинусь готовые куски кода, а как работает та или иная процедура или функция не написано. Вобщем помогите кто чем может.
[Ответ]
Hopkroft 00:56 12.10.2007
Сообщение от Collateral:
Уважаемые форумцы, на работе поставили задачу написать прогу. которая в xp проверяет правильно ли работают com порты, но я раньше железо никогда не программировал поэтому даже не знаю с чего начать. Прогу планирую писать в delphi или pascal, кто знает в нете, где почитать про функции и процедуры, которые позволяют работать с com. Куда не кинусь готовые куски кода, а как работает та или иная процедура или функция не написано. Вобщем помогите кто чем может.
Ну а чем тебе готовые процедуры не нравяться?! Если конечно ты не говоришь о компонентах без исходинков. Берёшь мануалы и смотришь как работать с COM портом под винду, параллельно юзаешь готовые процедуры. Год или 2 назад, я находил даже целый сайт посвящённый программированию COM портов в винде, но он был на английском.
В своё время я таким способом разбирался с программированием звуковой карточки в ДОС ))
P.S.
Есть книжка под названием Сопряжение PC с внешними устройствами. В неё имеються примеры программирования RS-232 на паскале, но они для ДОСа. Ещё посмотри различные DDK которые идут к винде, там должно быть то что тебя интересует.
[Ответ]
AIM-9M 09:35 12.10.2007
А это, если его открыть как файл, и читать-писать туда, не?
[Ответ]
Hopkroft 09:47 12.10.2007
Сообщение от AIM-9M:
А это, если его открыть как файл, и читать-писать туда, не?
Вариант!
Вот пример с одного форума. Правда на С Builder. Но он не сложный.
Сообщение от Ссылка с форума:
функциями API. Работа с файлами. В качестве файла указать COM порт.
if ((PortHandle = CreateFile(PortName, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
NULL)) == INVALID_HANDLE_VALUE)
{
MMSave->Enabled = false;
ErrorMsg("Нет доступа к порту " + AnsiString(PortName));
return;
}
Вместо PortName подставляете строку с именем требуемого порта.
private static void SendData()
{
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
port.Write("Пишите сколько хотите!");
port.Write(new byte[] {0x0A, 0xE2, 0xFF}, 0, 3);
port.Close();
}
[Ответ]
IT_Prof 16:25 12.10.2007
Кодил это дело, но потом быстро довольно надоело
Есть хорошие проги... rs232pro например.. поищи в инете... оч да ж неплохая...
[Ответ]
lollipop 22:24 12.10.2007
На делфях в инете почти что на всех сайтах есть пример одного и того же класса для работы с COM-портом. Если немного его адаптировать, то все будет нормально работать. alex_bas предлагает лучший вариант. Вся работа с COM уже реализована во 2 дотнете в 3-ех строчках. Создаешь отдельный поток и там уже далаешь с ком что угодно.
[Ответ]
Dimbass 18:42 13.10.2007
В-общем мой ответ напрягу=) Запускаешь рилагаемый exe и она сама ставит те компонент=) Заходишь в делфю и шаришь по компонентам в поиске нового Сразу найдёшь, ибо в названии ComPort присутствует=) На этом веселуха не заканчивается. Эта штука имееть достаточно нехилый мануал запускаемый из-под делфи F1. Ах да, на этом наш юмор не заканчивается, в папке, куда установился компонент есть офигительный Example, где уже наглядно продемонстрированы возможности сего. PS Удачи с написанием, сам когда делал курсяк - перерыл кучу инета, чтобы понять как оно работает, а тут наткнулся и офигел до чего дожили
Изображения