Exemplo n.º 1
0
def sender():
    with open(rolldata_file) as accel_file:
        accel = itertools.imap(lambda line: float(line.split(',', 1)[0]), accel_file)
        with network.SendUDP(LOCALHOST, FC_LISTEN_PORT, from_port=ADIS_TX_PORT) as adis:
            roll_rate = 0.0
            velocity = 0.0
            for seq, accel_sample in enumerate(accel):
                start = time.time()

                adis.send_seq_data(messages.ADIS, seq, {
                    'Acc_X': accel_sample,
                    'Gyro_X': roll_rate * 180 / math.pi,
                })

                velocity += accel_sample * dt

                K_P = 2.45
                K_V = 3.21
                fin_cos = math.cos(fin_angle)
                fin_sin = math.sin(fin_angle)
                C_L = K_P * fin_cos ** 2 * fin_sin + K_V * fin_cos * fin_sin ** 2

                roll_accel = roll_coefficient * C_L * (velocity ** 2)
                roll_rate += roll_accel * dt

                wait_time = dt - (time.time() - start)
                if wait_time > 0:
                    time.sleep(wait_time)
    sys.exit(0)
Exemplo n.º 2
0
    def test_send_message(self):
        with network.SendUDP('127.0.0.1', self.receiver_port) as udp:
            data = {'PWM': 1.135e-3, 'Disable': 1}
            expect = messages.ROLL.encode(data)
            udp.send_message(messages.ROLL, data)

        recv_data = self.reciever.recv(1024)
        self.assertEqual(expect, recv_data)
Exemplo n.º 3
0
 def setUp(self):
     self.sender = network.SendUDP('127.0.0.1', 1934)
Exemplo n.º 4
0
                                          last_wlan0.bytes_recv)
        pack['IO_wlan0_Packets_Sent'] = int(wlan0.packets_sent -
                                            last_wlan0.packets_sent)
        pack['IO_wlan0_Packets_Recv'] = int(wlan0.packets_recv -
                                            last_wlan0.packets_recv)

    # temp
    try:
        with open('/sys/bus/platform/drivers/coretemp/coretemp.0/temp2_input',
                  'r') as tempfile:
            temp = int(tempfile.read().strip())
            pack['Core_Temp'] = temp
    except:
        pass

    last_disk = disk
    last_nics = nics

    return pack


if __name__ == '__main__':
    time.sleep(rate)

    seq = 0
    with network.SendUDP('127.0.0.1', 36000, from_port=36201) as udp:
        while True:
            # Includes a blocking read so it should run at globally defined rate
            udp.send_seq_message(messages.FCFH, seq, read())
            seq = seq + 1
Exemplo n.º 5
0
"""
Send A Telemetry Packet
-----------------------

Open a UDP socket, and send a message of type "ADIS" to port 25000 on localhost
"""

from psas_packet import network, messages

# set up a UDP packet sender
with network.SendUDP('127.0.0.1', 25000) as udp:

    # data that will go in our message
    data = {
        'VCC': 5.0,
        'Gyro_X': 0.0,
        'Gyro_Y': 0,
        'Gyro_Z': 1,
        'Acc_X': -9.8,
        'Acc_Y': 0,
        'Acc_Z': 0,
        'Magn_X': 53e-6,
        'Magn_Y': 0,
        'Magn_Z': 0,
        'Temp': 20,
        'Aux_ADC': 0,
    })

    # send a whole message (with header)
    udp.send_message(messages.ADIS, data)