void cHpiSubProviderAlarm::GetInfo( std::deque<HpiInfo>& info ) const { info.clear(); SaErrorT rv; SaHpiAlarmT a; rv = saHpiAlarmGet( m_ctx.session_id, m_ctx.alarm_id, &a ); if ( rv != SA_OK ) { Line( info, L"saHpiAlarmGet failed", rv, I32_SaError ); return; } Line( info, L"Alarm Id", a.AlarmId, UI32_SaHpiAlarmId ); Line( info, L"Timestamp", a.Timestamp, I64_SaHpiTime ); Line( info, L"Severity", a.Severity ); Line( info, L"Acknowledged", a.Acknowledged, UI8_SaHpiBool ); const SaHpiConditionT& c = a.AlarmCond; Line( info, L"Condition", L"" ); Line( info, L" Type", c.Type ); Line( info, L" Entity", c.Entity ); Line( info, L" Domain Id", c.DomainId, UI32_ConditionDomainId ); Line( info, L" Resource Id", c.ResourceId, UI32_SaHpiResourceId ); if ( c.Type == SAHPI_STATUS_COND_TYPE_SENSOR ) { Line( info, L" Sensor Number", c.SensorNum, UI32_SaHpiSensorNum ); Line( info, L" Event State", c.EventState, UI16_SaHpiEventState ); } Line( info, L" Name", c.Name ); if ( c.Type == SAHPI_STATUS_COND_TYPE_OEM ) { Line( info, L" Manufacturer Id", c.Mid, UI32_SaHpiManufacturerId ); } Line( info, L" Data", c.Data ); }
int Test_Domain(SaHpiSessionIdT session_id) { SaHpiAlarmT NewAlarm; SaErrorT status; int retval = SAF_TEST_UNKNOWN; // // Create a new Alarm // NewAlarm.Severity = SAHPI_MINOR; NewAlarm.Acknowledged = SAHPI_FALSE; NewAlarm.AlarmCond.Type = SAHPI_STATUS_COND_TYPE_USER; NewAlarm.AlarmCond.ResourceId = SAHPI_UNSPECIFIED_RESOURCE_ID; NewAlarm.AlarmCond.Data.Language = SAHPI_LANG_ENGLISH; NewAlarm.AlarmCond.Data.DataType = SAHPI_TL_TYPE_TEXT; NewAlarm.AlarmCond.Data.DataLength = 1; NewAlarm.AlarmCond.Data.Data[0] = 'a'; NewAlarm.AlarmCond.Name.Length = 4; NewAlarm.AlarmCond.Name.Value[0] = 'T'; NewAlarm.AlarmCond.Name.Value[1] = 'e'; NewAlarm.AlarmCond.Name.Value[2] = 's'; NewAlarm.AlarmCond.Name.Value[3] = 't'; status = saHpiAlarmAdd(session_id, &NewAlarm); if (status != SA_OK) { e_print(saHpiAlarmAdd, SA_OK, status); retval = SAF_TEST_FAIL; } else { SaHpiAlarmT Alarm; // verify that what we get back is "our" alarm status = saHpiAlarmGet(session_id, NewAlarm.AlarmId, &Alarm); if (status != SA_OK) { e_print(saHpiAlarmGet, SA_OK, status); retval = SAF_TEST_UNRESOLVED; } else { if (!__compare_alarm(&NewAlarm, &Alarm)) retval = SAF_TEST_PASS; else retval = SAF_TEST_FAIL; // Clean up status = saHpiAlarmDelete(session_id, NewAlarm.AlarmId, 0); if (status != SA_OK) e_print(saHpiAlarmDelete, SA_OK, status); } } return (retval); }
int Test_Domain(SaHpiSessionIdT session_id) { SaHpiAlarmT NewAlarm; SaHpiAlarmIdT FirstAlarm, SecondAlarm; SaErrorT status; int retval = SAF_TEST_UNKNOWN; // // Create a new Alarm // NewAlarm.Severity = SAHPI_MINOR; NewAlarm.Acknowledged = SAHPI_FALSE; NewAlarm.AlarmCond.Type = SAHPI_STATUS_COND_TYPE_USER; NewAlarm.AlarmCond.ResourceId = SAHPI_UNSPECIFIED_RESOURCE_ID; NewAlarm.AlarmCond.Data.Language = SAHPI_LANG_ENGLISH; NewAlarm.AlarmCond.Data.DataType = SAHPI_TL_TYPE_TEXT; NewAlarm.AlarmCond.Data.DataLength = 1; NewAlarm.AlarmCond.Data.Data[0] = 'a'; NewAlarm.AlarmCond.DomainId = SAHPI_UNSPECIFIED_DOMAIN_ID; NewAlarm.AlarmCond.Name.Length = 4; NewAlarm.AlarmCond.Name.Value[0] = 'T'; NewAlarm.AlarmCond.Name.Value[1] = 'e'; NewAlarm.AlarmCond.Name.Value[2] = 's'; NewAlarm.AlarmCond.Name.Value[3] = 't'; status = saHpiAlarmAdd(session_id, &NewAlarm); if (status != SA_OK) { // Unable to create a new alarm e_print(saHpiAlarmAdd, SA_OK, status); retval = SAF_TEST_UNRESOLVED; } else { // When the Alarm is successfully set FirstAlarm = NewAlarm.AlarmId; // create the second alarm NewAlarm.AlarmId = 0; NewAlarm.Timestamp = 0; NewAlarm.AlarmCond.Name.Value[0] = '2'; NewAlarm.AlarmCond.Data.Data[0] = 'b'; status = saHpiAlarmAdd(session_id, &NewAlarm); if (status != SA_OK) { // Unable to create a new alarm e_print(saHpiAlarmAdd, SA_OK, status); retval = SAF_TEST_UNRESOLVED; } else { SecondAlarm = NewAlarm.AlarmId; status = saHpiAlarmAcknowledge(session_id, SAHPI_ENTRY_UNSPECIFIED, SAHPI_MINOR); if (status != SA_OK) { e_print(saHpiAlarmAcknowledge, SA_OK, status); retval = SAF_TEST_FAIL; } else { // Check the alarms to see if they were marked // as acknowledged status = saHpiAlarmGet(session_id, FirstAlarm, &NewAlarm); if (status != SA_OK) { // Unable to read the new alarm e_print(saHpiAlarmGet, SA_OK, status); retval = SAF_TEST_UNRESOLVED; } else { if (NewAlarm.Acknowledged != SAHPI_FALSE) { // Check the second alarm status = saHpiAlarmGet(session_id, SecondAlarm, &NewAlarm); if (status != SA_OK) { // Unable to read the new alarm e_print(saHpiAlarmGet, SA_OK, status); retval = SAF_TEST_UNRESOLVED; } else if (NewAlarm. Acknowledged != SAHPI_FALSE) retval = SAF_TEST_PASS; } } if (retval == SAF_TEST_UNKNOWN) { m_print ("Function \"saHpiAlarmGet\" failed to acknowledge one but not both alarms with different severity!"); retval = SAF_TEST_FAIL; } } // Clean up status = saHpiAlarmDelete(session_id, SecondAlarm, 0); } // Clean up status = saHpiAlarmDelete(session_id, FirstAlarm, 0); } return (retval); }