Esempio n. 1
0
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()
Esempio n. 2
0
    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]
Esempio n. 3
0
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()
Esempio n. 4
0
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()