Пример #1
0
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;
}
Пример #2
0
int main(int argc, char **argv) 
{

	/* ************************
	 * Local variables
	 * ***********************/	 
	int testfail = 0;
	SaErrorT          err;
	SaErrorT expected_err;

	SaHpiResourceIdT  id;
        SaHpiSessionIdT sessionid;
	SaHpiRptEntryT rptentry; 
	SaHpiSensorNumT sid = 0;
	SaHpiEventStateT assertMask;
	SaHpiEventStateT deassertMask;
	/* ***************************************	 	 
	 * Find a resource with No 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_FALSE);
	if (err != SA_OK) {
		dbg("Error! Can not find resources for test environment\n");
		dbg("      File=%s, Line=%d\n", __FILE__, __LINE__);
		err = tcleanup(&sessionid);
		return SA_OK;
	}

	id = rptentry.ResourceId;
	/**************************
	 * Test Capability checking
	 **************************/
 	expected_err = SA_ERR_HPI_CAPABILITY;
	err = saHpiSensorEventMasksGet(sessionid, id, sid, &assertMask, &deassertMask);
	checkstatus(err, expected_err, testfail);

	/***************************
	 * Cleanup after all tests
	 ***************************/
	 err = tcleanup(&sessionid);
	 return testfail;

}
Пример #3
0
int testSensor(SaHpiSessionIdT session, SaHpiResourceIdT resource, SaHpiRdrT *rdr)
{
        int retval = SAF_TEST_NOTSUPPORT;
        SaErrorT status;
        SaHpiSensorNumT s_num;
        SaHpiEventStateT Assertsaved, Deassertsaved;

        s_num = rdr->RdrTypeUnion.SensorRec.Num;

        status = saHpiSensorEventMasksGet(session, resource, s_num,
                                          &Assertsaved, &Deassertsaved);
        if (status != SA_OK) {
                retval = SAF_TEST_UNRESOLVED;
                e_print(saHpiSensorEventMasksGet, SA_OK, status);
        } else {
                sensorData[sensorCount].resourceId = resource;
                sensorData[sensorCount].sensorNum = s_num;
                sensorData[sensorCount].mask = rdr->RdrTypeUnion.SensorRec.Events;
                sensorData[sensorCount].asserted = Assertsaved;
                sensorData[sensorCount].deasserted = Deassertsaved;
                sensorData[sensorCount].stateIndex = 0;

                if (Assertsaved == 0) {
                        sensorData[sensorCount].state[0] = STATE_ADD;
                        sensorData[sensorCount].state[1] = STATE_REMOVE;
                        retval = change_event_masks(session, resource, s_num,
                                                    SAHPI_SENS_ADD_EVENTS_TO_MASKS);
                } else {
                        sensorData[sensorCount].state[0] = STATE_REMOVE;
                        sensorData[sensorCount].state[1] = STATE_ADD;
                        retval = change_event_masks(session, resource, s_num,
                                                    SAHPI_SENS_REMOVE_EVENTS_FROM_MASKS);
                }
                sensorCount++;
        }

        if (retval == SAF_TEST_PASS && sensorCount % POLL_COUNT == 0) {
                retval = checkForEvents(session);
        }

        return retval;
}
Пример #4
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;
}
Пример #5
0
int Test_Case_Rdr(SaHpiSessionIdT session, SaHpiResourceIdT resourceId,
		  SaHpiRdrT rdr)
{
	int ret = SAF_TEST_UNKNOWN;
	SaErrorT status;
	SaHpiSensorNumT sensorNum;

	SaHpiEventStateT assertMaskOld, assertMaskNew;
	SaHpiEventStateT deassertMaskOld, deassertMaskNew;
	SaHpiEventStateT assertSaved, deassertSaved;

	// -------- Restore the default values --------
	status = saHpiParmControl(session, resourceId, SAHPI_DEFAULT_PARM);

	if (status != SA_OK)	// The function works abnormally
	{
		e_print(saHpiParmControl, SA_OK, status);
		ret = SAF_TEST_FAIL;
		return ret;
	}

	if (rdr.RdrType == SAHPI_SENSOR_RDR) {
		if (rdr.RdrTypeUnion.SensorRec.EventCtrl != SAHPI_SEC_PER_EVENT) {
			ret = SAF_TEST_NOTSUPPORT;
			return ret;
		}

		sensorNum = rdr.RdrTypeUnion.SensorRec.Num;

		// ------ Get the state of the sensor ------
		status =
		    saHpiSensorEventMasksGet(session, resourceId, sensorNum,
					     &assertMaskOld, &deassertMaskOld);

		if (status != SA_OK) {
			e_print(saHpiSensorEventMasksGet, SA_OK, status);
			ret = SAF_TEST_UNRESOLVED;
			return ret;
		}

		assertSaved = assertMaskOld + 5;
		deassertSaved = deassertMaskOld + 5;

		status =
		    saHpiSensorEventMasksSet(session, resourceId, sensorNum,
					     SAHPI_SENS_REMOVE_EVENTS_FROM_MASKS,
					     assertSaved, deassertSaved);

		if (status != SA_OK) {
			e_print(saHpiSensorEventMasksSet, SA_OK, status);
			ret = SAF_TEST_UNRESOLVED;
			return ret;
		}
		// ------- Call saHpiParmControl with valid parameters -------
		status =
		    saHpiParmControl(session, resourceId, SAHPI_DEFAULT_PARM);

		if (status != SA_OK) {
			e_print(saHpiParmControl, SA_OK, status);
			ret = SAF_TEST_FAIL;
			return ret;
		}
		// ------ Get the state of the sensor ------
		status =
		    saHpiSensorEventMasksGet(session, resourceId, sensorNum,
					     &assertMaskNew, &deassertMaskNew);

		if (status != SA_OK) {
			e_print(saHpiSensorEventMasksGet, SA_OK, status);
			ret = SAF_TEST_UNRESOLVED;
			return ret;
		}
		// -------- Compare the old values with the new values --------
		if ((assertMaskOld != assertMaskNew)
		    || (deassertMaskOld != deassertMaskNew))
			ret = SAF_TEST_FAIL;
		else
			ret = SAF_TEST_PASS;
	} else {
		ret = SAF_TEST_NOTSUPPORT;
	}

	return ret;
}
Пример #6
0
int run_test(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId,
             SaHpiSensorRecT * sensorRec)
{
        SaErrorT status;
        int retval;
        SaHpiEventStateT assertEventMask;
        SaHpiEventStateT deassertEventMask;

        status = saHpiSensorEventMasksGet(sessionId, resourceId, sensorRec->Num,
                                          &assertEventMask, &deassertEventMask);

        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 (assertEventMask & SAHPI_ES_UPPER_MINOR
                   && deassertEventMask & SAHPI_ES_UPPER_MINOR) {
                retval = generateAssertEvents(sessionId, resourceId, sensorRec);
        } else if (sensorRec->EventCtrl == SAHPI_SEC_PER_EVENT) {

                status =
                    saHpiSensorEventMasksSet(sessionId, resourceId,
                                             sensorRec->Num,
                                             SAHPI_SENS_ADD_EVENTS_TO_MASKS,
                                             SAHPI_ES_UPPER_MINOR,
                                             SAHPI_ES_UPPER_MINOR);
                if (status != SA_OK) {
                        retval = SAF_TEST_UNRESOLVED;
                        e_print(saHpiSensorEventMasksSet, SA_OK, status);
                } else {

                        retval = generateAssertEvents(sessionId, resourceId, sensorRec);
                        if (retval == SAF_TEST_PASS) {
                                sensorData[sensorCount-1].restoreMasks = SAHPI_TRUE;
                                sensorData[sensorCount-1].assertEventMask = assertEventMask;
                                sensorData[sensorCount-1].deassertEventMask = deassertEventMask;
                        } else {
                                // restore event masks
                                if (!(assertEventMask & SAHPI_ES_UPPER_MINOR)) {
                                        status =
                                            saHpiSensorEventMasksSet(sessionId,
                                                                     resourceId,
                                                                     sensorRec->Num,
                                                                     SAHPI_SENS_REMOVE_EVENTS_FROM_MASKS,
                                                                     SAHPI_ES_UPPER_MINOR,
                                                                     0x0);
                                        if (status != SA_OK) {
                                                e_print(saHpiSensorEventMasksSet, SA_OK,
                                                        status);
                                        }
                                }

                                if (!(deassertEventMask & SAHPI_ES_UPPER_MINOR)) {
                                        status =
                                            saHpiSensorEventMasksSet(sessionId,
                                                                     resourceId,
                                                                     sensorRec->Num,
                                                                     SAHPI_SENS_REMOVE_EVENTS_FROM_MASKS,
                                                                     0x0,
                                                                     SAHPI_ES_UPPER_MINOR);
                                        if (status != SA_OK) {
                                                e_print(saHpiSensorEventMasksSet, SA_OK,
                                                        status);
                                        }
                                }
                       }
                }
        } else {
                retval = SAF_TEST_NOTSUPPORT;
        }

        return retval;
}
Пример #7
0
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;
	SaHpiEventStateT assertMask;
	SaHpiEventStateT deassertMask;
	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) {
		dbg("Did not find desired resource for test\n");
		return(SA_OK);
	} else {
		sid = rdr.RdrTypeUnion.SensorRec.Num; 
	}	
		
	/**************************
	 * Test: Invalid sensor id
	 **************************/
	expected_err = SA_ERR_HPI_NOT_PRESENT;
	err = saHpiSensorEventMasksGet(sessionid, id, 5000, &assertMask, &deassertMask);
	checkstatus(err, expected_err, testfail);

	/**************************
	 * Test: Normal path
	 **************************/
	expected_err = SA_OK;                 
	err = saHpiSensorEventMasksGet(sessionid, id, sid, &assertMask, &deassertMask);
	checkstatus(err, expected_err, testfail);
	
	/***************************
	 * Cleanup after all tests
	 ***************************/
	 err = tcleanup(&sessionid);
	 return testfail;

}