7 #include "../include/tscope5/serialport.h"
8 #include "../include/tscope5/timer.h"
9 #include "../include/tscope5/serialport_internal.h"
10 #include "../include/tscope5/system_internal.h"
30 ts5_check_serialport(
"ts5_define_serialport_trigger_input");
31 int portnum = ts5_check_serialport2(
"ts5_define_serialport_trigger_input", portname);
32 ts5_log(TS5_LOGLEVEL_3,
"ts5_define_serialport_trigger_input(%s)\n", portname);
34 _ts5_status.timer_status.serialport_is_trigger_device = 1;
35 _ts5_status.timer_status.serialport[portnum].is_trigger_input_device = 1;
49 ts5_check_serialport(
"ts5_simulate_serialport_trigger_input");
50 ts5_log(TS5_LOGLEVEL_3,
"ts5_simulate_serialport_trigger_input(%d,%d,%f)\n", device, value, interval);
52 if (device<1 || device>_ts5_status.timer_status.num_serialport) {
53 ts5_fatal(
"ts5_simulate_serialport_trigger_input: device argument is %d, number of serial ports is %d\n",
54 device, _ts5_status.timer_status.num_serialport);
57 _ts5_status.timer_status.serialport[device-1].simulate_trigger_input = value;
58 _ts5_status.timer_status.serialport[device-1].trigger_simulation_interval = interval;
71 ts5_check_serialport(
"ts5_define_serialport_trigger_output");
72 int portnum = ts5_check_serialport2(
"ts5_define_serialport_trigger_output", portname);
73 ts5_log(TS5_LOGLEVEL_3,
"ts5_define_serialport_trigger_output(%s)\n", portname);
75 _ts5_status.timer_status.serialport_is_trigger_device = 1;
76 _ts5_status.timer_status.serialport[portnum].is_trigger_output_device = 1;
89 ts5_check_serialport(
"ts5_send_serialport_trigger");
90 ts5_log(TS5_LOGLEVEL_3,
"ts5_send_serialport_trigger(%d,%d)\n", device, value);
92 if (device<1 || device>_ts5_status.timer_status.num_serialport) {
93 ts5_fatal(
"ts5_send_serialport_trigger: device argument is %d, number of serial ports is %d\n",
94 device, _ts5_status.timer_status.num_serialport);
97 char serial_buff[TS5_MAX_CHAR];
98 sprintf(serial_buff,
"%c", value);
100 #ifdef ALLEGRO_WINDOWS
102 unsigned long bytes_to_write = strlen(serial_buff);
103 unsigned long bytes_written;
105 if (!WriteFile(*(_ts5_status.timer_status.serialport[device-1].port), serial_buff, bytes_to_write, &bytes_written, NULL)) {
106 ts5_fatal(
"ts5_send_serialport_trigger: write error 1\n");
109 if (bytes_written != bytes_to_write) {
110 ts5_fatal(
"ts5_send_serialport_trigger: write error 2\n");
116 unsigned int bytes_to_write = strlen(serial_buff);
117 unsigned int bytes_written;
119 bytes_written = write(*(_ts5_status.timer_status.serialport[device-1].port), serial_buff, bytes_to_write);
121 if (bytes_written != bytes_to_write) {
122 ts5_fatal(
"ts5_send_serialport_trigger: write error\n");
139 ts5_check_serialport(
"ts5_get_serialport");
140 ts5_log(TS5_LOGLEVEL_3,
"ts5_get_serialport(%d)\n", device);
142 if (device < 1 || device>_ts5_status.timer_status.num_serialport) {
143 ts5_fatal(
"%s: device argument is %d, number of opened serial ports is %d\n", device, _ts5_status.timer_status.num_serialport);
146 return _ts5_status.timer_status.serialport[device-1].port;