diff options
Diffstat (limited to 'servers/gpib_server_lin/src/gpib_conn.cpp')
| -rw-r--r-- | servers/gpib_server_lin/src/gpib_conn.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/servers/gpib_server_lin/src/gpib_conn.cpp b/servers/gpib_server_lin/src/gpib_conn.cpp index b46f469..dc081a3 100644 --- a/servers/gpib_server_lin/src/gpib_conn.cpp +++ b/servers/gpib_server_lin/src/gpib_conn.cpp @@ -313,7 +313,7 @@ void GPIBSocket::commandLoop() { else if (m_instrumentCommand == "SETVOLTSDIV") { // Want to change volts per division TQ_INT32 value1; ds >> value1; - float value2; + double value2; ds >> value2; if (scope_set_volts_div(value1, value2, m_serverParent->m_scopeType.ascii(), m_serverParent->m_scopeDeviceSocket) == 0) { ds << TQString("ACK"); @@ -507,6 +507,34 @@ void GPIBSocket::commandLoop() { writeEndOfFrame(); } } + else if (m_instrumentCommand == "GETPERMITTEDVDIVS") { // Want to get permitted volts/div settings + double attenuation_mult; + double* permitted_array; + int permitted_count; + TQ_INT32 value; + ds >> value; + if (scope_get_probe_attenuation_multiplier(&attenuation_mult, value, m_serverParent->m_scopeType.ascii(), m_serverParent->m_scopeDeviceSocket) == 0) { + if (scope_get_permitted_volts_div_settings_at_1x(&permitted_count, &permitted_array, m_serverParent->m_scopeType.ascii(), m_serverParent->m_scopeDeviceSocket) == 0) { + long i; + TQDoubleList permittedValues; + for (i=0; i<permitted_count; i++) { + permittedValues.append(permitted_array[i]/attenuation_mult); + } + free(permitted_array); + ds << TQString("ACK"); + ds << permittedValues; + writeEndOfFrame(); + } + else { + ds << TQString("NCK"); + writeEndOfFrame(); + } + } + else { + ds << TQString("NCK"); + writeEndOfFrame(); + } + } else { printf("[WARNING] Received unknown command %s from host %s\n\r", m_instrumentCommand.ascii(), m_remoteHost.ascii()); fflush(stdout); } |
