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)
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)
def setUp(self): self.sender = network.SendUDP('127.0.0.1', 1934)
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
""" 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)