SaErrorT show_sensor_status(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid, SaHpiSensorNumT sensornum, hpi_ui_print_cb_t proc) { SaErrorT rv; SaHpiEventStateT assert; SaHpiEventStateT deassert; SaHpiBoolT status; char buf[1024]; rv = saHpiSensorEventEnableGet(sessionid, resourceid, sensornum, &status); if (rv != SA_OK) { snprintf(buf, 1024, "ERROR: saHpiSensorEventEnableGet error = %s\n", oh_lookup_error(rv)); proc(buf); return -1; } rv = saHpiSensorEventMasksGet( sessionid, resourceid, sensornum, &assert, &deassert); if (rv != SA_OK) { snprintf(buf, 1024, "ERROR: saHpiSensorEventMasksGet error %s\n", oh_lookup_error(rv)); proc(buf); return -1; } snprintf(buf, 1024, "Sensor Event Masks: \nSensor Event Status: %x\n" "Assert Events: %x\nDeassert Events: %x\n", status, assert, deassert); proc(buf); return SA_OK; }
int testSensor(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT *rdr) { SaErrorT status; int retval = SAF_TEST_NOTSUPPORT; SaHpiSensorRecT *sensorRec; SaHpiBoolT sensorEventsEnabled; sensorRec = &rdr->RdrTypeUnion.SensorRec; status = saHpiSensorEventEnableGet(sessionId, resourceId, sensorRec->Num, &sensorEventsEnabled); if (status == SA_ERR_HPI_ENTITY_NOT_PRESENT) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiSensorEnableGet, SA_OK, status); } else if (sensorEventsEnabled) { retval = run_test(sessionId, resourceId, sensorRec); } else if (sensorRec->EventCtrl == SAHPI_SEC_PER_EVENT) { status = saHpiSensorEventEnableSet(sessionId, resourceId, sensorRec->Num, SAHPI_TRUE); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiSensorEventEnableSet, SA_OK, status); } else { retval = run_test(sessionId, resourceId, sensorRec); if (retval == SAF_TEST_PASS) { sensorData[sensorCount-1].origEventEnable = SAHPI_FALSE; } else { // restore EventEnabled state status = saHpiSensorEventEnableSet(sessionId, resourceId, sensorRec->Num, SAHPI_FALSE); if (status != SA_OK) { e_print(saHpiSensorEventEnableSet, SA_OK, status); } } } } if (retval == SAF_TEST_PASS && sensorCount % POLL_COUNT == 0) { retval = checkForEvents(sessionId); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiBoolT enable; SaErrorT rc = SA_OK; rc = saHpiSessionOpen(SAHPI_UNSPECIFIED_DOMAIN_ID, &sid, NULL); if (rc != SA_OK) { dbg("Failed to open session"); return -1; } rc = saHpiDiscover(sid); if (rc != SA_OK) { dbg("Failed to run discover"); return -1; } /* get sensor event enable */ rc = saHpiSensorEventEnableGet(sid, 1, 1, &enable); if (rc != SA_OK) { dbg("Couldn't get sensor event enable"); dbg("Error %s",oh_lookup_error(rc)); return -1; } /* set sensor event enable */ rc = saHpiSensorEventEnableSet(sid, 1, 1, enable); if (rc == SA_OK) { /* all our sensors are read-only so if we can change the sensor it is an error */ dbg("Error: able to write to a read-only sensor"); return -1; } return 0; }
SaErrorT show_sensor(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid, SaHpiSensorNumT sensornum, hpi_ui_print_cb_t proc) { SaHpiSensorReadingT reading; SaHpiEventStateT status, assert, deassert; SaHpiRdrT rdr; SaErrorT rv; SaHpiBoolT val; char buf[SHOW_BUF_SZ]; char errbuf[SHOW_BUF_SZ]; Pr_ret_t res; rv = saHpiRdrGetByInstrumentId(sessionid, resourceid, SAHPI_SENSOR_RDR, sensornum, &rdr); if (rv != SA_OK) { snprintf(errbuf, SHOW_BUF_SZ, "\nERROR: saHpiRdrGetByInstrumentId: error: %s\n", oh_lookup_error(rv)); proc(errbuf); return(rv); }; snprintf(buf, SHOW_BUF_SZ, "Sensor(%d/%d) %s", resourceid, sensornum, oh_lookup_sensortype(rdr.RdrTypeUnion.SensorRec.Type)); proc(buf); res = print_text_buffer_text(" ", &(rdr.IdString), "\n", proc); if (res != HPI_UI_OK) return(SA_OK); rv = saHpiSensorEnableGet(sessionid, resourceid, sensornum, &val); if (rv != SA_OK) { snprintf(errbuf, SHOW_BUF_SZ, "\nERROR: saHpiSensorEnableGet: error: %s\n", oh_lookup_error(rv)); if (proc(errbuf) != HPI_UI_OK) return(rv); } else { if (val) res = proc("Enable "); else res = proc("Disable "); if (res != HPI_UI_OK) return(SA_OK); }; rv = saHpiSensorEventEnableGet(sessionid, resourceid, sensornum, &val); if (rv != SA_OK) { snprintf(errbuf, SHOW_BUF_SZ, "\nERROR: saHpiSensorEventEnableGet: error: %s\n", oh_lookup_error(rv)); if (proc(errbuf) != HPI_UI_OK) return(rv); } else { if (proc(" event : ") != HPI_UI_OK) return(SA_OK); if (val) res = proc("Enable"); else res = proc("Disable"); if (res != HPI_UI_OK) return(SA_OK); }; rv = saHpiSensorEventMasksGet(sessionid, resourceid, sensornum, &assert, &deassert); if (rv != SA_OK) { snprintf(errbuf, SHOW_BUF_SZ, "\nERROR: saHpiSensorEventMasksGet: error: %s\n", oh_lookup_error(rv)); if (proc(errbuf) != HPI_UI_OK) return(rv); } else { snprintf(buf, SHOW_BUF_SZ, " supported: 0x%4.4x masks: assert = 0x%4.4x" " deassert = 0x%4.4x\n", rdr.RdrTypeUnion.SensorRec.Events, assert, deassert); if (proc(buf) != HPI_UI_OK) return(rv); }; rv = saHpiSensorReadingGet(sessionid, resourceid, sensornum, &reading, &status); if (rv != SA_OK) { snprintf(errbuf, SHOW_BUF_SZ, "\nERROR: saHpiSensorReadingGet: error: %s\n", oh_lookup_error(rv)); proc(errbuf); return(rv); }; snprintf(buf, SHOW_BUF_SZ, "\tEvent states = 0x%x\n", status); if (proc(buf) != HPI_UI_OK) return(SA_OK); if (reading.IsSupported) { res = print_thres_value(&reading, "\tReading Value =", NULL, 0, proc); if (res == HPI_UI_END) return(SA_OK); } else { if (proc("\tReading not supported\n") != HPI_UI_OK) return(SA_OK); } show_threshold(sessionid, resourceid, sensornum, &(rdr.RdrTypeUnion.SensorRec), proc); return SA_OK; }
int main(int argc, char **argv) { /* ************************ * Local variables * ***********************/ int testfail = 0; SaErrorT err; SaErrorT expected_err; SaHpiRptEntryT rptentry; SaHpiRdrT rdr; SaHpiResourceIdT id; SaHpiSessionIdT sessionid; SaHpiSensorNumT sid = 0; SaHpiBoolT enable; SaHpiEntryIdT entryid; SaHpiEntryIdT nextentryid; SaHpiBoolT foundSensor; /* ************************************* * Find a resource with Sensor type rdr * ************************************* */ err = tsetup(&sessionid); if (err != SA_OK) { printf("Error! Can not open session for test environment\n"); printf(" File=%s, Line=%d\n", __FILE__, __LINE__); return -1; } err = tfind_resource(&sessionid,SAHPI_CAPABILITY_SENSOR,SAHPI_FIRST_ENTRY, &rptentry, SAHPI_TRUE); if (err != SA_OK) { printf("Error! Can not find resources for test environment\n"); printf(" File=%s, Line=%d\n", __FILE__, __LINE__); err = tcleanup(&sessionid); return SA_OK; } id = rptentry.ResourceId; /************************** * Test: find a sensor with desired property **************************/ entryid = SAHPI_FIRST_ENTRY; foundSensor = SAHPI_FALSE; do { err = saHpiRdrGet(sessionid,id,entryid,&nextentryid, &rdr); if (err == SA_OK) { if ((rdr.RdrType == SAHPI_SENSOR_RDR) && (rdr.RdrTypeUnion.SensorRec.DataFormat.IsSupported == SAHPI_FALSE)) { foundSensor = SAHPI_TRUE; break; } entryid = nextentryid; } } while ((err == SA_OK) && (entryid != SAHPI_LAST_ENTRY)) ; if (!foundSensor) { err("Did not find desired resource for test\n"); return(SA_OK); } else { sid = rdr.RdrTypeUnion.SensorRec.Num; } /************************** * Test:Invalid SensorId **************************/ expected_err = SA_ERR_HPI_NOT_PRESENT; err = saHpiSensorEventEnableGet(sessionid, id, 5000, &enable); checkstatus(err, expected_err, testfail); /************************** * Test: Normal Path **************************/ expected_err = SA_OK; err = saHpiSensorEventEnableGet(sessionid, id, sid, &enable); checkstatus(err, expected_err, testfail); /*************************** * Cleanup after all tests ***************************/ err = tcleanup(&sessionid); return testfail; }