PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
import ctypes
import numpy as np
import time
from usbtc08 import usbtc08 as tc08
from functions import assert_pico2000_ok
# Create chandle and status ready for use
chandle = ctypes.c_int16()
status = {}
# open unit
status["open_unit"] = tc08.usb_tc08_open_unit()
Code: Select all
import ctypes
import numpy as np
import time
from usbtc08 import usbtc08 as tc08
from functions import assert_pico2000_ok
# Create chandle and status ready for use
chandle = ctypes.c_int16()
status = {}
# open unit
status["open_unit"] = tc08.usb_tc08_open_unit_async()
chandle = ctypes.c_int16(status["open_unit"])
# set up channel
Channel = ctypes.c_int16(2)
typeK = ctypes.c_int8(75)
status["set_channel"] = tc08.usb_tc08_set_channel(chandle, Channel, typeK) # It returns 0 => error
Code: Select all
from picosdk.discover import find_all_units
scopes = find_all_units()
for scope in scopes:
print(scope.info)
scope.close()
Code: Select all
#
# Copyright (C) 2019 Pico Technology Ltd. See LICENSE file for terms.
#
# TC-08 STREAMING MODE EXAMPLE
import ctypes
import numpy as np
import time
from picosdk.usbtc08 import usbtc08 as tc08
from picosdk.functions import assert_pico2000_ok
# Create chandle and status ready for use
chandle = ctypes.c_int16()
status = {}
print(status)
# open unit
status["open_unit"] = tc08.usb_tc08_open_unit()
assert_pico2000_ok(status["open_unit"])
chandle = status["open_unit"]
print(status)
# set mains rejection to 50 Hz
status["set_mains"] = tc08.usb_tc08_set_mains(chandle,0)
assert_pico2000_ok(status["set_mains"])
print(status)
# set up channel
# therocouples types and int8 equivalent
# B=66 , E=69 , J=74 , K=75 , N=78 , R=82 , S=83 , T=84 , ' '=32 , X=88
typeK = ctypes.c_int8(75)
status["set_channel"] = tc08.usb_tc08_set_channel(chandle, 1, typeK)
assert_pico2000_ok(status["set_channel"])
# get minimum sampling interval in ms
status["get_minimum_interval_ms"] = tc08.usb_tc08_get_minimum_interval_ms(chandle)
assert_pico2000_ok(status["get_minimum_interval_ms"])
# set tc-08 running
status["run"] = tc08.usb_tc08_run(chandle, status["get_minimum_interval_ms"])
assert_pico2000_ok(status["run"])
time.sleep(2)
# collect data
temp_buffer = (ctypes.c_float * 2 * 15)()
times_ms_buffer = (ctypes.c_int32 * 15)()
overflow = ctypes.c_int16()
status["get_temp"] = tc08.usb_tc08_get_temp(chandle, ctypes.byref(temp_buffer), ctypes.byref(times_ms_buffer), 15, ctypes.byref(overflow), 1, 0, 1)
assert_pico2000_ok(status["get_temp"])
# stop unit
status["stop"] = tc08.usb_tc08_stop(chandle)
assert_pico2000_ok(status["stop"])
# close unit
status["close_unit"] = tc08.usb_tc08_close_unit(chandle)
assert_pico2000_ok(status["close_unit"])
# display status returns
print(status)
Code: Select all
from picosdk.usbtc08 import usbtc08 as tc08
#import ctypes
import numpy as np
# open unit
status = {}
status["open_unit"] = tc08.usb_tc08_open_unit()
device = status["open_unit"]
print(status)
# set mains rejection to 50 Hz
status["set_mains"] =tc08.usb_tc08_set_mains(device,50)
print(status)
# set up channel
# therocouples types and int8 equivalent
# B=66 , E=69 , J=74 , K=75 , N=78 , R=82 , S=83 , T=84 , ' '=32 , X=88
tc_chan_num=8
tc08.usb_tc08_set_channel(device, 0, 0 )
tc_type=ord('K')
status["set_channel"] = tc08.usb_tc08_set_channel(device,tc_chan_num,tc_type)
print(status)
# get minimum sampling interval in ms
status["get_minimum_interval_ms"] = tc08.usb_tc08_get_minimum_interval_ms(device)
print(status)
# collect data
temp = np.zeros( (9,), dtype=np.float32) # [cold junction, det1, det2, det3, det4, det5, det6, det7, det8]
overflow_flags = np.zeros( (1,), dtype=np.int16)
status["get_single"] = tc08.usb_tc08_get_single( device, temp.ctypes.data, overflow_flags.ctypes.data, 0)
print(temp)
# stop and close unit
status["stop"] = tc08.usb_tc08_stop(device)
status["close_unit"] = tc08.usb_tc08_close_unit(device)
print(status)