請問用BCB撰寫RS-232通訊埠,在Kylix3.0 for Linux中... |
尚未結案
|
win5858
一般會員 發表:11 回覆:1 積分:2 註冊:2003-03-05 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
引言: 此為懸賞題 href="http://sourceforge.net/projects/tpaproclx/">http://sourceforge.net/projects/tpaproclx/william兄: 懸賞題是由系統自動發出的,如問題在一定時間內未得到任何回覆,系統立即產生懸賞題! 網路志工聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]--- |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
這兒有一篇: http://home.kimo.com.tw/bruce0211/Kylix/trial/comport.txt
轉貼如下:
{
Kylix Delphi 版 讀寫 ComPort 範例
0.此範例完整原始檔案下載位置 ftp://members.aol.com/db1joe/kyserex.zip
1.以檔案觀念讀寫 ComPort
2.使用時要將 /dev/ttyS0 讀寫權限開放 (使用指令 chmod 777 /dev/ttyS0 )
3.真正的應用上 , 要用多執行緒去不停的讀 ComPort , 此範例用 Timmer 去讀 ComPort
}
unit comtest1; { 15.05.2001: Funktioniert, fgt jedoch bei jedem Lesevorgang ein Linefeed hinzu. 23.05.2001: fixed } interface uses SysUtils, Types, Classes, Variants, QGraphics, QControls, QForms, QDialogs, QStdCtrls, LibC, QTypes, QExtCtrls; type TForm1 = class(TForm) OpenButton: TButton; CloseButton: TButton; WriteButton: TButton; ReadButton: TButton; Box: TListBox; ReadLabel: TLabel; WriteEdit: TEdit; WritelnButton: TButton; OpenLabel: TLabel; EndButton: TButton; WriteLabel: TLabel; Timer: TTimer; procedure OpenButtonClick(Sender: TObject); procedure CloseButtonClick(Sender: TObject); procedure WriteButtonClick(Sender: TObject); procedure ReadButtonClick(Sender: TObject); procedure WritelnButtonClick(Sender: TObject); procedure EndButtonClick(Sender: TObject); procedure TimerTimer(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } serFileTx, comfd:integer; ss: string; end; var Form1: TForm1; implementation {$R *.xfm} { Button1 intialized the port Button2 Close the port Button3 write the string to the port } {-----開啟 COM1 通訊埠 (重點 !!)---------------------------------------------} procedure TForm1.OpenButtonClick(Sender: TObject); var ios: termios; begin serFileTx:= LibC.Open ('/dev/ttyS0',fmOpenReadWrite or o_nonblock); tcgetattr (serFileTx,ios); cfmakeraw (ios); cfsetospeed (ios, b115200); cfsetispeed (ios,b115200); tcsetattr (serFileTx,tcsanow,ios); OpenLabel.Caption:= IntToStr (serFileTx) end; {-----關掉 COM1 通訊埠 ------------------------------------------------------} procedure TForm1.CloseButtonClick(Sender: TObject); begin fileClose(serFileTx); OpenLabel.Caption:= '' end; {-----寫入資料至 COM1 通訊埠 ------------------------------------------------} procedure TForm1.WriteButtonClick(Sender: TObject); var d:string; resultat: integer; begin d:= WriteEdit.Text; {WriteEdit 只不過是畫面上的一個 Edit 元件 } resultat:= FileWrite (serFileTx, d[1], Length(d)); WriteLabel.Caption:= IntToStr (resultat) end; {-----寫入資料至 COM1 通訊埠 ( 有加 CHR(13) )--------------------------------} procedure TForm1.WritelnButtonClick(Sender: TObject); var d: string; resultat: integer; begin d:= WriteEdit.Text #13; resultat:= FileWrite (serFileTx, d[1], Length(d)); WriteLabel.Caption:= IntToStr (resultat) end; {$O-} {-----讀出 COM1 通訊埠資料 --------------------------------------------------} procedure TForm1.ReadButtonClick(Sender: TObject); var a: array [1..4096] of char; s: string; zaehler, index: integer; begin s:= ''; zaehler:= FileRead (serFileTx, a, sizeof (a)); ReadLabel.Caption:= IntToStr (zaehler); if zaehler > 0 then begin for index:= 1 to zaehler do s:= s a [index]; Box.Items.Text:= s end end; {$O } {-----結束程式 -------------------------------------------------------------} procedure TForm1.EndButtonClick(Sender: TObject); begin Application.Terminate end; {-----計時器(InterVal=100)不停去讀出 COM1 通訊埠資料------------------------} procedure TForm1.TimerTimer(Sender: TObject); begin ReadButtonClick(Sender) end; end.--- Have you ever wondered what it would be like? 發表人 - hagar 於 2003/03/31 18:00:42 |
wb3599
一般會員 發表:32 回覆:32 積分:12 註冊:2004-02-11 發送簡訊給我 |
|
piopoip
一般會員 發表:8 回覆:8 積分:13 註冊:2002-08-26 發送簡訊給我 |
請參考 serial program howto
http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/ 也是使用讀寫檔案方式使用RS232
把Asynchronous Input(使用SIGNAL)的範例拿來編譯即可
以下簡單解釋 #include
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |