/*********************************************************** * Helper functions * TODO - move to HpiUtils? **********************************************************/ private static SaHpiConditionT NewCondition() { return(new SaHpiConditionT { Type = HpiConst.SAHPI_STATUS_COND_TYPE_USER, Entity = HpiUtil.MakeUnspecifiedSaHpiEntityPathT(), DomainId = HpiConst.SAHPI_UNSPECIFIED_DOMAIN_ID, ResourceId = HpiConst.SAHPI_UNSPECIFIED_RESOURCE_ID, SensorNum = HpiConst.SAHPI_ENTRY_UNSPECIFIED, EventState = HpiConst.SAHPI_ES_UNSPECIFIED, Name = new SaHpiNameT { Length = 0, Value = new byte[HpiConst.SA_HPI_MAX_NAME_LENGTH], }, Mid = HpiConst.SAHPI_MANUFACTURER_ID_UNSPECIFIED, Data = HpiUtil.ToSaHpiTextBufferT(""), }); }
public static void Main() { long version = Api.oHpiVersionGet(); Console.WriteLine("OpenHPI baselib package version: 0x{0:X16}", version); long rv; long did; long sid; rv = Api.oHpiDomainAdd(HpiUtil.ToSaHpiTextBufferT("localhost"), OhpiConst.DEFAULT_PORT, HpiUtil.MakeRootSaHpiEntityPathT(), out did); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: oHpiDomainAdd: {0}", rv); return; } Console.WriteLine("DID = {0}", did); rv = Api.saHpiSessionOpen(did, out sid, null); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: saHpiSessionOpen: {0}", rv); return; } Console.WriteLine("SID = {0}", sid); SaHpiEntityPathT my_ep; rv = Api.saHpiMyEntityPathGet(sid, out my_ep); if (rv == HpiConst.SA_OK) { Console.WriteLine("My entity: {0}", HpiUtil.FromSaHpiEntityPathT(my_ep)); } Console.WriteLine("Resource List:"); long eid = HpiConst.SAHPI_FIRST_ENTRY; long next_eid; SaHpiRptEntryT rpte; do { rv = Api.saHpiRptEntryGet(sid, eid, out next_eid, out rpte); if ((eid == HpiConst.SAHPI_FIRST_ENTRY) && (rv == HpiConst.SA_ERR_HPI_NOT_PRESENT)) { break; } if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: saHpiRptEntryGet: {0}", rv); return; } Console.WriteLine(" HPI Resource {0}: {1}: {2}", rpte.ResourceId, HpiUtil.FromSaHpiTextBufferT(rpte.ResourceTag), HpiUtil.FromSaHpiEntityPathT(rpte.ResourceEntity)); eid = next_eid; } while (eid != HpiConst.SAHPI_LAST_ENTRY); rv = Api.saHpiSessionClose(sid); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: saHpiSessionClose: {0}", rv); return; } Console.WriteLine("End"); }
public static void Main() { long rv; long did; long sid; rv = Api.oHpiDomainAdd(HpiUtil.ToSaHpiTextBufferT("localhost"), OhpiConst.DEFAULT_PORT, HpiUtil.MakeRootSaHpiEntityPathT(), out did); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: oHpiDomainAdd: {0}", rv); return; } rv = Api.saHpiSessionOpen(did, out sid, null); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: saHpiSessionOpen: {0}", rv); return; } // DRT Console.WriteLine(""); Console.WriteLine("DRT:"); foreach (var drte in HpiIterators.Drt(sid)) { Console.WriteLine(" HPI Domain {0}: Is Peer {1}", drte.DomainId, drte.IsPeer); } // DAT Console.WriteLine(""); Console.WriteLine("DAT:"); foreach (var a in HpiIterators.Dat(sid)) { Console.WriteLine(" Alarm {0}: {1}: {2}", a.AlarmId, HpiUtil.FromSaHpiSeverityT(a.Severity), HpiUtil.FromSaHpiStatusCondTypeT(a.AlarmCond.Type)); } // DEL: Read backward Console.WriteLine(""); Console.WriteLine("DEL: Newest entries first"); foreach (var ex in HpiIterators.EventLogEntries(sid, HpiConst.SAHPI_UNSPECIFIED_RESOURCE_ID, false)) { Console.WriteLine(" Entry {0}: {1}", ex.EventLogEntry.EntryId, HpiUtil.FromSaHpiEventTypeT(ex.EventLogEntry.Event.EventType)); } // Iterate over top-level entities Console.WriteLine(""); Console.WriteLine("Top-level Entities:"); SaHpiEntityPathT root = HpiUtil.MakeRootSaHpiEntityPathT(); foreach (var child in HpiIterators.ChildEntities(sid, root)) { Console.WriteLine(" {0}", HpiUtil.FromSaHpiEntityPathT(child)); // Resources for the entity Console.WriteLine(" Resources:"); foreach (var rid in HpiIterators.EntityResourceIds(sid, child)) { Console.WriteLine(" Resource {0}", rid); } // Sensors for the entity Console.WriteLine(" Sensors:"); foreach (var ri in HpiIterators.EntityInstrumentIds(sid, child, HpiConst.SAHPI_SENSOR_RDR)) { Console.WriteLine(" Resource {0} Sensor {1}", ri.ResourceId, ri.InstrumentId); } } // RPT Console.WriteLine(""); Console.WriteLine("RPT:"); foreach (var rpte in HpiIterators.Rpt(sid)) { Console.WriteLine(" Resource {0}: {1}: {2}", rpte.ResourceId, HpiUtil.FromSaHpiTextBufferT(rpte.ResourceTag), HpiUtil.FromSaHpiEntityPathT(rpte.ResourceEntity)); } // RDRs Console.WriteLine(""); Console.WriteLine("RDRs:"); foreach (var rpte in HpiIterators.Rpt(sid)) { Console.WriteLine(" Resource {0}:", rpte.ResourceId); foreach (var rdr in HpiIterators.Rdrs(sid, rpte.ResourceId)) { Console.WriteLine(" {0}: {1}", HpiUtil.FromSaHpiRdrTypeT(rdr.RdrType), HpiUtil.FromSaHpiTextBufferT(rdr.IdString)); } } // IDR Areas (LINQ is used to select IDRs as an example) Console.WriteLine(""); Console.WriteLine("IDRs:"); var idrs = from rpte in HpiIterators.Rpt(sid) from rdr in HpiIterators.Rdrs(sid, rpte.ResourceId) where rdr.RdrType == HpiConst.SAHPI_INVENTORY_RDR select new { rid = rpte.ResourceId, idrid = rdr.RdrTypeUnion.InventoryRec.IdrId }; foreach (var ri in idrs) { Console.WriteLine(" Resource {0}: IDR {1}:", ri.rid, ri.idrid); // IDR Areas foreach (var ahdr in HpiIterators.IdrAreaHeaders(sid, ri.rid, ri.idrid)) { Console.WriteLine(" Area {0}: {1}", ahdr.AreaId, HpiUtil.FromSaHpiIdrAreaTypeT(ahdr.Type)); // IDR Fields foreach (var f in HpiIterators.IdrAreaFields(sid, ri.rid, ri.idrid, ahdr.AreaId)) { Console.WriteLine(" Field {0}: {1}", f.FieldId, HpiUtil.FromSaHpiIdrFieldTypeT(f.Type)); } } } // Announcements in Annunciators (LINQ is used to select annunciators as an example) Console.WriteLine(""); Console.WriteLine("Annunciators:"); var anns = from rpte in HpiIterators.Rpt(sid) from rdr in HpiIterators.Rdrs(sid, rpte.ResourceId) where rdr.RdrType == HpiConst.SAHPI_ANNUNCIATOR_RDR select new { rid = rpte.ResourceId, annnum = rdr.RdrTypeUnion.AnnunciatorRec.AnnunciatorNum }; foreach (var ri in anns) { Console.WriteLine(" Resource {0}: Annunciator {1}:", ri.rid, ri.annnum); // Announcements foreach (var a in HpiIterators.Announcements(sid, ri.rid, ri.annnum)) { Console.WriteLine(" Announcement {0}: {1}: {2}", a.EntryId, HpiUtil.FromSaHpiSeverityT(a.Severity), HpiUtil.FromSaHpiStatusCondTypeT(a.StatusCond.Type)); } } // FUMI (LINQ is used to select FUMIs with Logical Bank only as an example) Console.WriteLine(""); Console.WriteLine("FUMIs:"); var fumis = from rpte in HpiIterators.Rpt(sid) from rdr in HpiIterators.Rdrs(sid, rpte.ResourceId) where rdr.RdrType == HpiConst.SAHPI_FUMI_RDR where rdr.RdrTypeUnion.FumiRec.NumBanks == 0 select new { rid = rpte.ResourceId, fuminum = rdr.RdrTypeUnion.FumiRec.Num }; foreach (var ri in fumis) { Console.WriteLine(" Resource {0}: FUMI {1}:", ri.rid, ri.fuminum); // Source components Console.WriteLine(" Source Components:"); foreach (var info in HpiIterators.FumiSourceComponents(sid, ri.rid, ri.fuminum, 0)) { Console.WriteLine(" Component {0}: {1}: FW {2}.{3}.{4}", info.ComponentId, HpiUtil.FromSaHpiTextBufferT(info.MainFwInstance.Description), info.MainFwInstance.MajorVersion, info.MainFwInstance.MinorVersion, info.MainFwInstance.AuxVersion); } // Target components Console.WriteLine(" Target Components:"); foreach (var info in HpiIterators.FumiTargetComponents(sid, ri.rid, ri.fuminum, 0)) { Console.WriteLine(" Component {0}: {1}: FW {2}.{3}.{4}", info.ComponentId, HpiUtil.FromSaHpiTextBufferT(info.MainFwInstance.Description), info.MainFwInstance.MajorVersion, info.MainFwInstance.MinorVersion, info.MainFwInstance.AuxVersion); } // Logical Target components Console.WriteLine(" Logical Target Components:"); foreach (var info in HpiIterators.FumiLogicalTargetComponents(sid, ri.rid, ri.fuminum)) { Console.WriteLine(" Component {0}:", info.ComponentId); if (info.PendingFwInstance.InstancePresent != HpiConst.SAHPI_FALSE) { Console.WriteLine(" Pending FW {0}.{1}.{2}:", info.PendingFwInstance.MajorVersion, info.PendingFwInstance.MinorVersion, info.PendingFwInstance.AuxVersion); } if (info.RollbackFwInstance.InstancePresent != HpiConst.SAHPI_FALSE) { Console.WriteLine(" Rollback FW {0}.{1}.{2}:", info.RollbackFwInstance.MajorVersion, info.RollbackFwInstance.MinorVersion, info.RollbackFwInstance.AuxVersion); } } } rv = Api.saHpiSessionClose(sid); if (rv != HpiConst.SA_OK) { Console.WriteLine("Error: saHpiSessionClose: {0}", rv); return; } }