// 历史报警信息
        public void GetHisAlarmInfo()
        {
            Int32 index = 0;
            Int32 ret   = HncApi.HNC_AlarmGetHistoryData(index, ref count, historyData, HNCCollector.ActiveClientNo);

            if (ret != 0)
            {
                MessageBox.Show("failing to get the history alarmNum!");
            }
            // 注意报警信息有很多,这种表达方式需要验证。  historyData[i]
        }
Esempio n. 2
0
        public Int32 HNC_AlarmGetHistoryData(Int32 index, ref Int32 count, AlarmHisData[] data)
        {
            Int32  MAX_ALARM_HISDATA_LEN = HncApi.ALARM_HISTORY_MAX_NUM * Marshal.SizeOf(typeof(AlarmHisData));
            IntPtr ptr = Marshal.AllocHGlobal(MAX_ALARM_HISDATA_LEN);
            Int32  ret = HncApi.HNC_AlarmGetHistoryData(index, ref count, ptr, _ClientNo);

            if (ret == 0)
            {
                for (Int32 i = 0; i < count; i++)
                {
                    data[i] = (AlarmHisData)Marshal.PtrToStructure((IntPtr)(ptr.ToInt32() + i * Marshal.SizeOf(typeof(AlarmHisData))), typeof(AlarmHisData));
                }
            }

            Marshal.FreeHGlobal(ptr);

            return(ret);
        }