资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
LabWindows/CVI教程(6) 串行口和网络通讯 主讲:乔立岩 Email: (交作业) MSN: (在线交流) Tel: 86413532 ext. 8611 (逸夫楼611),2020/8/4,串行口通讯 RS-232端口定义,2020/8/4,数据传输格式 电气特性 负逻辑:1-5V-15V, 0=+5V+15V 最高速率:20kbit/s 最远距离:15m,2020/8/4,打开配置和关闭 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); 读写 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); 控制 int FlushInQ (int COM_Port); int FlushOutQ (int COM_Port);,2020/8/4,状态查询 int GetInQLen (int COM_Port); i = GetInQLen (1); int GetOutQLen (int COM_Port); i = GetOutQLen (1); 事件处理 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);,2020/8/4,网络通讯,TCP协议(Transmission Control Protocol传输控制协议 ) 使用TCP进行网络通信时每个连接包括一个服务器和一个客户。TCP服务器能通过网络向客户应用程序发送数据或从客户应用程序接收数据,客户应用程序也可以向服务器应用程序发送数据或从服务器应用程序接收数据; TCP服务器应用程序一旦向系统注册,就等待客户应用程序的连接请求;而客户应用程序只能向已经存在的服务器应用程序请求连接。 每个TCP服务器需要主机名(如:aaa.bbb.ccc)或主机IP地址(如:123.456.78.90)和这个主机的唯一端口号,2020/8/4,服务器函数 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);,2020/8/4,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 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 ( TCP_DISCONNECT TCP_DATAREADY,2020/8/4,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);,2020/8/4,DataSocket NI公司定义的网络数据 通讯协议 DataSocket库为NI的DataSocket编程提供了支持,也简化了应用程序之间动态数据交换 适用于大批量实时数据传递,简化用户编程,2020/8/4,上机作业(3选1),将上次上机作业产生的波形数据存储到文件中,并能够从文件中回读显示(要求用ANSI C库stdio.h中的文件打开和读写函数) 编写一个自发自收的RS-232串口通讯程序(电缆连接2-3) 编写网络通讯程序(可以两位同学合作,一人编写服务器程序,另一人编写客户机程序)电缆连接:1-3,2-6,其它一对一,2020/8/4,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号