Re[2]: Дайте задание
Здравствуйте, Kolotov.
KA> Просто задание, бесплатное...
KA> Ушло в личку на solarw DOG mail DOT ru
sola***@m*****.ru - сдох всё писать на sola***@e*****.ru пока я не узнаю, почему
я не могу добраться до своего ящика на мэйле.
← Май 2005 → | ||||||
19
|
22
|
|||||
---|---|---|---|---|---|---|
29
|
||||||
За последние 60 дней ни разу не выходила
Сайт листа:
http://kirov.lug.ru
Открыт:
15-09-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.kirovlug-list@subscribe.ru
Здравствуйте, Kolotov.
KA> Просто задание, бесплатное...
KA> Ушло в личку на solarw DOG mail DOT ru
sola***@m*****.ru - сдох всё писать на sola***@e*****.ru пока я не узнаю, почему
я не могу добраться до своего ящика на мэйле.
Здравствуйте,
Zmei пишет:
> C> А какие проблемы реализации обмена по RS-232 в наше время могут
> C> возникать? Информации и примеров реализации предостаточно, имхо.
> C> Было бы понятней, если бы вопрос касался обмена по USB например...
> Можно было бы и обсудить обмен и по USB в сравнении с RS-232 - лучше,
> быстрее, сильнее. Каково ваше имхо?
В части возможных возникающих при программировании проблем, наверное,
всё очень похоже. У меня был опыт программирования обмена по USB с
устройством, интерфейс USB которого был построей на м/сх FT245BM фирмы
FTDI. Драйвер для FT245BM под windows (а именно там всё и происходило)
предоставляет интерфейс, имитирующий интерфейс файлового ввода/вывода
windows. Так что проблема адаптации кода в данном случае сводилась к
переименованию вызываемых функций :) Так же, существует версия драйвера,
создающего в ОС виртуальный COM-порт, в этом случае совсем всё просто,
но недоступна пиковая пропускная способность шины, обеспечиваемая первым
вариантом доступа к USB.
> C> Из своего опыта могу сделать такие выводы: проблем с реализацие
> C> "пересылки байтов" обычно не возникает, всё делается по докам, проблемы
> C> начинаются, когда дело доходит до программирования обмена в соответствии
> C> с каким-либо протоколом.
> А можно поподробнее? Интересно...
Проблема реализации протокола обмена программистом "вручную" состоит в
том, что спецификации протокола часто представляют собой словесное (или
графическое) описание алгоритмов работы (процедур передачи), описание
структур данных. Иногда может быть нарисован граф состояний автомата,
реализующего протокол, и в особо продвинутых случаях - формальная
спецификация протокола на каком-либо языке формального описания. Так
что, при переводе описания протокола на язык программирования ошибки
просто неизбежны (из-за недостаточной формализации спецификации
протокола). Если, например, с анализом структур данных протокола всё
просто, то с процедурами передачи могут возникнуть проблемы, если
учитывать, что при этом важны не только правила взаимодействия
передающих сторон, но и то, как это взаимодействие выстроено во времени.
Извините, "понесло"... :)
> C> А какие проблемы возникли у Вас?
> Проблемы сравнения и нахождения лучшего из вариантов... Несомненно...
Может быть стоило сразу попробовать взяться сначала за реализацию одного
варианта, а затем - другого, глядишь, в процессе, все "метания" и
прекратились бы...
> C> вроде производительности, то тут от компиляции не уйти. С другой
> C> стороны, если скрипт работает с портом не напрямую, а через некую
> C> библиотеку, то всё зависит от её функциональных возможностей и
> C> производительности.
> На C - понятно... Как реализовать на скрипте? Как работать напрямую с
> портом посредством скрипта? В каких случаях использоват библиотеку?
Могу предложить вариант для windows... Сразу извиняюсь за оффтопик,
учитывая название конференции :)
Один из вариантов такой:
На одном из языков программирования (например С++) пишется библиотека
для работы с портом, которая представляет собой COM-объект. Далее, на
скриптовом языке (VBScript/JavaScript) пишется целевая программа,
которая создаёт экземпляр объекта библиотеки, и работает с портом.
Zmei пишет:
> (с) ProГород (No20, 28 мая 2005):
>
> Пингвины дарят мороженное!
>
> В минувшую суботу в нашем городе появились пингвины
>
> Пингвиненки Гоши, представляющие Кировский хладокомбинат, всю неделю
> гуляли по раскаленным кировским улицам. Детишки подбегали к Гоше и
> пытались выяснить, как и откуда появлся в городе пингвин, а влюбленные
> парочки хватали Гошу за руку и тащили фотографироваться. Пингвины
> будут гулять по городу всю следующие неделю, а портреты Гоши будут
> встречать вас каждый раз, когда вы решите полакомится кировским
> мороженным.
>
О! А давайте в очередную линуксовку найдем этих пингвинов и пофоткаемся
с ними, а так же вручим им Ubuntu... по одной штуке на клюв...
Вася
ПС: В догонку сообщаю, что видел в магазинах новый сыр под названием
"Плавленый пингвин" ;)
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=254&mode=print
рекомендую почитать... интересная точка зрения... в начале вроде бы
мутно, зато к концу захватывает... и очень многое объясняет...
> А зачем на дельфях? Чем, к примеру, Java не устраивает?
ВМ в ВГУ. Обязательная программа. Выбирать языки программирования не
приходится - все выбрано до нас... Так сказать принудиловка... Раньше
вообще на Pascal с обязательным применением TurboVision было...
> 14 мая 2005 года в 14:30 осуществлен первый релиз в рамках проекта ЭКВУС.
> Программа называется ЭКВУС - Иа ( в честь ослика), и предназначена для
> управления светом на выездных спектаклях. Потому её фунциональность
> минимальна, но вполне отвечает требованиям. Ослик весит 3,5 кило.
> Написан на Perl+Gtk2. Начало положено.
На сайте http://kirov.lug.ru/ в раздел "Проекты"
(http://kirov.lug.ru/projects/projects.shtml) добавлена информация об
проекте "ЭКВУС".
2 Zmei
Так вот... В винде с rs232 тоже проблем никаких нет :)
HANDLE hCom;
DCB dcb;
COMSTAT comStat;
DWORD dwError
......
hCom = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL
);
..........
GetCommState(hCom, &dcb);
dcb.BaudRate = CBR_9600;
dcb.fParity = FALSE;
dcb.fOutxCtsFlow=TRUE;
dcb.fOutxDsrFlow=FALSE;
dcb.fDtrControl=DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity=FALSE;
dcb.fTXContinueOnXoff=TRUE;
dcb.fOutX=FALSE;
dcb.fInX=FALSE;
dcb.fErrorChar=FALSE;
dcb.fNull=FALSE;
dcb.fRtsControl= RTS_CONTROL_ENABLE;
dcb.fAbortOnError=FALSE;
dcb.Parity = NOPARITY;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
SetCommState(hCom, &dcb);
................
switch (fRTS)
{
case RTS_NULL_BEFORE_TRANS:
crc.wcrc=GetCRC(command,6);
command[6]=crc.lByte;
command[7]=crc.hByte;
// состояние порта
ClearCommError(hCom, &dwError, &comStat);
// Если есть данные в очереди - очищаем ее
if (comStat.cbInQue)
ReadFile(hCom,m.bBuff,comStat.cbInQue,&dwByteRead,NULL);
// Пишем
fSuccess=WriteFile(hCom,command,8,&dwByteWrite,NULL);
SetTimer(hWnd,IDT_MS,1,NULL);
fRTS=RTS_NULL_AFTER_TRANS;
case RTS_NULL_AFTER_TRANS:
EscapeCommFunction(hCom,SETRTS);
SetTimer(hWnd,IDT_MS,8000,NULL);
fRTS=RTS_ONE;
break;
case RTS_ONE:
ClearCommError(hCom, &dwError, &comStat);
if (comStat.cbInQue)
{
// Здесь читаем из порта
ReadFile(hCom,m.bBuff,comStat.cbInQue,&dwByteRead,NULL);
// Если прочитали сколько в очереди было - все ок
if (comStat.cbInQue==dwByteRead)
{
// Тут моя обработка полученных данных
switch (m.bBuff[1])
{
case 0xb1:
B1(m.bBuff[2]+5);
break;
case 0xb3:
B3(m.bBuff[2]/4);
break;
default:
lstrcpy(str,"uncnown");
break;
}
SendDlgItemMessage(hWnd,IDC_EDIT1,WM_SETTEXT,0,(LPARAM)(LPCTSTR) str);
}
// Иначе что то не так :)
else MessageBox(hWnd,"not
true","error",MB_OK);
}
break;
}
.................
Открывает com1 скорость 8n1 без контроля четности, позволяет дергать
линией RTS по своему усмотрению.
Не будет работать на NT и выше, т.к. управление RTS происходит
посредством прямого обращения к портам i/o.
В данном случае был обмен данными с девайсом по rs485 по
ModBus-совместимому протоколу с преобразователем 232-485 (для 485 линией
RTS сигнализируем о приеме передаче данных от мастера) Можно еще ошибки
обрабатывать при открытии порта и т.д....
Почти то же самое :) на асме:
................
setcomport proc
invoke CreateFile, addr COMN.buff, GENERIC_READ+GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL
mov hCom, eax
invoke GetCommState, hCom, addr dcb
mov dword ptr[dcb.fbits],01085h
mov dcb.BaudRate,CBR_9600
mov dcb.Parity,NOPARITY
mov dcb.ByteSize,8
mov dcb.StopBits,ONESTOPBIT
invoke SetCommState, hCom, addr dcb
ret
setcomport endp
.............
BeginRequest proc
invoke EscapeCommFunction, hCom, CLRRTS
mov fRTS,RTS_NULL
invoke SetTimer, hWndMain, IDT_MS, 1, NULL
ret
BeginRequest endp
..................
.if fRTS==RTS_NULL
invoke getcrc, addr command, 6
mov command[6],al
mov command[7],ah
invoke ClearCommError, hCom, addr dwError, addr comStat
mov eax,comStat.cbInQue
.if (eax)
invoke ReadFile, hCom, addr mbuf, eax, addr dwByteRead, NULL
.endif
invoke WriteFile, hCom, addr command, 8, addr dwByteWrite, NULL
mov fRTS,RTS_NULL_AT
invoke SetTimer, ebx, IDT_MS, 1, NULL
.elseif fRTS==RTS_NULL_AT
invoke EscapeCommFunction, hCom, SETRTS
invoke SetTimer, ebx, IDT_MS, 4000, NULL
mov fRTS,RTS_ONE
.elseif fRTS==RTS_ONE
invoke ClearCommError, hCom, addr dwError, addr comStat
mov eax,comStat.cbInQue
or eax,eax
jz nxtr
invoke ReadFile, hCom, addr mbuf, eax, addr dwByteRead, NULL
mov eax,dwByteRead
cmp eax,comStat.cbInQue
jne nxtr
......................
> Оченб надо задание для фоновой работы, реализаия работы с БД на Делфи.
> Что-нибудь не очень сложное. Если ещё и платят, буду ваще рад
Получил отлуп от mail.ru. Куда писать? Не на ezmail.ru же?
Добрый день!
> -----Original Message> From: Zmei
> Subject: АД с фазным ротором
>
> О поднятой на линуксовке теме о герметичном исполнении АД с
> фазным ротором в судовом приводе (подумалось позже): ну,
> запяем мы его в герметичный корпус - вал наружу, сальники
> поставим, что бы ничего не сочилось, но как мы тогда его
> охлаждать будем?
>
Прямоточное охлаждение забортной водой через трубки в статоре (для прямого исполнения).
;)
Есть море вариантов охлаждения двигателей. Причем в основном герметичных...
С уважением, Илья Р. Быстров
ICQ UIN: 139129201
Zmei пишет:
>(с) ProГород (No20, 28 мая 2005):
>
>Пингвины дарят мороженное!
>
>В минувшую суботу в нашем городе появились пингвины
>
>Пингвиненки Гоши, представляющие Кировский хладокомбинат, всю неделю
>гуляли по раскаленным кировским улицам. Детишки подбегали к Гоше и
>пытались выяснить, как и откуда появлся в городе пингвин, а влюбленные
>парочки хватали Гошу за руку и тащили фотографироваться. Пингвины
>будут гулять по городу всю следующие неделю, а портреты Гоши будут
>встречать вас каждый раз, когда вы решите полакомится кировским
>мороженным.
>
>
Какой-то он немного отмороженный :)
> Оченб надо задание для фоновой работы, реализаия работы с БД на Делфи.
> Что-нибудь не очень сложное. Если ещё и платят, буду ваще рад
Просто задание, бесплатное...
Ушло в личку на solarw DOG mail DOT ru
З.Ы. Будет интересно, если ты в дальнейшем (после фоновой) разовьешь это
до кроссплатформенного (обязательно) решения с дополнительными
возможностями (за ними в личку)
YuRA пишет:
>Извиняюсь, если оффтопик.
>
>Оченб надо задание для фоновой работы, реализаия работы с БД на Делфи.
>Что-нибудь не очень сложное. Если ещё и платят, буду ваще рад
>
>Всем спасибо!
>
>
А зачем на дельфях? Чем, к примеру, Java не устраивает?
Здравствуйте все,
2 asu tec-1:
Есть SUBJ могу принести на следующую линуксовку в составе Атмеловского
диска 2004 года.
(с) ProГород (No20, 28 мая 2005):
Пингвины дарят мороженное!
В минувшую суботу в нашем городе появились пингвины
Пингвиненки Гоши, представляющие Кировский хладокомбинат, всю неделю
гуляли по раскаленным кировским улицам. Детишки подбегали к Гоше и
пытались выяснить, как и откуда появлся в городе пингвин, а влюбленные
парочки хватали Гошу за руку и тащили фотографироваться. Пингвины
будут гулять по городу всю следующие неделю, а портреты Гоши будут
встречать вас каждый раз, когда вы решите полакомится кировским
мороженным.