1+ from sciencemode import sciencemode
2+ import time
3+
4+
5+ ack = sciencemode .ffi .new ("Smpt_ack*" )
6+ device = sciencemode .ffi .new ("Smpt_device*" )
7+ extended_version_ack = sciencemode .ffi .new ("Smpt_get_extended_version_ack*" )
8+
9+ com = sciencemode .ffi .new ("char[]" , b"COM3" )
10+
11+ ret = sciencemode .smpt_check_serial_port (com )
12+ print (f"Port check is { ret } " )
13+
14+ ret = sciencemode .smpt_open_serial_port (device ,com )
15+ print (f"smpt_open_serial_port: { ret } " , )
16+
17+ packet_number = sciencemode .smpt_packet_number_generator_next (device )
18+ print (f"next packet_number { packet_number } " )
19+
20+ ret = sciencemode .smpt_send_get_extended_version (device , packet_number )
21+ print (f"smpt_send_get_extended_version: { ret } " )
22+
23+ ret = False
24+
25+ while ( not sciencemode .smpt_new_packet_received (device )):
26+ time .sleep (1 )
27+
28+ sciencemode .smpt_last_ack (device , ack );
29+ print (f"command number { ack .command_number } , packet_number { ack .packet_number } " )
30+
31+ ret = sciencemode .smpt_get_get_extended_version_ack (device , extended_version_ack )
32+ print (f"smpt_get_get_extended_version_ack: { ret } " )
33+ print (f"fw_hash { extended_version_ack .fw_hash } " )
34+
35+
36+ ll_init = sciencemode .ffi .new ("Smpt_ll_init*" )
37+ ll_init .high_voltage_level = sciencemode .Smpt_High_Voltage_Default
38+ ll_init .packet_number = sciencemode .smpt_packet_number_generator_next (device )
39+ ret = sciencemode .smpt_send_ll_init (device , ll_init )
40+ print (f"smpt_send_ll_init: { ret } " )
41+ time .sleep (1 )
42+
43+ packet_number = sciencemode .smpt_packet_number_generator_next (device )
44+ print (f"next packet_number { packet_number } " )
45+
46+
47+ ll_config = sciencemode .ffi .new ("Smpt_ll_channel_config*" )
48+
49+ ll_config .enable_stimulation = True
50+ ll_config .number_of_points = 3
51+ ll_config .points [0 ].time = 100
52+ ll_config .points [0 ].current = 20
53+ ll_config .points [1 ].time = 100
54+ ll_config .points [1 ].current = 20
55+ ll_config .points [2 ].time = 100
56+ ll_config .points [2 ].current = - 20
57+
58+
59+ for i in range (30 ):
60+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
61+ ll_config .channel = sciencemode .Smpt_Channel_Red
62+ ll_config .connector = sciencemode .Smpt_Connector_Yellow
63+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
64+ print (f"1. channel smpt_send_ll_channel_config: { ret } " )
65+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
66+ ll_config .channel = sciencemode .Smpt_Channel_Blue
67+ ll_config .connector = sciencemode .Smpt_Connector_Yellow
68+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
69+ print (f"2. channel smpt_send_ll_channel_config: { ret } " )
70+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
71+ ll_config .channel = sciencemode .Smpt_Channel_Black
72+ ll_config .connector = sciencemode .Smpt_Connector_Yellow
73+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
74+ print (f"3. channel smpt_send_ll_channel_config: { ret } " )
75+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
76+ ll_config .channel = sciencemode .Smpt_Channel_White
77+ ll_config .connector = sciencemode .Smpt_Connector_Yellow
78+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
79+ print (f"4. channel smpt_send_ll_channel_config: { ret } " )
80+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
81+ ll_config .channel = sciencemode .Smpt_Channel_Red
82+ ll_config .connector = sciencemode .Smpt_Connector_Green
83+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
84+ print (f"5. channel smpt_send_ll_channel_config: { ret } " )
85+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
86+ ll_config .channel = sciencemode .Smpt_Channel_Blue
87+ ll_config .connector = sciencemode .Smpt_Connector_Green
88+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
89+ print (f"6. channel smpt_send_ll_channel_config: { ret } " )
90+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
91+ ll_config .channel = sciencemode .Smpt_Channel_Black
92+ ll_config .connector = sciencemode .Smpt_Connector_Green
93+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
94+ print (f"7. channel smpt_send_ll_channel_config: { ret } " )
95+ ll_config .packet_number = sciencemode .smpt_packet_number_generator_next (device )
96+ ll_config .channel = sciencemode .Smpt_Channel_White
97+ ll_config .connector = sciencemode .Smpt_Connector_Green
98+ ret = sciencemode .smpt_send_ll_channel_config (device , ll_config )
99+ print (f"8. channel smpt_send_ll_channel_config: { ret } " )
100+ time .sleep (0.1 )
101+
102+ packet_number = sciencemode .smpt_packet_number_generator_next (device )
103+ ret = sciencemode .smpt_send_ll_stop (device , packet_number )
104+ print (f"smpt_send_ll_stop: { ret } " )
105+
106+ ret = sciencemode .smpt_close_serial_port (device )
107+ print (f"smpt_close_serial_port: { ret } " )
0 commit comments