freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi串口通信編程-文庫(kù)吧資料

2024-07-28 22:36本頁(yè)面
  

【正文】 ht(str),TrimLeft(str):去空格 StringReplace(str,oldpattern,newpattern):替換 Insert(s1,s2,index):s1插入 s2的第 index位置 中英文字符串長(zhǎng)度計(jì)算 Type Maximum length Memory required Used for ShortString 255 characters 2 to 256 bytes backward patibility AnsiString ~2^31 characters 4 bytes to 2GB 8bit (ANSI) characters WideString ~2^30 characters 4 bytes to 2GB Unicode characters。 第 4章 串行通信中的字符與字節(jié) 字符與字節(jié) 字節(jié)數(shù)據(jù)的傳送與接收 字符與字節(jié) ?字符和字節(jié)的差別 ?Delphi中的字符串種類及處理函數(shù) ?中英文字符串長(zhǎng)度計(jì)算 字符和字節(jié)的差別 Windows支持的字符集有單字符集、雙字節(jié)字符集及 UniCode字符集,在西方國(guó)家使用 Windows系統(tǒng)基本使用單字符集,每一個(gè)字符都使用一個(gè)字節(jié)來表示;而亞洲國(guó)家由于字符無法單用一個(gè)字節(jié)表示,因此使用雙字節(jié)字符集,其中每個(gè)字符使用雙字節(jié)字符集。 { set the priority to lower than normal } 。 { TMyThread is a custom descendant of TThread } begin SecondProcess := (True)。將執(zhí)行中的線程暫停 procedure Suspend。若線程暫停時(shí),使用此指令再次激活 procedure Resume。 ? Free:釋放線程,線程程序代碼將從內(nèi)存中被刪除 procedure Free。使用此方法可建立線程,有 1個(gè)參數(shù),若設(shè)成 True,表示建立后不立即執(zhí)行;若設(shè)成False,則表示一建立后馬上執(zhí)行。一個(gè)應(yīng)用程序可以依需要而造出 多個(gè)線程對(duì)象,每一個(gè)線程開始執(zhí)行后即被排入 CPU的執(zhí)行周期中,這些線程可能被建立后開始 執(zhí)行,直到應(yīng)用程序結(jié)束;也有可能執(zhí)行完工作 后在應(yīng)用程序結(jié)束前就結(jié)束掉,實(shí)際的情況看具 體需求而定。 lpModemStat:指向檢測(cè)到的狀態(tài)的參數(shù)地址, 32位長(zhǎng)度 MS_CTS_ON: CTS (cleartosend) 引腳升至高電壓 MS_DSR_ON: DSR (datasetready) 引腳升至高電壓 MS_RING_ON: RI引腳升至高電壓 MS_RLSD_ON: DCD引腳升至高電壓 串口通信流程 打開通信端口 打開成功? 通信參數(shù)設(shè)置 其他函數(shù)操作 顯示錯(cuò)誤信息 關(guān)閉串口 結(jié)束 開始 繼續(xù)操作? 否 是 通信測(cè)試 ?通信步驟 ?回路測(cè)試 通信步驟 1. 設(shè)置通信端口號(hào)碼 2. 使用 CreateFile函數(shù)打開通信端口 3. 設(shè)置通信協(xié)議 4. 設(shè)置傳輸速度等參數(shù) 5. 設(shè)置其它參數(shù) 6. 送出字符串或讀入字符串,使用 ReadFile及 WriteFile函數(shù) 7. 使用完畢后以 CloseHandle函數(shù)將通信端口關(guān)閉 回路測(cè)試 ?硬件設(shè)置 ?軟件實(shí)現(xiàn) 硬件設(shè)置 ?兩臺(tái)計(jì)算機(jī),各使用其上的一個(gè)串口,一條 RS232兩邊都是母頭的線 ?一臺(tái)計(jì)算機(jī),但擁有兩個(gè)串行通信口,一條 RS232兩邊都是母頭的線 ?一臺(tái)計(jì)算機(jī),一個(gè)串行通信口,一條 RS232線,至少其中一邊是母頭 自動(dòng)與事件 自動(dòng)化的實(shí)現(xiàn) ?輪詢方式:不斷地發(fā)出詢問的信號(hào)給設(shè)備,要求設(shè)備返回計(jì)算機(jī)所要的信息 – 使用定時(shí)器( Timer組件),設(shè)定時(shí)間間隔,當(dāng)時(shí)間間隔一到,便會(huì)執(zhí)行原先放在定時(shí)器中的程序代碼 – 使用 While…Do 不斷地執(zhí)行程序代碼 ?線程方式:將串行通信的功能封裝在一個(gè)線程中,利用線程的不斷執(zhí)行而達(dá)到自動(dòng)化的目的 建立多線程 工作原理: 操作系統(tǒng)將 CPU處理數(shù)據(jù)的時(shí)間切成很多的時(shí)間片 ( Time Slice),操作系統(tǒng)再將應(yīng)用程序的代碼加載 到 CPU中執(zhí)行,一旦這一小塊的時(shí)間執(zhí)行完畢后, 操作系統(tǒng)會(huì)將正在執(zhí)行的程序放一邊,然后再取另 外一個(gè)應(yīng)用程序進(jìn) CPU中執(zhí)行,一樣只執(zhí)行這一小 塊時(shí)間片,如此周而復(fù)始,所以見到了整個(gè)系統(tǒng)中 多任務(wù)的情況。 dwFlags:指定執(zhí)行的工作 ? PURGE_TXABORT:終止目前所有的傳輸工作,立即返回,不管是否完完成傳輸?shù)牟僮? ? PURGE_RXABORT:終止目前所有的讀取工作,立即返回,不管是否完成讀取操作 ? PURGE_TXCLEAR:清除傳送緩沖區(qū)中的所有數(shù)據(jù) ? PURGE_RXCLEAR:清除接收緩沖區(qū)中的所有數(shù)據(jù) EscapeCommFunction BOOL EscapeCommFunction( HANDLE hFile, // 通信設(shè)備的句柄 DWORD dwFunc // 指定執(zhí)行的功能 )。 end。 length:=ord(dat1[0])。 until (stepno=1)or(flag=0)。 repeat Readfile(FHandle,dat,1,flag,nil)。stepno:integer。 Var dat : array[0..99]of char。 end。 //異或校驗(yàn) strlen:=6。 for i:=1 to 4 do xx := xx xor ord(dat[i])。 dat[4] := chr($02)。 dat[2] := chr($44)。 begin dat[0] := chr($fe)。 xx:byte。 // lpOverlapped 通常用來作后臺(tái)工作時(shí)同步檢查之用,在串行通信中若不同時(shí)使用串行端口,則可不使用,設(shè)為nil var i:byte。 SetCommState(FCOMHandle, FDCB)。 := ONESTOPBIT。 := 9600。 Var FDCB: TDCB。 PDCB = ^TDCB。 TDCB = _DCB。 //接收事件字符 wReserved1: Word。 //有錯(cuò)誤時(shí)的替換字符 EofChar: CHAR。 //設(shè)置 Tx和 Rx的 XON字符 XoffChar: CHAR。 //04: no,odd,even,mark,space StopBits: Byte。 //傳送 XOFF閾值 ByteSize: Byte。 //保留,未使用 XonLim: Word。 //當(dāng)前波特率 Flags: Longint。 _DCB = packed record DCBlength: DWORD。 End。 // PCHAR(ComName) FHandle := CreateFile(ComName, GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)。 // ComName:string。 Var FHandle: THandle。此項(xiàng)設(shè)置為 0 ? hTemplateFile :此項(xiàng)設(shè)置為 0 BOOL CloseHandle(HANDLE hObject)。在此設(shè)置為 nil,表示不可繼承 ? dwCreationDistribution :指定如何打開文件。由于將會(huì)對(duì)串口進(jìn)行讀寫操作,因此在此給定 GENERIC_READ和 GENERIC_WRITE常數(shù) ? dwShareMode :是否共享串行端口。 第2章 串行通信程序及組件建立 串行通信的 WindowsAPI 簡(jiǎn)述 通信測(cè)試 自動(dòng)與事件 串行通信的 WindowsAPI 簡(jiǎn)述 ?串行通信相關(guān)函數(shù) ?串口通信流程 Delphi的 Win32 API均聲明進(jìn)去,因此在 Delphi里面使用 API時(shí) 只要在 uses 區(qū)段中加入 Windows,使其引用該 單元文件即可 串行通信相關(guān)函數(shù) ? CreateFile:建立文件,在此用打開通信端口 ? CloseHandle:關(guān)閉由 CreateFile建立的文件,在此用于關(guān)閉通信端口 ? GetCommState:取得計(jì)算機(jī)串口的設(shè)置參數(shù) ? SetCommState:設(shè)置計(jì)算機(jī)串口的參數(shù) ? WriteFile:將數(shù)據(jù)寫入文件,在此用來將數(shù)據(jù)由串口送出 ? ReadFile:由文件中讀取數(shù)據(jù),在此用來取得送到串口的數(shù)據(jù) ? ClearCommError:清除串行端口的錯(cuò)誤,并取得信息 串行通信相關(guān)函數(shù) ? PurgeComm:清除串口上的緩沖區(qū) ? EscapeCommFunction:控制串口的硬件狀態(tài) ? SetCommMask:設(shè)置事件的掩碼,用以觸發(fā)事件 ? WaitCommEvent:等待設(shè)置事件的發(fā)生 ? GetCommModemStatus:取得串口上的硬件線路狀態(tài) HANDLE CreateFile( LPCTSTR lpFileName, //文件名指針 DWORD dwDesiredAccess, //存?。ㄗx /寫)模式 DWORD dwShareMode,//共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttribute, //security attribute結(jié)構(gòu)指針 DWORD dwCreationDistribution, //打開文件的方式 DWORD dwAttrsAndFlags, //文件屬性 HANDLE hTemplateFile//帶屬性復(fù)制的文件句柄 ); 有關(guān)參數(shù)說明 ? lpFileName :欲打開的文件名稱。 字長(zhǎng)不匹配 ?發(fā)送的是 8位字長(zhǎng),接收
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1