X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=blobdiff_plain;f=src%2Fhardware%2Fatten-pps3xxx%2Fapi.c;h=5bbafca8c3a6b88ca102804b50a5e5c15c3dc0ba;hp=68dec6b08d3e15cad1d84f340eaf83b6659ef357;hb=2eb1612d463e9232af437d9a6c1b3897da2367e9;hpb=c5cfc735e50adc53e073355e5521b1c79266441e diff --git a/src/hardware/atten-pps3xxx/api.c b/src/hardware/atten-pps3xxx/api.c index 68dec6b0..5bbafca8 100644 --- a/src/hardware/atten-pps3xxx/api.c +++ b/src/hardware/atten-pps3xxx/api.c @@ -92,10 +92,9 @@ static GSList *scan(GSList *options, int modelid) struct sr_serial_dev_inst *serial; GSList *l, *devices; struct pps_model *model; - float byte_delay_ms; uint8_t packet[PACKET_SIZE]; unsigned int i; - int ret; + int delay_ms, ret; const char *conn, *serialcomm; char channel[10]; @@ -127,20 +126,12 @@ static GSList *scan(GSList *options, int modelid) return NULL; serial_flush(serial); - /* How long it takes for a byte to transfer over the serial port. */ - if (sp_get_port_transport(serial->data) == SP_TRANSPORT_NATIVE) - /* 11 bits at 9600 bps. */ - byte_delay_ms = 1.15; - else - /* Emulated serial over USB or bluetooth is just enqueueing. */ - byte_delay_ms = 0; - /* This is how the vendor software scans for hardware. */ memset(packet, 0, PACKET_SIZE); packet[0] = 0xaa; packet[1] = 0xaa; - if (serial_write_blocking(serial, packet, PACKET_SIZE, - byte_delay_ms * PACKET_SIZE + 1) < PACKET_SIZE) { + delay_ms = serial_timeout(serial, PACKET_SIZE); + if (serial_write_blocking(serial, packet, PACKET_SIZE, delay_ms) < PACKET_SIZE) { sr_err("Unable to write while probing for hardware."); return NULL; } @@ -188,7 +179,7 @@ static GSList *scan(GSList *options, int modelid) devc = g_malloc0(sizeof(struct dev_context)); devc->model = model; devc->config = g_malloc0(sizeof(struct per_channel_config) * model->num_channels); - devc->byte_delay_ms = byte_delay_ms; + devc->delay_ms = delay_ms; sdi->priv = devc; drvc->instances = g_slist_append(drvc->instances, sdi); devices = g_slist_append(devices, sdi);