def level1_udp_send(): global flag_start client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #不需要建立连接: # s.sendto(b'helloworld', ('192.168.100.60', 5000)) # s channels numdata channel1+data+us channel2+data+us .... msg = b'' import random import datetime from waveproduce import sin_wave, triangle_wave xsin, ysin = sin_wave(start=0, zhouqi=6.28, midu=0.0628, xdecimals=2, ydecimals=2) xtriangle, ytriangle = triangle_wave(start=0, zhouqi=6.28, midu=0.0628, xdecimals=2, ydecimals=2) datax = 0 wholemsg_list1 = [] wholemsg_list2 = [] data1 = 0 data2 = 0 start_time = time.perf_counter() Time_interal = 1 Time_last = 10 msg1 = b'' msg2 = b'' channelid1 = struct.pack('!H', 1) channelid2 = struct.pack('!H', 2) fenmiaocnt = struct.pack('!B', 100) length = struct.pack('!B', 100) # 将当前的时间转化成对应的sec,然后进行数据的上传 nowtime = str(datetime.datetime.now()) curTime = nowtime[11:19] us_stampe = int(nowtime[20:26]) sec = int(curTime[0:2]) * 60 * 60 + int(curTime[3:5]) * 60 + int( curTime[6:8]) sec_encodee = struct.pack('!I', sec) # 4个字节 msg1 = channelid1 + length + fenmiaocnt + sec_encodee msg2 = channelid2 + length + fenmiaocnt + sec_encodee for item in range(100): # nowtime = str(datetime.datetime.now()) data1 = ysin[item] data2 = ytriangle[item] msg1 += struct.pack('!f', data1) + struct.pack('!I', us_stampe) msg2 += struct.pack('!f', data2) + struct.pack('!I', us_stampe) print(len(msg1), ' ', len(msg2)) for i in range(100000): ''' 子系统需要检测的信息 采集速度1Mhz 电源电压采样 value1:10 03 07 04 data crc1 crc2 ----registerid=07 datatype=float 电源电流采样 value1:10 03 08 04 data crc1 crc2 ----registerid=08 datatype=float ''' # msg = sec+channels+channel_data_cnt+struct.pack('!f',data)+us_stampe high_pricision_delay(0.0001) # time.sleep(0.0001) client_socket.sendto(msg1, ("127.0.0.1", 10000)) # time.sleep(0.0001) # client_socket.sendto(msg2, ("127.0.0.1",10000)) print("total send:", i) client_socket.close()
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #不需要建立连接: # s.sendto(b'helloworld', ('192.168.100.60', 5000)) # s channels numdata channel1+data+us channel2+data+us .... msg = b'' import random import datetime from waveproduce import sin_wave, triangle_wave xsin, ysin = sin_wave(start=0, zhouqi=6.28, midu=0.01, xdecimals=2, ydecimals=2) xtriangle, ytriangle = sin_wave(start=0, zhouqi=6.28, midu=0.01, xdecimals=2, ydecimals=2) datax = 0 idlist = [0x01, 0x02] us_stampe_a = 0 us_stampe_b = 0 msg1 = b'' channelid1 = idlist[0] channelid2 = idlist[1]
def level1_udp_send(): global flag_start client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #不需要建立连接: # s.sendto(b'helloworld', ('192.168.100.60', 5000)) # s channels numdata channel1+data+us channel2+data+us .... msg = b'' import random import datetime from waveproduce import sin_wave, triangle_wave xsin, ysin = sin_wave(start=0, zhouqi=6.28, midu=0.0628, xdecimals=2, ydecimals=2) xtriangle, ytriangle = triangle_wave(start=0, zhouqi=6.28, midu=0.0628, xdecimals=2, ydecimals=2) print(ysin) print(ytriangle) datax = 0 wholemsg_list1 = [] wholemsg_list2 = [] data1 = 0 data2 = 0 start_time = time.perf_counter() Time_interal = 1 Time_last = 10 for i in range(10000): msg1 = b'' msg2 = b'' channelid1 = struct.pack('!H', 9) channelid2 = struct.pack('!H', 10) fenmiaocnt = struct.pack('!B', 100) length = struct.pack('!B', 100) # 将当前的时间转化成对应的sec,然后进行数据的上传 nowtime = str(datetime.datetime.now()) curTime = nowtime[11:19] us_stampe = int(nowtime[20:26]) sec = int(curTime[0:2]) * 60 * 60 + int(curTime[3:5]) * 60 + int( curTime[6:8]) sec_encodee = struct.pack('!I', sec) # 4个字节 msg1 = channelid1 + length + fenmiaocnt + sec_encodee msg2 = channelid2 + length + fenmiaocnt + sec_encodee for item in range(100): # nowtime = str(datetime.datetime.now()) data1 = ysin[item] data2 = ytriangle[item] msg1 += struct.pack('!f', data1) + struct.pack('!I', us_stampe) msg2 += struct.pack('!f', data2) + struct.pack('!I', us_stampe) print(len(msg1), ' ', len(msg2)) print('about to send the data') ''' 子系统需要检测的信息 采集速度1Mhz 电源电压采样 value1:10 03 07 04 data crc1 crc2 ----registerid=07 datatype=float 电源电流采样 value1:10 03 08 04 data crc1 crc2 ----registerid=08 datatype=float ''' # msg = sec+channels+channel_data_cnt+struct.pack('!f',data)+us_stampe # high_pricision_delay(Time_interal) time.sleep(Time_interal) client_socket.sendto(msg1, (nis_hsdd_configfile.hs5_udp_recv_addr, nis_hsdd_configfile.hs5_udp_recv_port)) client_socket.sendto(msg2, (nis_hsdd_configfile.hs5_udp_recv_addr, nis_hsdd_configfile.hs5_udp_recv_port)) end_time = time.perf_counter() #发送停止数据信号 msg = b'stopstopst' # client_socket.send(msg) print('Sys', '08 eg power', ' 2 channels') print('Package nums: ', Time_last / Time_interal) print('Sending Speed: ', Time_interal) print('Sending Port: ', Port) print('Sending Time Cost: ', end_time - start_time) client_socket.close()
def level1_udp_send(): global flag_start client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #不需要建立连接: # s.sendto(b'helloworld', ('192.168.100.60', 5000)) # s channels numdata channel1+data+us channel2+data+us .... msg = b'' import random import datetime from waveproduce import sin_wave, triangle_wave xsin, ysin = sin_wave(start=0, zhouqi=6.28, midu=0.01, xdecimals=2, ydecimals=2) xtriangle, ytriangle = sin_wave(start=0, zhouqi=6.28, midu=0.01, xdecimals=2, ydecimals=2) datax = 0 idlist = [0x01, 0x02] us_stampe_a = 0 us_stampe_b = 0 msg1 = b'' channelid1 = idlist[0] channelid2 = idlist[1] length = 0x01 fenmiaocnt = 0x01 length = struct.pack('!I', 150) # 将当前的时间转化成对应的sec,然后进行数据的上传 nowtime = str(datetime.datetime.now()) curTime = nowtime[11:19] us_stampe = int(nowtime[20:26]) sec = int(curTime[0:2]) * 60 * 60 + int(curTime[3:5]) * 60 + int( curTime[6:8]) sec_encodee = struct.pack('!I', sec) # 4个字节 msg1 = str(channelid1).encode() + length + str( fenmiaocnt).encode() + sec_encodee msg2 = str(channelid2).encode() + length + str( fenmiaocnt).encode() + sec_encodee for item in range(150): # nowtime = str(datetime.datetime.now()) data1 = ysin[datax] data2 = ytriangle[datax] data = [data1, data2] datax = datax + 1 if datax == 628: datax = 0 msg1 += struct.pack('!f', data[0]) + struct.pack('!I', us_stampe) msg2 += struct.pack('!f', data[1]) + struct.pack('!I', us_stampe) cnt = 0 start_time = time.perf_counter() Time_interal = 0.00015 Time_last = 10 while True: ''' 子系统需要检测的信息 采集速度1Mhz 电源电压采样 value1:10 03 07 04 data crc1 crc2 ----registerid=07 datatype=float 电源电流采样 value1:10 03 08 04 data crc1 crc2 ----registerid=08 datatype=float ''' # msg = sec+channels+channel_data_cnt+struct.pack('!f',data)+us_stampe if flag_start: if cnt == 100000: break high_pricision_delay(Time_interal) client_socket.sendto(msg1, (nis_hsdd_configfile.level_2_07_udp_rcv_addr, nis_hsdd_configfile.level_2_07_udp_rcv_port)) client_socket.sendto(msg2, (nis_hsdd_configfile.level_2_07_udp_rcv_addr, nis_hsdd_configfile.level_2_07_udp_rcv_port)) cnt += 1 # for i in range(2): # msg=b'' # channelid = idlist[i] # length=0x01 # fenmiaocnt=0x01 # length = struct.pack('!I', 100) # #将当前的时间转化成对应的sec,然后进行数据的上传 # nowtime = str(datetime.datetime.now()) # curTime = nowtime[11:19] # # us_stampe = int(nowtime[20:26]) # sec = int(curTime[0:2])*60*60+int(curTime[3:5])*60+int(curTime[6:8]) # sec_encodee = struct.pack('!I', sec) # 4个字节 # msg = str(channelid).encode()+length + str(fenmiaocnt).encode() + sec_encodee # for item in range(100): # # nowtime = str(datetime.datetime.now()) # if i == 0: # us_stampe =us_stampe_a # us_stampe_a += 1 # elif i==1: # us_stampe = us_stampe_b # us_stampe_b += 1 # if us_stampe == 1000000: # us_stampe = 0 # data1 = ysin[datax] # data2 = ytriangle[datax] # data = [data1, data2] # datax = datax + 1 # if datax == 628: # datax = 0 # msg += struct.pack('!f',data[i])+struct.pack('!I',us_stampe) end_time = time.perf_counter() #发送停止数据信号 msg = b'stopstopst' # client_socket.send(msg) print('Sys:', '07 pg power', '2 channels') print('Package nums:', Time_last / Time_interal) print('Sending Speed:', Time_interal) print('Sending Port: ', Port) print('Sending Time Cost: ', end_time - start_time) client_socket.close()