栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

HI3559 udp传输数据

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HI3559 udp传输数据

记录一下海思udp 和上位机连接 海思代码

上位机获取系统时间,通过udp发送
和sample/vio同级别,makefile没有修改

#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "sys/time.h"
#include 
#include 
#include 
#include "sample_comm.h"

#define UDP_TEST_PORT       1864
 
#define UDP_SERVER_IP       "192.168.0.51"


struct timeval  t2;
int time_us;

int send_udp_str(char *ip, int port, char* str,int len) {
	int ret = 0;
	if (str == NULL) {
		ret = -1;
		return ret;
	}
	struct sockaddr_in server;
	int sockfd = 0;
	// int server_len = sizeof(struct sockaddr_in);
	int server_len = sizeof(struct sockaddr_in);
	
	if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
		perror("socket");
		ret = -1;
		return ret;
	}
 
	
	bzero(&server, sizeof(server));
	server.sin_family = AF_INET;
	server.sin_port = htons(port);
	server.sin_addr.s_addr = inet_addr(ip);
 
	
	if (sendto(sockfd, str, len, 0, (struct sockaddr *) &server,
			server_len) < 0) {
		printf("sendto errorn");
		ret = -2;
	}
	close(sockfd);
	return ret;
}
int main(int argc, char* argv[])
{
    int ret = 0;
	char *ipAddr = UDP_SERVER_IP;
	int port = UDP_TEST_PORT;
	
	int err;
 
	// ----------------新建socket,发送UDP包到服务端线程----------------
	struct sockaddr_in server;
	bzero(&server, sizeof(server));
	server.sin_family = AF_INET;
	server.sin_port = htons(port);
	server.sin_addr.s_addr = inet_addr(ipAddr);
 
	int sockfd = 0;
	
	if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
		perror("socket");
		err = -1;
		return err;
	}
 
	// int count = 1;
    
	ipAddr = "192.168.0.51";
	port = 1864;
	char tmpStr[4096];

	int count1 = 1;
	while(count1 <= 10)
	{
		gettimeofday(&t2, NULL);
		time_us = (t2.tv_sec) * 1000000 + t2.tv_usec;
		ret = send_udp_str(ipAddr, port, (char *)&time_us,4);
		printf("count = %d; num = %d;ret = %dn", count1, time_us,ret);//发送数据
		sleep(1);
		count1++;
	}
 
    SAMPLE_PRT("udp exit success!n");
    return 0;
}

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif 
PC python 代码

上位机拆包,接收到数据逐个转换成Int,并且判断 如果接收到的全都是字母则退出程序

#!/usr/bin/python
from socket import *   #socket模块
import numpy as np
HOST = '192.168.0.51'
PORT = 1864
s= socket(AF_INET,SOCK_DGRAM)   #定义socket类型,网络通信,UDP
#s.bind((HOST,PORT))   #套接字绑定的IP与端口
ADDR = (HOST,PORT)
s.bind(ADDR)
while 1:
    data,addr=s.recvfrom(1024)   #接受TCP连接,并返回新的套接字与IP地址
    # print ('Connected by',addr)    #输出客户端的IP地址
    print(np.frombuffer(data, dtype=np.uint8))
    if bytes.isalpha(data) :
        break
s.close()     #关闭连接
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号