📄 sahpi_struct_utils.c
字号:
/* printf("SENSOR LENGTH = %d\n", strlen(buffer->Data)); */ return(SA_OK);}static SaErrorT oh_build_sensordataformat(oh_big_textbuffer *buffer, const SaHpiSensorDataFormatT *format, int offsets){ char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; SaErrorT err; SaHpiTextBufferT reading_buffer; /* Sensor Data Format Title */ oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Data Format:\n"); offsets++; /* Sensor Data Format IsSupported */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "IsSupported: %s\n", (format->IsSupported == SAHPI_TRUE) ? "TRUE" : "FALSE"); oh_append_bigtext(buffer, str); if (format->IsSupported) { /* Sensor Data Format Reading Type */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Reading Type: %s\n", oh_lookup_sensorreadingtype(format->ReadingType)); oh_append_bigtext(buffer, str); if (format->ReadingType != SAHPI_SENSOR_READING_TYPE_BUFFER) { /* Sensor Data Format Base Units */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Base Unit: %s\n", oh_lookup_sensorunits(format->BaseUnits)); oh_append_bigtext(buffer, str); /* Sensor Data Format Modifier Units */ if (format->ModifierUnits) { oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Modifier Unit: %s\n", oh_lookup_sensorunits(format->ModifierUnits)); oh_append_bigtext(buffer, str); /* Sensor Data Format Modifier Use */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Modifier Use: %s\n", oh_lookup_sensormodunituse(format->ModifierUse)); oh_append_bigtext(buffer, str); } /* Sensor Data Format Percentage */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Percentage: %s\n", (format->Percentage == SAHPI_TRUE) ? "TRUE" : "FALSE"); oh_append_bigtext(buffer, str); /* Sensor Data Format Max Range */ if (format->Range.Flags & SAHPI_SRF_MAX && format->Range.Max.IsSupported) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Range Max: "); err = oh_decode_sensorreading(format->Range.Max, *format, &reading_buffer); if (err) { return(err); } oh_append_bigtext(buffer, reading_buffer.Data); oh_append_bigtext(buffer, "\n"); } /* Sensor Data Format Min Range */ if (format->Range.Flags & SAHPI_SRF_MIN && format->Range.Min.IsSupported) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Range Min: "); err = oh_decode_sensorreading(format->Range.Min, *format, &reading_buffer); if (err) { return(err); } oh_append_bigtext(buffer, reading_buffer.Data); oh_append_bigtext(buffer, "\n"); } /* Sensor Data Format Nominal Range */ if (format->Range.Flags & SAHPI_SRF_NOMINAL && format->Range.Nominal.IsSupported) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Range Nominal: "); err = oh_decode_sensorreading(format->Range.Nominal, *format, &reading_buffer); if (err) { return(err); } oh_append_bigtext(buffer, reading_buffer.Data); oh_append_bigtext(buffer, "\n"); } /* Sensor Data Format Normal Max Range */ if (format->Range.Flags & SAHPI_SRF_NORMAL_MAX && format->Range.NormalMax.IsSupported) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Range Normal Max: "); err = oh_decode_sensorreading(format->Range.NormalMax, *format, &reading_buffer); if (err) { return(err); } oh_append_bigtext(buffer, reading_buffer.Data); oh_append_bigtext(buffer, "\n"); } /* Sensor Data Format Normal Min Range */ if (format->Range.Flags & SAHPI_SRF_NORMAL_MIN && format->Range.NormalMin.IsSupported) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Range Normal Min: "); err = oh_decode_sensorreading(format->Range.NormalMin, *format, &reading_buffer); if (err) { return(err); } oh_append_bigtext(buffer, reading_buffer.Data); oh_append_bigtext(buffer, "\n"); } /* Sensor Data Format Accuracy Factor */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Accuracy: %le\n", format->AccuracyFactor); oh_append_bigtext(buffer, str); } } return(SA_OK);}static SaErrorT oh_build_sensorthddefn(oh_big_textbuffer *buffer, const SaHpiSensorThdDefnT *tdef, int offsets){ char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; SaErrorT err; /* Sensor Threshold Definition Title */ oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Threshold Definitions:\n"); offsets++; /* Sensor Threshold Definition IsAccessible */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "IsAccessible: %s\n", (tdef->IsAccessible == SAHPI_TRUE) ? "TRUE" : "FALSE"); oh_append_bigtext(buffer, str); if (tdef->IsAccessible) { /* Sensor Threshold Read Threshold */ if (tdef->ReadThold) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Readable Thresholds:\n"); err = oh_build_threshold_mask(buffer, tdef->ReadThold, offsets + 1); if (err) { return(err); } } /* Sensor Threshold Write Threshold */ if (tdef->WriteThold) { oh_append_offset(buffer, offsets); oh_append_bigtext(buffer, "Writeable Thresholds:\n"); err = oh_build_threshold_mask(buffer, tdef->WriteThold, offsets + 1); if (err) { return(err); } } /* Sensor Threshold Nonlinear */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Nonlinear: %s\n", (tdef->Nonlinear == SAHPI_TRUE) ? "TRUE" : "FALSE"); oh_append_bigtext(buffer, str); } return(SA_OK);}static SaErrorT oh_build_threshold_mask(oh_big_textbuffer *buffer, const SaHpiSensorThdMaskT tmask, int offsets){ int i; oh_append_offset(buffer, offsets); if (tmask & SAHPI_STM_LOW_MINOR) { oh_append_bigtext(buffer, "LOW_MINOR"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_LOW_MAJOR) { oh_append_bigtext(buffer, "LOW_MAJOR"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_LOW_CRIT) { oh_append_bigtext(buffer, "LOW_CRIT"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_LOW_HYSTERESIS) { oh_append_bigtext(buffer, "LOW_HYSTERESIS"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_UP_MINOR) { oh_append_bigtext(buffer, "UP_MINOR"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_UP_MAJOR) { oh_append_bigtext(buffer, "UP_MAJOR"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_UP_CRIT) { oh_append_bigtext(buffer, "UP_CRIT"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } if (tmask & SAHPI_STM_UP_HYSTERESIS) { oh_append_bigtext(buffer, "UP_HYSTERESIS"); oh_append_bigtext(buffer, OH_ENCODE_DELIMITER); } /* Remove last delimiter; add NL */ for (i=0; i<OH_ENCODE_DELIMITER_LENGTH + 1; i++) { buffer->Data[buffer->DataLength - i] = 0x00; } buffer->DataLength = buffer->DataLength - (i-1); oh_append_bigtext(buffer, "\n"); return(SA_OK);}/** * oh_fprint_idrfield: * @stream: File handle. * @thisfield: Pointer to SaHpiIdrFieldT to be printed. * @offsets: Number of offsets to start printing structure. * * Prints the member data contained in SaHpiIdrFieldT struct to a file. * The MACRO oh_print_idrfield(), uses this function to print to STDOUT. * * Returns: * SA_OK - normal operation. **/SaErrorT oh_fprint_idrfield(FILE *stream, const SaHpiIdrFieldT *thisfield, int offsets){ char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; oh_big_textbuffer mybuf; SaErrorT err; if (!stream || !thisfield) return(SA_ERR_HPI_INVALID_PARAMS); oh_init_bigtext(&mybuf); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Field Id: %d\n", thisfield->FieldId); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Field Type: %s\n", oh_lookup_idrfieldtype(thisfield->Type)); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "ReadOnly: %s\n", (thisfield->ReadOnly == SAHPI_TRUE) ? "TRUE" : "FALSE"); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "DataType: %s\n", oh_lookup_texttype(thisfield->Field.DataType)); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Language: %s\n", oh_lookup_language(thisfield->Field.Language)); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); oh_append_bigtext(&mybuf, "Content: "); if (thisfield->Field.DataLength == 0) oh_append_bigtext(&mybuf, "NULL\n"); else { if (thisfield->Field.DataType == SAHPI_TL_TYPE_BINARY) oh_append_data(&mybuf, thisfield->Field.Data, thisfield->Field.DataLength); else oh_append_bigtext(&mybuf, thisfield->Field.Data); } err = oh_fprint_bigtext(stream, &mybuf); return(err);}/** * oh_fprint_idrareaheader: * @stream: File handle. * @areaheader: Pointer to SaHpiIdrAreaHeaderT to be printed. * @offsets: Number of offsets to start printing structure. * * Prints the member data contained in SaHpiIdrAreaHeaderT struct to a file. * The MACRO oh_print_idrareaheader(), uses this function to print to STDOUT. * * Returns: * SA_OK - normal operation. **/SaErrorT oh_fprint_idrareaheader(FILE *stream, const SaHpiIdrAreaHeaderT *areaheader, int offsets){ char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; oh_big_textbuffer mybuf; SaErrorT err; if (!stream || !areaheader) return(SA_ERR_HPI_INVALID_PARAMS); oh_init_bigtext(&mybuf); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "AreaId: %d\n", areaheader->AreaId); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "AreaType: %s\n", oh_lookup_idrareatype(areaheader->Type)); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "ReadOnly: %s\n", (areaheader->ReadOnly == SAHPI_TRUE) ? "TRUE" : "FALSE" ); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "NumFields: %d\n", areaheader->NumFields); oh_append_bigtext(&mybuf, str); err = oh_fprint_bigtext(stream, &mybuf); return(err);}/** * oh_fprint_idrinfo: * @stream: File handle. * @idrinfo: Pointer to SaHpiIdrInfoT to be printed. * @offsets: Number of offsets to start printing structure. * * Prints the member data contained in SaHpiIdrInfoT struct to a file. * The MACRO oh_print_idrinfo(), uses this function to print to STDOUT. * * Returns: * SA_OK - normal operation. * SA_ERR_HPI_INVALID_PARAMS - Pointer parameter(s) are NULL. **/SaErrorT oh_fprint_idrinfo(FILE *stream, const SaHpiIdrInfoT *idrinfo, int offsets){ SaErrorT err; char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; oh_big_textbuffer mybuf; if (!stream || !idrinfo) return(SA_ERR_HPI_INVALID_PARAMS); oh_init_bigtext(&mybuf); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "IdrId: %d\n", idrinfo->IdrId); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "UpdateCount: %d\n", idrinfo->UpdateCount); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "ReadOnly: %s\n", (idrinfo->ReadOnly == SAHPI_TRUE) ? "TRUE" : "FALSE" ); oh_append_bigtext(&mybuf, str); oh_append_offset(&mybuf, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "NumAreas: %d\n", idrinfo->NumAreas); oh_append_bigtext(&mybuf, str); err = oh_fprint_bigtext(stream, &mybuf); return(err);}SaErrorT oh_fprint_textbuffer(FILE *stream, const SaHpiTextBufferT *textbuffer, int offsets) { SaErrorT err; oh_big_textbuffer buffer; if (!stream || !textbuffer) { return(SA_ERR_HPI_INVALID_PARAMS); } oh_init_bigtext(&buffer); err = oh_build_textbuffer(&buffer, textbuffer, offsets); if (err) { return(err); } err = oh_fprint_bigtext(stream, &buffer); return(err);}static SaErrorT oh_build_textbuffer(oh_big_textbuffer *buffer, const SaHpiTextBufferT *textbuffer, int offsets){ char str[SAHPI_MAX_TEXT_BUFFER_LENGTH]; /* Text Buffer Data Type */ oh_append_offset(buffer, offsets); snprintf(str, SAHPI_MAX_TEXT_BUFFER_LENGTH, "Data Type: %s\n", oh_lookup_texttype(textbuffer->DataType)); oh_append_bigtext(buffer, str); /* Text Buffer Language */ oh_append_offset(buffer, offsets);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -