Esempio n. 1
0
        private void FillSensors()
        {
            for (uint index = 0; index < _sharedMemory.dwNumReadingElements; ++index)
            {
                uint            i       = index;
                _HWiNFO_ELEMENT element = GetHWInfoElement(i);

                _sensors[(int)element.dwSensorIndex].Sensors.Add(new HWInfoSensor(() => GetHWInfoElement(i)));
            }
        }
Esempio n. 2
0
 public List <JsonObj> ReadSensors()
 {
     for (uint index = 0; index < HWiNFOMemory.dwNumReadingElements; ++index)
     {
         using (MemoryMappedViewStream viewStream = mmf.CreateViewStream(HWiNFOMemory.dwOffsetOfReadingSection + index * HWiNFOMemory.dwSizeOfReadingElement, HWiNFOMemory.dwSizeOfReadingElement, MemoryMappedFileAccess.Read))
         {
             byte[] buffer = new byte[(int)HWiNFOMemory.dwSizeOfReadingElement];
             viewStream.Read(buffer, 0, (int)HWiNFOMemory.dwSizeOfReadingElement);
             GCHandle        gcHandle  = GCHandle.Alloc(buffer, GCHandleType.Pinned);
             _HWiNFO_ELEMENT structure = (_HWiNFO_ELEMENT)Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof(_HWiNFO_ELEMENT));
             gcHandle.Free();
             data[(int)structure.dwSensorIndex].sensors.Add(structure);
         }
     }
     return(saveDataToFile());
 }