コード例 #1
0
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)
コード例 #2
0
 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()
コード例 #3
0
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)
コード例 #4
0
 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)
コード例 #5
0
    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)
コード例 #6
0
ファイル: random_signals.py プロジェクト: yinanhu/tio-python
# -*- 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


コード例 #7
0
                                 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)
コード例 #8
0
ファイル: tio_log.py プロジェクト: yinanhu/tio-python
"""

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)
コード例 #9
0
#!/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()
コード例 #10
0
ファイル: itio-nosync.py プロジェクト: twinleaf/tio-python
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()
コード例 #11
0
ファイル: simplelog.py プロジェクト: zflansberry/tio-python
#!/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)
コード例 #12
0
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)