当前位置:文档之家› labwindowscvi6 串行口通信和网络数据传输

labwindowscvi6 串行口通信和网络数据传输

9/11

支持函数

2013-4-29
3. DataSocket
• NI公司定义的网络数据 通讯协议 • DataSocket库为NI的DataSocket编程提供 了支持,也简化了应用程序之间动态数据交 换 • 适用于大批量实时数据传递,简化用户编程
Hale Waihona Puke 2013-4-2910/11
上机作业(3选1)
2013-4-29
11/11
5/11
2013-4-29
网络通讯
2. TCP协议(Transmission Control Protocol传 输控制协议 )
• 使用TCP进行网络通信时每个连接包括一个服务器 和一个客户。TCP服务器能通过网络向客户应用程 序发送数据或从客户应用程序接收数据,客户应用 程序也可以向服务器应用程序发送数据或从服务器 应用程序接收数据; TCP服务器应用程序一旦向系统注册,就等待客户 应用程序的连接请求;而客户应用程序只能向已经 存在的服务器应用程序请求连接。 每个TCP服务器需要主机名(如:c)或主 机IP地址(如:123.456.78.90)和这个主机的唯一端 口号
• 控制
int FlushInQ (int COM_Port); int FlushOutQ (int COM_Port);
2013-4-29 4/11
• 状态查询
int GetInQLen (int COM_Port); i = GetInQLen (1); int GetOutQLen (int COM_Port); i = GetOutQLen (1);
7/11


2013-4-29



int ServerTCPWrite (unsigned int Conversation_Handle, void *Data_Pointer, unsigned int Data_Size, unsigned int Time_Out); i=ServerTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf) + 1, 1000) ; int DisconnectTCPClient (unsigned int Conversation_Handle);
• 事件处理
int InstallComCallback (int COM_Port, int Event_Mask, int Notify_Count, int Event_Character, ComCallbackPtr Callback_Function, void *Callback_Data); notifyCount = 50; // Wait for at least 50 bytes in queue eventChar = 13; // Wait for LF eventMask = LWRS_RXFLAG | LWRS_RECEIVE; InstallComCallback (comport, eventMask, notifyCount, eventChar, ComCallbackFunction, NULL);
8/11

客户机函数


2013-4-29





int DisconnectFromTCPServer (unsigned int Conversation_Handle); int ClientTCPRead (unsigned int Conversation_Handle, void *Data_Buffer, unsigned int Data_Size, unsigned int Time_Out); i = ClientTCPRead (g_hconversation, receiveBuf, dataSize, 1000) ; int ClientTCPWrite (unsigned int Conversation_Handle, void *Data_Pointer, unsigned int Data_Size, unsigned int Time_Out); ClientTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf) + 1, 1000);
int GetTCPHostAddr (char Buffer[], int Buffer_Size); int GetTCPHostName (char Buffer[], int Buffer_Size); int GetTCPPeerAddr (unsigned int Connection_Handle, char Buffer[], int Buffer_Size); int GetTCPPeerName (unsigned int Connection_Handle, char Buffer[], int Buffer_Size);
LabWindows/CVI教程(6)
串行口和网络通讯
主讲:乔立岩
Email: qiaoliyan@ (交作业) MSN: qiaoliyan@(在线交流) Tel: 86413532 ext. 8611 (逸夫楼611)
自动化测试与控制研究所
1. 串行口通讯
• RS-232端口定义
6/11


2013-4-29

服务器函数
int RegisterTCPServer (unsigned int Port_Number, tcpFuncPtr Callback_Function, void *Callback_Data); i=RegisterTCPServer (200, ServerTCPCB, 0) ; 回调函数:int (*tcpFuncPtr) (unsigned handle, int xType, int errCode, void *callbackData); • TCP_CONNECT • TCP_DISCONNECT • TCP_DATAREADY int CVICALLBACK ServerTCPCB (unsigned handle, int event, int error, void *callbackData); int UnregisterTCPServer (unsigned int Port_Number); int ServerTCPRead (unsigned int Conversation_Handle, void *Data_Buffer, unsigned int Data_Size, unsigned int Time_Out); dataSize = ServerTCPRead (g_hconversation, receiveBuf, dataSize, 1000);
1. 将上次上机作业产生的波形数据存储到文件 中,并能够从文件中回读显示(要求用 ANSI C库stdio.h中的文件打开和读写函数) 2. 编写一个自发自收的RS-232串口通讯程序 (电缆连接2-3) 3. 编写网络通讯程序(可以两位同学合作,一 人编写服务器程序,另一人编写客户机程序) 电缆连接:1-3,2-6,其它一对一
int ConnectToTCPServer (unsigned int *Conversation_Handle, unsigned int Port_Number, char Server_Host_Name[], tcpFuncPtr Callback_Function, void *Callback_Data, unsigned int Time_Out); i=ConnectToTCPServer (&g_hconversation, 200, tempBuf, ClientTCPCB, NULL, 5000); 回调函数:int (*tcpFuncPtr) (unsigned handle, int xType, int errCode, void *callbackData); int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error, void *callbackData); • TCP_DISCONNECT • TCP_DATAREADY
• 读写
int ComRd (int COM_Port, char Buffer[], int Count); i = ComRd (1, buf, 128); int ComWrt (int COM_Port, char Buffer[], int Count); i = ComWrt (1, buf, 128); int ComRdByte (int COM_Port); int ComWrtByte (int COM_Port, int Byte);
2013-4-29 3/11
• 打开配置和关闭
int OpenComConfig (int COM_Port, char Device_Name[], long Baud_Rate, int Parity, int Data_Bits, int Stop_Bits, int Input_Queue_Size, int Output_Queue_Size); i = OpenComConfig (1, “”, 14400, 0, 7, 1, 512, 512); int CloseCom (int COM_Port); i = CloseCom (1);
1
数据装置就绪 请求发送 清除发送 振铃指示
载波检测 接收数据
发送数据 数据终端就绪 信号地
6 7
2 3 4 5
8
9
2013-4-29
2/11
• 数据传输格式
相关主题