labwindowscvi6第七章串行口通信和网络数据传输
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 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 InstallComCallback (int COM_Port, int Event_Mask, int Notify_Count, int Event_Character, ComCallbackPtr Callback_Function, void *Callback_Data);
▪ 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);
• TCP服务器应用程序一旦向系统注册,就等待客户 应用程序的连接请求;而客户应用程序只能向已经 存在的服务器应用程序请求连接。
• 每个TCP服务器需要主机名(如:aaa.bbb.ccc)或主 机IP地址(如:123.456.78.90)和这个主机的唯一端 口号
•2020/5/25
• 服务器函数
▪ int RegisterTCPServer (unsigned int Port_Number, tcpFuncPtr Callback_Function, void *Callback_Data);
▪ int ClientTCPRead (unsigned int Conversation_Handle, void *Data_Buffer, unsigned int Data_Size, unsigned int Time_Out);
▪ i = ClientTCPRead (g_hcቤተ መጻሕፍቲ ባይዱnversation, receiveBuf, dataSize, 1000) ;
•2020/5/25
▪ 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 CVICALLBACK ClientTCPCB (unsigned handle, int event, int error, void *callbackData); • TCP_DISCONNECT • TCP_DATAREADY
•2020/5/25
▪ int DisconnectFromTCPServer (unsigned int Conversation_Handle);
▪ 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);
▪ 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);
▪ 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);
labwindowscvi6第七章 串行口通信和网络数据
传输
2020年5月25日星期一
1. 串行口通讯
• RS-232端口定义
数据装置
就绪
请求
发送
清除
发送
振铃
指示
1 6
2 7
3 8 4 9 5
载波
检测
接收
数据
发送
数据
数据终端就
绪
信号
地
•2020/5/25
• 数据传输格式
起始
• 支持函数
▪ int GetTCPHostAddr (char Buffer[], int Buffer_Size); ▪ int GetTCPHostName (char Buffer[], int Buffer_Size); ▪ int GetTCPPeerAddr (unsigned int Connection_Handle,
位
ASCII码
奇偶 停止 校验 位
位
• 电气特性
▪ 负逻辑:1=-5V~-15V, 0=+5V~+15V
▪ 最高速率:20kbit/s
▪ 最远距离:15m
•2020/5/25
• 打开配置和关闭
▪ 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=ConnectToTCPServer (&g_hconversation, 200, tempBuf, ClientTCPCB, NULL, 5000);
▪ 回调函数:int (*tcpFuncPtr) (unsigned handle, int xType, int errCode, void *callbackData);
• 控制
▪ int FlushInQ (int COM_Port); ▪ int FlushOutQ (int COM_Port);
•2020/5/25
• 状态查询
▪ int GetInQLen (int COM_Port); ▪ i = GetInQLen (1); ▪ int GetOutQLen (int COM_Port); ▪ i = GetOutQLen (1);
•2020/5/25
网络通讯
2. TCP协议(Transmission Control Protocol传 输控制协议 )
• 使用TCP进行网络通信时每个连接包括一个服务器 和一个客户。TCP服务器能通过网络向客户应用程 序发送数据或从客户应用程序接收数据,客户应用 程序也可以向服务器应用程序发送数据或从服务器 应用程序接收数据;
char Buffer[], int Buffer_Size); ▪ int GetTCPPeerName (unsigned int Connection_Handle,
char Buffer[], int Buffer_Size);
•2020/5/25
3. DataSocket
• NI公司定义的网络数据 通讯协议 • DataSocket库为NI的DataSocket编程提供
了支持,也简化了应用程序之间动态数据交 换 • 适用于大批量实时数据传递,简化用户编程
•2020/5/25
▪ ClientTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf) + 1, 1000);
• 事件处理
▪ int InstallComCallback (int COM_Port, int Event_Mask, int Notify_Count, int Event_Character, ComCallbackPtr Callback_Function, void *Callback_Data);
▪ 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);
• TCP服务器应用程序一旦向系统注册,就等待客户 应用程序的连接请求;而客户应用程序只能向已经 存在的服务器应用程序请求连接。
• 每个TCP服务器需要主机名(如:aaa.bbb.ccc)或主 机IP地址(如:123.456.78.90)和这个主机的唯一端 口号
•2020/5/25
• 服务器函数
▪ int RegisterTCPServer (unsigned int Port_Number, tcpFuncPtr Callback_Function, void *Callback_Data);
▪ int ClientTCPRead (unsigned int Conversation_Handle, void *Data_Buffer, unsigned int Data_Size, unsigned int Time_Out);
▪ i = ClientTCPRead (g_hcቤተ መጻሕፍቲ ባይዱnversation, receiveBuf, dataSize, 1000) ;
•2020/5/25
▪ 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 CVICALLBACK ClientTCPCB (unsigned handle, int event, int error, void *callbackData); • TCP_DISCONNECT • TCP_DATAREADY
•2020/5/25
▪ int DisconnectFromTCPServer (unsigned int Conversation_Handle);
▪ 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);
▪ 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);
▪ 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);
labwindowscvi6第七章 串行口通信和网络数据
传输
2020年5月25日星期一
1. 串行口通讯
• RS-232端口定义
数据装置
就绪
请求
发送
清除
发送
振铃
指示
1 6
2 7
3 8 4 9 5
载波
检测
接收
数据
发送
数据
数据终端就
绪
信号
地
•2020/5/25
• 数据传输格式
起始
• 支持函数
▪ int GetTCPHostAddr (char Buffer[], int Buffer_Size); ▪ int GetTCPHostName (char Buffer[], int Buffer_Size); ▪ int GetTCPPeerAddr (unsigned int Connection_Handle,
位
ASCII码
奇偶 停止 校验 位
位
• 电气特性
▪ 负逻辑:1=-5V~-15V, 0=+5V~+15V
▪ 最高速率:20kbit/s
▪ 最远距离:15m
•2020/5/25
• 打开配置和关闭
▪ 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=ConnectToTCPServer (&g_hconversation, 200, tempBuf, ClientTCPCB, NULL, 5000);
▪ 回调函数:int (*tcpFuncPtr) (unsigned handle, int xType, int errCode, void *callbackData);
• 控制
▪ int FlushInQ (int COM_Port); ▪ int FlushOutQ (int COM_Port);
•2020/5/25
• 状态查询
▪ int GetInQLen (int COM_Port); ▪ i = GetInQLen (1); ▪ int GetOutQLen (int COM_Port); ▪ i = GetOutQLen (1);
•2020/5/25
网络通讯
2. TCP协议(Transmission Control Protocol传 输控制协议 )
• 使用TCP进行网络通信时每个连接包括一个服务器 和一个客户。TCP服务器能通过网络向客户应用程 序发送数据或从客户应用程序接收数据,客户应用 程序也可以向服务器应用程序发送数据或从服务器 应用程序接收数据;
char Buffer[], int Buffer_Size); ▪ int GetTCPPeerName (unsigned int Connection_Handle,
char Buffer[], int Buffer_Size);
•2020/5/25
3. DataSocket
• NI公司定义的网络数据 通讯协议 • DataSocket库为NI的DataSocket编程提供
了支持,也简化了应用程序之间动态数据交 换 • 适用于大批量实时数据传递,简化用户编程
•2020/5/25