Changes

Jump to navigation Jump to search
42 bytes added ,  11:32, 1 April 2020
no edit summary
Line 1,229: Line 1,229:  
| 0x8 || 0x8 || [[#IrSensorMode]]
 
| 0x8 || 0x8 || [[#IrSensorMode]]
 
|-
 
|-
| 0x10 || 0xE20 || Array of ProcessorState
+
| 0x10 || 0xE20 || [[#ProcessorStateRingLifo]]
 
|}
 
|}
   −
ProcessorState is specialized depending on the value of [[#IrSensorMode]].
+
==== ProcessorStateRingLifo ====
 
+
This is "nn::irsensor::detail::RingLifo<X,Y>" where "X" is a specialized processor state (e.g.: "nn::irsensor::MomentProcessorState") and "Y" is the maximum element count (e.g.: 5).
The array of ProcessorState can hold up to 6 entries of [[#PointingProcessorState]] or 5 entries of any of the other states.
  −
 
  −
The ProcessorState starts with the following header, followed by the actual array state.
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 1,242: Line 1,239:  
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x8 || SamplingNumber
+
| 0x0 || 0x8 || Start
 
|-
 
|-
| 0x8 || 0x4 || TimeStamp
+
| 0x8 || 0x4 || Count
 
|-
 
|-
 
| 0xC || 0x4 || Padding
 
| 0xC || 0x4 || Padding
 +
|-
 +
| 0x10 || Variable || ProcessorState
 
|}
 
|}
   −
==== MomentProcessorState ====
+
The maximum element count is 6 for [[#PointingProcessorState]] or 5 for any of the other states.
 +
 
 +
ProcessorState is specialized depending on the value of [[#IrSensorMode]].
 +
 
 +
===== MomentProcessorState =====
 
This is "nn::irsensor::MomentProcessorState".
 
This is "nn::irsensor::MomentProcessorState".
   Line 1,258: Line 1,261:  
| 0x0 || 0x8 || SamplingNumber
 
| 0x0 || 0x8 || SamplingNumber
 
|-
 
|-
| 0x8 || 0x4 || TimeStamp
+
| 0x8 || 0x8 || TimeStamp
|-
  −
| 0xC || 0x4 || Padding
   
|-
 
|-
 
| 0x10 || 0x4 || AmbientNoiseLevel
 
| 0x10 || 0x4 || AmbientNoiseLevel
Line 1,271: Line 1,272:  
The array of [[#MomentStatistic]] can hold up to 48 entries.
 
The array of [[#MomentStatistic]] can hold up to 48 entries.
   −
===== MomentStatistic =====
+
====== MomentStatistic ======
 
In sdknso GetMomentProcessorStates, this loops through each MomentProcessorState->MomentStatistic entry: <code>AverageIntensity *= scale;</code> The scale is calculated with: <code>scale = 76800.0f / (float)([[#PackedMomentProcessorConfig|WindowOfInterest]].width * [[#PackedMomentProcessorConfig|WindowOfInterest]].height);</code> Note that <code>76800 == 320*240</code>, hence with the default width/height the calculated scale is 1.0f.
 
In sdknso GetMomentProcessorStates, this loops through each MomentProcessorState->MomentStatistic entry: <code>AverageIntensity *= scale;</code> The scale is calculated with: <code>scale = 76800.0f / (float)([[#PackedMomentProcessorConfig|WindowOfInterest]].width * [[#PackedMomentProcessorConfig|WindowOfInterest]].height);</code> Note that <code>76800 == 320*240</code>, hence with the default width/height the calculated scale is 1.0f.
   Line 1,285: Line 1,286:  
|}
 
|}
   −
==== ClusteringProcessorState ====
+
===== ClusteringProcessorState =====
 
This is "nn::irsensor::ClusteringProcessorState".
 
This is "nn::irsensor::ClusteringProcessorState".
   Line 1,294: Line 1,295:  
| 0x0 || 0x8 || SamplingNumber
 
| 0x0 || 0x8 || SamplingNumber
 
|-
 
|-
| 0x8 || 0x4 || TimeStamp
+
| 0x8 || 0x8 || TimeStamp
|-
  −
| 0xC || 0x4 || Padding
   
|-
 
|-
 
| 0x10 || 0x1 || ObjectCount
 
| 0x10 || 0x1 || ObjectCount
Line 1,309: Line 1,308:  
The array of [[#ClusteringData]] can hold up to 16 entries.
 
The array of [[#ClusteringData]] can hold up to 16 entries.
   −
===== ClusteringData =====
+
====== ClusteringData ======
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,331: Line 1,330:  
|}
 
|}
   −
==== PointingProcessorState ====
+
===== PointingProcessorState =====
 
This is "nn::irsensor::PointingProcessorState" and "nn::irsensor::PointingProcessorMarkerState".
 
This is "nn::irsensor::PointingProcessorState" and "nn::irsensor::PointingProcessorMarkerState".
   Line 1,340: Line 1,339:  
| 0x0 || 0x8 || SamplingNumber
 
| 0x0 || 0x8 || SamplingNumber
 
|-
 
|-
| 0x8 || 0x4 || TimeStamp
+
| 0x8 || 0x8 || TimeStamp
|-
  −
| 0xC || 0x4 || Padding
   
|-
 
|-
 
| 0x10 || 0x1 || PointingStatus
 
| 0x10 || 0x1 || PointingStatus
Line 1,363: Line 1,360:  
|}
 
|}
   −
==== TeraPluginProcessorState ====
+
===== TeraPluginProcessorState =====
 
This is "nn::irsensor::TeraPluginProcessorState".
 
This is "nn::irsensor::TeraPluginProcessorState".
   Line 1,372: Line 1,369:  
| 0x0 || 0x8 || SamplingNumber
 
| 0x0 || 0x8 || SamplingNumber
 
|-
 
|-
| 0x8 || 0x4 || TimeStamp
+
| 0x8 || 0x8 || TimeStamp
|-
  −
| 0xC || 0x4 || Padding
   
|-
 
|-
 
| 0x10 || 0x4 || AmbientNoiseLevel
 
| 0x10 || 0x4 || AmbientNoiseLevel
Line 1,381: Line 1,376:  
|}
 
|}
   −
==== AdaptiveClusteringProcessorState ====
+
===== AdaptiveClusteringProcessorState =====
 
This is "nn::irsensor::AdaptiveClusteringProcessorState".
 
This is "nn::irsensor::AdaptiveClusteringProcessorState".
   Line 1,409: Line 1,404:  
The array of [[#AdaptiveClusteringData]] can hold up to 16 entries.
 
The array of [[#AdaptiveClusteringData]] can hold up to 16 entries.
   −
===== AdaptiveClusteringData =====
+
====== AdaptiveClusteringData ======
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,423: Line 1,418:  
|}
 
|}
   −
==== HandAnalysisImageState ====
+
===== HandAnalysisImageState =====
 
This is "nn::irsensor::HandAnalysisImageState".
 
This is "nn::irsensor::HandAnalysisImageState".
   Line 1,441: Line 1,436:  
|}
 
|}
   −
==== HandAnalysisSilhouetteState ====
+
===== HandAnalysisSilhouetteState =====
 
This is "nn::irsensor::HandAnalysisSilhouetteState".
 
This is "nn::irsensor::HandAnalysisSilhouetteState".
   Line 1,457: Line 1,452:  
|}
 
|}
   −
==== HandAnalysisSilhouetteStateWithFullFrameShape ====
+
===== HandAnalysisSilhouetteStateWithFullFrameShape =====
 
This is "nn::irsensor::HandAnalysisSilhouetteStateWithFullFrameShape".
 
This is "nn::irsensor::HandAnalysisSilhouetteStateWithFullFrameShape".
  

Navigation menu