- g_snprintf(command, sizeof(command),
- (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_USER_THRESHOLD],
- j + 1, 2, float_str); // USER2 for custom logic_threshold setting
+ /* Check if the threshold command is based on the POD or digital channel index. */
+ if (model->logic_threshold_for_pod)
+ idx = j + 1;
+ else
+ idx = j * 8;
+ /* Try to support different dialects exhaustively. */
+ for (i = 0; i < model->num_logic_threshold; i++) {
+ if (!strcmp("USER2", (*model->logic_threshold)[i])) {
+ g_snprintf(command, sizeof(command),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_USER_THRESHOLD],
+ idx, 2, float_str); /* USER2 */
+ g_snprintf(command2, sizeof(command2),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_THRESHOLD],
+ idx, "USER2");
+ break;
+ }
+ if (!strcmp("USER", (*model->logic_threshold)[i])) {
+ g_snprintf(command, sizeof(command),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_USER_THRESHOLD],
+ idx, float_str);
+ g_snprintf(command2, sizeof(command2),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_THRESHOLD],
+ idx, "USER");
+ break;
+ }
+ if (!strcmp("MAN", (*model->logic_threshold)[i])) {
+ g_snprintf(command, sizeof(command),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_USER_THRESHOLD],
+ idx, float_str);
+ g_snprintf(command2, sizeof(command2),
+ (*model->scpi_dialect)[SCPI_CMD_SET_DIG_POD_THRESHOLD],
+ idx, "MAN");
+ break;
+ }
+ }