def main(): # Running this script will attempt to connect to an attached vector magnetometer # It expects you to be tumbling the magnetometer for the specified duration import tldevice import argparse parser = argparse.ArgumentParser(prog='tio_monitor', description='Live Twinleaf I/O Data Stream Monitor.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("--rpc", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be run on start; rpc:type:val') parser.add_argument('--simple', action="store_true", default=False, help='Simplify display') args = parser.parse_args() device = tldevice.Device(url=args.url, rpcs=args.rpc, connectingMessage=False) monitor(device, simple=args.simple)
def _recvRouter(self, routing, packet): routingKey = '/'.join(map(str,routing)) if routingKey in self._routes.keys(): self._routes[routingKey]._tio.recv_queue.put(packet) else: # Create new route #print(f"Creating route to {routingKey}.") self._routes[routingKey] = tldevice.Device(url="router://interthread/"+routingKey, send_router = self._routes["/"]._tio.send, verbose=True, specialize=False) threading.Thread(target=self._specialize, args=(routingKey,)).start()
def main(): parser = argparse.ArgumentParser(prog='vectorMonitor', description='Vector Field Graphing Monitor') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') args = parser.parse_args() dev = tldevice.Device(args.url) RealtimePlot(dev)
def __init__(self, url="tcp://localhost", verbose=False, rpcs=[], stateCache=True, connectingMessage=True, connectionTime=1): self._routes = {} self._routes["/"] = tldevice.Device( url=url, verbose=verbose, rpcs=rpcs, stateCache=stateCache, connectingMessage=connectingMessage) self._routes["/"]._tio.recv_router = self._recvRouter self.__dict__[self._routes["/"]._shortname] = self._routes["/"] time.sleep(connectionTime)
print( f"Stream 0: timebase ID: {timebase_id}" + f", components: {dev._tio.protocol.streamInfo['stream_total_components']}" + f", period: {dev._tio.protocol.streamInfo['stream_period']}") print( f"Timebase {timebase_id} rate: {dev._tio.protocol.timebases[timebase_id]['timebase_Fs']:.3f} Hz" + f" ({dev._tio.protocol.timebases[timebase_id]['timebase_period_num_us']}/{dev._tio.protocol.timebases[timebase_id]['timebase_period_denom_us']} µs)" + f", epoch: {dev._tio.protocol.timebases[timebase_id]['timebase_epoch']}" + f", stability: {dev._tio.protocol.timebases[timebase_id]['timebase_stability_ppb']:.0f} ppb" ) for i, column in enumerate(dev._tio.protocol.streams): print( f"Component {i}: {column['source_name']} ({column['source_title']}), period {column['source_period']}, {column['stream_Fs']:.3f} Hz" ) if __name__ == "__main__": import argparse parser = argparse.ArgumentParser( prog='tio_rates', description='Live Twinleaf I/O Data Stream Monitor.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') args = parser.parse_args() device = tldevice.Device(url=args.url) rateReport(device)
# -*- coding: utf-8 -*- """ Created on Thu Jan 11 14:08:27 2018 @author: huyinan """ ''' building communication ''' import numpy as np import time import tldevice import random ''' choose the port ''' csb = tldevice.Device('COM5') ''' signal generator ''' delay=0.02 # delay time:second for i in range(100000): t = random.randrange(1,1000,1) y=0.1/t csb.coil.y.current(y) # mA print(y) time.sleep(delay) #delay time: s
description='Very simple logging utility.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("logfile", nargs='?', default='log.tsv', help='Log filename: log.tsv') parser.add_argument("--rpc", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be run on start; rpc:type:val') args = parser.parse_args() device = tldevice.Device(url=args.url, rpcs=args.rpc) file = open(args.logfile, 'w') print(f"Logging to {args.logfile} ...") file.write("\t".join(map(str, device.data.columnnames())) + "\n") for row in device.data.stream_iter(): # Tab delimited data rowstring = "\t".join(map(str, row)) + "\n" # Write line file.write(rowstring)
""" import tldevice import argparse parser = argparse.ArgumentParser(prog='tio_log', description='Very simple logging utility.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("logfile", nargs='?', default='log.tsv', help='Log filename: log.tsv') parser.add_argument("--cmd", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be run on start; rpc:val') args = parser.parse_args() device = tldevice.Device(url=args.url, commands=args.cmd) file = open(args.logfile, 'w') for row in device.data.stream_iter(): rowstring = "\t".join(map(str, row)) + "\n" file.write(rowstring)
#!/usr/bin/env python3 """ itio: Interactive Twinleaf I/O License: MIT Author: Thomas Kornack <*****@*****.**> """ import tldevice import argparse parser = argparse.ArgumentParser(prog='itio', description='Interactive Twinleaf I/O.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("--cmd", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be run on start; rpc:val') parser.add_argument('-v', action="store_true", default=False, help='Verbose output for debugging') args = parser.parse_args() device = tldevice.Device(url=args.url, verbose=args.v, commands=args.cmd) device._interact()
import argparse parser = argparse.ArgumentParser(prog='itio', description='Interactive Twinleaf I/O.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("--rpc", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be sent on start; rpc:type:val') parser.add_argument('-v', action="store_true", default=False, help='Verbose output for debugging') parser.add_argument('-r', action="store_false", default=True, help='Ignore and rebuild rpc/stream cache') parser.add_argument('-t', action="store_true", default=False, help='Quit after 1 second network socket timeout') args = parser.parse_args() device = tldevice.Device(url=args.url, verbose=args.v, rpcs=args.rpc, stateCache=args.r, timeout=args.t) device._interact()
#!/usr/bin/env python3 import tldevice vmr = tldevice.Device() file = open('log.tsv','w') for row in vmr.data.stream_iter(): rowstring = "\t".join(map(str,row))+"\n" file.write(rowstring)
if __name__ == "__main__": # Running this script will attempt to connect to an attached vector magnetometer # It expects you to be tumbling the magnetometer for the specified duration import tldevice import argparse parser = argparse.ArgumentParser( prog='tio_monitor', description='Live Twinleaf I/O Data Stream Monitor.') parser.add_argument("url", nargs='?', default='tcp://localhost/', help='URL: tcp://localhost') parser.add_argument("--rpc", action='append', default=[], type=lambda kv: kv.split(":"), help='Commands to be run on start; rpc:type:val') parser.add_argument('--simple', action="store_true", default=False, help='Simplify display') args = parser.parse_args() device = tldevice.Device(url=args.url, rpcs=args.rpc, connectingMessage=False) monitor(device, simple=args.simple)