Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Вниз

Com-port!!!   Найти похожие ветки 

 
8UnG   (2003-07-22 21:31) [0]

Задача такая : нужно посылать и принимать байтики на порт com1.
Помогите плиз...


 
Archon Kazansky   (2003-07-23 09:51) [1]

http://www.happytown.ru/prog/practika/com_win32.html


 
VJack   (2003-07-24 09:24) [2]

Компоненты - ответ очевиден. Лично я могу порекомендовать TApdComPort от SysTools.
Пример:
procedure TGuard.ComPortTriggerAvail(CP: TObject; Count: Word);
var
i: Word;
begin
try
for i := 1 to Count do
sComString := sComString + IntToHex(Ord(ComPort.GetChar),2);
except
on Exception do begin
sCurrentError := DateTimeToStr(Now) + " ComPortTriggerAvail error: Unable to GetChar from port: " + Exception(ExceptObject).Message;
LogMessage(sCurrentError);
SaveDataToFile(sErrorStore,sCurrentError);
if (rAppData.fSendMail) then thMailSender := TMailSender.Create(False);
end;
end;
end;

procedure TGuard.ComPortTriggerTimer(CP: TObject; TriggerHandle: Word);
var
dtNow: TDateTime;
sStart, sEnd, sTmp: String;
begin
try
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//first timer - checking controller work
if TriggerHandle = ComTimerTriggerHandle then begin
try
dtNow := Time;
sStart := "08:00:00";
if (dtNow - dtLastCall > StrToTime("00:" + IntToStr(rAppData.iNoCalls) + ":00")) then begin
if(DayOfWeek(Now) <> 1) then begin
case DayOfWeek(Now) of
2..6: sEnd := "19:00:00";
7: sEnd := "16:00:00";
end;//case
if((dtNow >= StrToTime(sStart)) And (dtNow <= StrToTime(sEnd))) then begin
sTmp := rAppData.sNetAddress + rsNoCallsS + IntToStr(rAppData.iNoCalls) + rsNoCallsE + DateTimeToStr(Now);
ExecuteProgram(rsNetSend, sTmp);
SaveDataToFile(sErrorStore, sTmp);
end;
end;//DayOfWeek
end;
finally
ComPort.SetTimerTrigger(ComTimerTriggerHandle,COM_TMR_INTRV,True);
end;
end;//TriggerHandle = ComTimerTriggerHandle
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//second timer - main working cycle goes here
if TriggerHandle = ComWorkTimerTriggerHandle then begin
try
sComString := Trim(sComString);
if sComString <> "" then begin
InsertData(sComString);
sComString := "";
end;
if ComPort.OutBuffFree >= OUT_BUFFER_FREE then begin
//initiate data transfer from controller
ComPort.PutBlock(bGet,High(bGet));
dtLastCall := Time;
end;
finally
ComPort.SetTimerTrigger(ComWorkTimerTriggerHandle,rAppData.iTicks,True);
end;
end;//TriggerHandle = ComWorkTimerTriggerHandle
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
except
on Exception do begin
sCurrentError := DateTimeToStr(Now) + " ComPortTriggerTimer error: " + Exception(ExceptObject).Message;
LogMessage(sCurrentError);
SaveDataToFile(sErrorStore,sCurrentError);
SaveDataToFile(sErrorStore,"sComString = " + sComString);
end;
end;//try
end;



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.075 c
8-33227
Lister
2003-04-16 16:26
2003.08.11
Анимированная форма


11-33085
SSCha
2002-12-05 19:58
2003.08.11
Win2000 Pro rus SP3 и KOL


14-33276
race1
2003-07-23 16:19
2003.08.11
Partition Magic 8 trouble


4-33388
Серега
2003-06-08 16:57
2003.08.11
Несколько файлов в один


14-33346
fofa
2003-07-25 13:16
2003.08.11
Где взять лицензию на InterBase 6.0.1хххх (-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский