當前位置:編程學習大全網 - 源碼下載 - 奇偶源代碼

奇偶源代碼

看到下面,希望有所幫助。

//文件名:RS232_x.C -

//原因:用於VIGOR PLC modbus與PC圖形控制軟件之間的RS232連接。

//使用說明:

//

/*

01:讀取線圈狀態

02:讀取輸入狀態

03:讀取保持寄存器

04:讀取輸入寄存器

05:強制單線圈

06:預設單寄存器

15:強制多個線圈

16:預置多個寄存器

22:屏蔽寫寄存器

23:讀/寫寄存器

*/

#pragma選項w32

#包含“msvcrt.h -”

#包含“windows.h -”

#包括“wingdi.h -”

//2006/65438

#包含“winbase.h -”

#包括“winerror.h -”

#包含" advapi.h -"

#包含“winuser.h -”

#定義編號50

#定義編號_1編號+1

#定義PI 3.141592654

#定義ID_TIMER 1

Byte Text= "歡迎使用RS232 MODBUS測試程序2006/10/19 ";

//最好選擇壹個好記的名字,避免用A、B、C作為名字。

WNDCLASS wc

//WNDCLASSEX WC;

HWND hwnd

DCB dcb//2006年9月29日香港

//以小寫p開頭的變量多為指針函數。

//站號為1,Y0,Y0設置為開。

byte spd[8]={1,5,0,0,255,0,140,58 };//1,5,0,0,ff,0,8c,3a

//站號為1,Y0,Y0設置為OFF。

byte spdx[8]={1,5,0,0,0,0,205,202 };//1,5,0,0,0,0,cd,ca

字節ABCD[8];

味精味精;

HDC hdc

HMENU hMenu

處理hFile

void main()

{

/*

WC . CB size = sizeof(WNDCLASSEX);//如果沒有這壹行,RegisterClassEx將看不到窗口。

*/

WC . h instance = hth isinst;

WC . lpsz class name = " Hi ";

wc.lpfnWndProc = # WndProc

WC . style = CS _ HREDRAW | CS _ VREDRAW;

WC . hbrbackground = GetStockObject(WHITE _ BRUSH);

wc.hCursor = LoadCursor(0,IDC _ CROSS);

register class(# WC);

hwnd=CreateWindowEx(0," Hi ",#Text,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

0,0,hThisInst,0);

SetTimer (hwnd,ID_TIMER,1000,NULL);

hFile=CreateFile("Com4 ",

泛型_ READ |泛型_WRITE,

0,

空,

開放_現有,

文件_屬性_正常,

0);

if(hfile = = invalid _ handle _ value)//判斷COM是否打開成功。

{

MessageBox(0,"打開端口時出錯!!",“通訊錯誤”,MB _ OK);

返回;

}

//傳入dcb地址打開序列參數。

GetCommState(hFile,# dcb);//知道COM的當前狀態

dcb。波德拉特= 19200;//設置鮑魚率19200。

dcb。ByteSize = 8;// 8位字節

dcb。奇偶性= NOPARITY//奇偶校驗是無。

dcb。StopBits = ONESTOPBIT//停止位=1

//設置端口

如果(!SetCommState(hFile,#dcb))

{

MessageBox(0,"串口設置錯誤!!!",“設置錯誤”,MB _ OK);

close handle(hFile);

返回;

}

ShowWindow(hwnd,1);

while (GetMessage(#msg,0,0,0))

調度消息(# msg);

}

點pt[50];

Long wndproc (hwnd hwnd,uintmsg,wparam wparam,lparam lparam)//窗口函數

{

static int cxClient,cyClient

靜態點pt[NUM _ 1];

靜態BOOL fFlipFlop = FALSE

HBRUSH hBrush

int I;

浮動f;

PAINTSTRUCT ps

RECT矩形;

開關(消息)

{

案例WM_TIMER:

!fFlipFlop

invalidate estrupter(hwnd,NULL,FALSE);

if(fFlipFlop)

WriteFile(hFile,#spd,8,#abcd,NULL);

其他

WriteFile(hFile,#spdx,8,#abcd,NULL);

返回0;

案例WM_SIZE:

CX client = LOWORD(lparam);

cyClient = hi word(lparam);

打破;

案例WM_PAINT:

hdc = BeginPaint (hwnd,# PS);

GetClientRect (hwnd,# rect);

if(fFlipFlop)

{

HB rush = CreateSolidBrush(RGB(255,0,0));

FillRect (hdc,#rect,hBrush);

DrawText (hdc,"站號為1,Y0設置為on ",16,#rect,

DT _ single line | DT _ CENTER | DT _ VCENTER);

}

其他

{

hBrush = CreateSolidBrush ( RGB(0,255,0));

FillRect (hdc,#rect,hBrush);

DrawText (hdc,"站號為1,Y0設置為OFF ",17,#rect,

DT _ single line | DT _ CENTER | DT _ VCENTER);

}

MoveToEx (hdc,0,cyClient / 2,NULL);

LineTo(hdc,cxClient,cyClient/2);

for(I = 0;我& lt= NUMi++)

{

pt[i]。x = I * CX client/NUM;

f = sin(PI * 2/NUM * I);

pt[i]。y = float 1-f * cyClient/2;

}

多段線(hdc,#pt,NUM _ 1);

EndPaint (hwnd,# PS);//這壹行本來就是錯的!妳可以通過改變變量的名字來判斷

delete object(HB rush);

打破;

案例WM_DESTROY:

KillTimer (hwnd,ID _ TIMER);

PostQuitMessage(0);

打破;

}

返回DefWindowProc(hwnd,msg,wparam,lparam);

}

  • 上一篇:請問那個免費的開源cms內容管理系統較好_cms內容管理系統是什麽
  • 下一篇:天機變手遊原畫曝光,畫面絕美細致
  • copyright 2024編程學習大全網