-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathReadMemoryTableData.py
More file actions
76 lines (59 loc) · 2.5 KB
/
ReadMemoryTableData.py
File metadata and controls
76 lines (59 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Goal:
# Connect to a SpikeSafe and read memory table data
import sys
import logging
import spikesafe_python
### set these before starting application
# SpikeSafe IP address and port number
ip_address: str = '10.0.0.220'
port_number: int = 8282
### setting up sequence log
log = logging.getLogger(__name__)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s.%(msecs)03d, %(levelname)s, %(message)s',
datefmt='%m/%d/%Y %I:%M:%S',
handlers=[
logging.FileHandler("SpikeSafePythonSamples.log"),
logging.StreamHandler(sys.stdout)
]
)
### start of main program
try:
log.info("ReadMemoryTableData.py started.")
log.info("Python version: {}".format(sys.version))
# instantiate new TcpSocket to connect to SpikeSafe
tcp_socket = spikesafe_python.TcpSocket(enable_logging=False)
tcp_socket.open_socket(ip_address, port_number)
# request SpikeSafe memory table
tcp_socket.send_scpi_command('MEM:TABL:READ')
# read SpikeSafe memory table and print SpikeSafe response to the log file
data = tcp_socket.read_data()
log.info(data)
# parse SpikeSafe memory table
memory_table_read = spikesafe_python.MemoryTableReadData().parse_memory_table_read(data)
# extract Bulk Voltage data
bulk_voltage = memory_table_read.bulk_voltage
# extract Channel 1's data
channel_number = memory_table_read.channel_data[0].channel_number
current_reading = memory_table_read.channel_data[0].current_reading
is_on_state = memory_table_read.channel_data[0].is_on_state
voltage_reading = memory_table_read.channel_data[0].voltage_reading
# extract Heatsink 1's Temperature Data
heat_sink_number = memory_table_read.temperature_data[0].heat_sink_number
temperature_reading = memory_table_read.temperature_data[0].temperature_reading
# disconnect from SpikeSafe
tcp_socket.close_socket()
log.info("ReadMemoryTableData.py completed.\n")
except spikesafe_python.SpikeSafeError as ssErr:
# print any SpikeSafe-specific error to both the terminal and the log file, then exit the application
error_message = 'SpikeSafe error: {}\n'.format(ssErr)
log.error(error_message)
print(error_message)
sys.exit(1)
except Exception as err:
# print any general exception to both the terminal and the log file, then exit the application
error_message = 'Program error: {}\n'.format(err)
log.error(error_message)
print(error_message)
sys.exit(1)