Win32 API 日本語リファレンス
ホームDevices.Geolocation › GNSS_FIXDATA_ACCURACY_2

GNSS_FIXDATA_ACCURACY_2

構造体
サイズx64: 120 バイト / x86: 120 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
SizeDWORD4+0+0この構造体のサイズをバイト単位で示すDWORD。
VersionDWORD4+4+4構造体のバージョンを示すDWORD。
HorizontalAccuracyDOUBLE8+8+8水平方向の精度をメートル単位の倍精度浮動小数点で示す。
HorizontalErrorMajorAxisDOUBLE8+16+16水平誤差楕円の長軸長をメートル単位の倍精度で示す。
HorizontalErrorMinorAxisDOUBLE8+24+24水平誤差楕円の短軸長をメートル単位の倍精度で示す。
HorizontalErrorAngleDOUBLE8+32+32水平誤差楕円の長軸の向きを度単位の倍精度で示す。
HeadingAccuracyDOUBLE8+40+40方位の精度を度単位の倍精度で示す。
AltitudeAccuracyDOUBLE8+48+48高度の精度をメートル単位の倍精度で示す。
SpeedAccuracyDOUBLE8+56+56速度の精度をメートル毎秒の倍精度で示す。
HorizontalConfidenceDWORD4+64+64水平精度の信頼度をパーセントで示すDWORD。
HeadingConfidenceDWORD4+68+68方位精度の信頼度をパーセントで示すDWORD。
AltitudeConfidenceDWORD4+72+72高度精度の信頼度をパーセントで示すDWORD。
SpeedConfidenceDWORD4+76+76速度精度の信頼度をパーセントで示すDWORD。
PositionDilutionOfPrecisionDOUBLE8+80+80位置精度低下率(PDOP)を倍精度浮動小数点で示す。
HorizontalDilutionOfPrecisionDOUBLE8+88+88水平精度低下率(HDOP)を倍精度浮動小数点で示す。
VerticalDilutionOfPrecisionDOUBLE8+96+96垂直精度低下率(VDOP)を倍精度浮動小数点で示す。
GeometricDilutionOfPrecisionDOUBLE8+104+104幾何学的精度低下率(GDOP)を倍精度浮動小数点で示す。
TimeDilutionOfPrecisionDOUBLE8+112+112時刻精度低下率(TDOP)を倍精度浮動小数点で示す。

各言語での定義

#include <windows.h>

// GNSS_FIXDATA_ACCURACY_2  (x64 120 / x86 120 バイト)
typedef struct GNSS_FIXDATA_ACCURACY_2 {
    DWORD Size;
    DWORD Version;
    DOUBLE HorizontalAccuracy;
    DOUBLE HorizontalErrorMajorAxis;
    DOUBLE HorizontalErrorMinorAxis;
    DOUBLE HorizontalErrorAngle;
    DOUBLE HeadingAccuracy;
    DOUBLE AltitudeAccuracy;
    DOUBLE SpeedAccuracy;
    DWORD HorizontalConfidence;
    DWORD HeadingConfidence;
    DWORD AltitudeConfidence;
    DWORD SpeedConfidence;
    DOUBLE PositionDilutionOfPrecision;
    DOUBLE HorizontalDilutionOfPrecision;
    DOUBLE VerticalDilutionOfPrecision;
    DOUBLE GeometricDilutionOfPrecision;
    DOUBLE TimeDilutionOfPrecision;
} GNSS_FIXDATA_ACCURACY_2;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct GNSS_FIXDATA_ACCURACY_2
{
    public uint Size;
    public uint Version;
    public double HorizontalAccuracy;
    public double HorizontalErrorMajorAxis;
    public double HorizontalErrorMinorAxis;
    public double HorizontalErrorAngle;
    public double HeadingAccuracy;
    public double AltitudeAccuracy;
    public double SpeedAccuracy;
    public uint HorizontalConfidence;
    public uint HeadingConfidence;
    public uint AltitudeConfidence;
    public uint SpeedConfidence;
    public double PositionDilutionOfPrecision;
    public double HorizontalDilutionOfPrecision;
    public double VerticalDilutionOfPrecision;
    public double GeometricDilutionOfPrecision;
    public double TimeDilutionOfPrecision;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure GNSS_FIXDATA_ACCURACY_2
    Public Size As UInteger
    Public Version As UInteger
    Public HorizontalAccuracy As Double
    Public HorizontalErrorMajorAxis As Double
    Public HorizontalErrorMinorAxis As Double
    Public HorizontalErrorAngle As Double
    Public HeadingAccuracy As Double
    Public AltitudeAccuracy As Double
    Public SpeedAccuracy As Double
    Public HorizontalConfidence As UInteger
    Public HeadingConfidence As UInteger
    Public AltitudeConfidence As UInteger
    Public SpeedConfidence As UInteger
    Public PositionDilutionOfPrecision As Double
    Public HorizontalDilutionOfPrecision As Double
    Public VerticalDilutionOfPrecision As Double
    Public GeometricDilutionOfPrecision As Double
    Public TimeDilutionOfPrecision As Double
End Structure
import ctypes
from ctypes import wintypes

class GNSS_FIXDATA_ACCURACY_2(ctypes.Structure):
    _fields_ = [
        ("Size", wintypes.DWORD),
        ("Version", wintypes.DWORD),
        ("HorizontalAccuracy", ctypes.c_double),
        ("HorizontalErrorMajorAxis", ctypes.c_double),
        ("HorizontalErrorMinorAxis", ctypes.c_double),
        ("HorizontalErrorAngle", ctypes.c_double),
        ("HeadingAccuracy", ctypes.c_double),
        ("AltitudeAccuracy", ctypes.c_double),
        ("SpeedAccuracy", ctypes.c_double),
        ("HorizontalConfidence", wintypes.DWORD),
        ("HeadingConfidence", wintypes.DWORD),
        ("AltitudeConfidence", wintypes.DWORD),
        ("SpeedConfidence", wintypes.DWORD),
        ("PositionDilutionOfPrecision", ctypes.c_double),
        ("HorizontalDilutionOfPrecision", ctypes.c_double),
        ("VerticalDilutionOfPrecision", ctypes.c_double),
        ("GeometricDilutionOfPrecision", ctypes.c_double),
        ("TimeDilutionOfPrecision", ctypes.c_double),
    ]
#[repr(C)]
pub struct GNSS_FIXDATA_ACCURACY_2 {
    pub Size: u32,
    pub Version: u32,
    pub HorizontalAccuracy: f64,
    pub HorizontalErrorMajorAxis: f64,
    pub HorizontalErrorMinorAxis: f64,
    pub HorizontalErrorAngle: f64,
    pub HeadingAccuracy: f64,
    pub AltitudeAccuracy: f64,
    pub SpeedAccuracy: f64,
    pub HorizontalConfidence: u32,
    pub HeadingConfidence: u32,
    pub AltitudeConfidence: u32,
    pub SpeedConfidence: u32,
    pub PositionDilutionOfPrecision: f64,
    pub HorizontalDilutionOfPrecision: f64,
    pub VerticalDilutionOfPrecision: f64,
    pub GeometricDilutionOfPrecision: f64,
    pub TimeDilutionOfPrecision: f64,
}
import "golang.org/x/sys/windows"

type GNSS_FIXDATA_ACCURACY_2 struct {
	Size uint32
	Version uint32
	HorizontalAccuracy float64
	HorizontalErrorMajorAxis float64
	HorizontalErrorMinorAxis float64
	HorizontalErrorAngle float64
	HeadingAccuracy float64
	AltitudeAccuracy float64
	SpeedAccuracy float64
	HorizontalConfidence uint32
	HeadingConfidence uint32
	AltitudeConfidence uint32
	SpeedConfidence uint32
	PositionDilutionOfPrecision float64
	HorizontalDilutionOfPrecision float64
	VerticalDilutionOfPrecision float64
	GeometricDilutionOfPrecision float64
	TimeDilutionOfPrecision float64
}
type
  GNSS_FIXDATA_ACCURACY_2 = record
    Size: DWORD;
    Version: DWORD;
    HorizontalAccuracy: Double;
    HorizontalErrorMajorAxis: Double;
    HorizontalErrorMinorAxis: Double;
    HorizontalErrorAngle: Double;
    HeadingAccuracy: Double;
    AltitudeAccuracy: Double;
    SpeedAccuracy: Double;
    HorizontalConfidence: DWORD;
    HeadingConfidence: DWORD;
    AltitudeConfidence: DWORD;
    SpeedConfidence: DWORD;
    PositionDilutionOfPrecision: Double;
    HorizontalDilutionOfPrecision: Double;
    VerticalDilutionOfPrecision: Double;
    GeometricDilutionOfPrecision: Double;
    TimeDilutionOfPrecision: Double;
  end;
const GNSS_FIXDATA_ACCURACY_2 = extern struct {
    Size: u32,
    Version: u32,
    HorizontalAccuracy: f64,
    HorizontalErrorMajorAxis: f64,
    HorizontalErrorMinorAxis: f64,
    HorizontalErrorAngle: f64,
    HeadingAccuracy: f64,
    AltitudeAccuracy: f64,
    SpeedAccuracy: f64,
    HorizontalConfidence: u32,
    HeadingConfidence: u32,
    AltitudeConfidence: u32,
    SpeedConfidence: u32,
    PositionDilutionOfPrecision: f64,
    HorizontalDilutionOfPrecision: f64,
    VerticalDilutionOfPrecision: f64,
    GeometricDilutionOfPrecision: f64,
    TimeDilutionOfPrecision: f64,
};
type
  GNSS_FIXDATA_ACCURACY_2 {.bycopy.} = object
    Size: uint32
    Version: uint32
    HorizontalAccuracy: float64
    HorizontalErrorMajorAxis: float64
    HorizontalErrorMinorAxis: float64
    HorizontalErrorAngle: float64
    HeadingAccuracy: float64
    AltitudeAccuracy: float64
    SpeedAccuracy: float64
    HorizontalConfidence: uint32
    HeadingConfidence: uint32
    AltitudeConfidence: uint32
    SpeedConfidence: uint32
    PositionDilutionOfPrecision: float64
    HorizontalDilutionOfPrecision: float64
    VerticalDilutionOfPrecision: float64
    GeometricDilutionOfPrecision: float64
    TimeDilutionOfPrecision: float64
struct GNSS_FIXDATA_ACCURACY_2
{
    uint Size;
    uint Version;
    double HorizontalAccuracy;
    double HorizontalErrorMajorAxis;
    double HorizontalErrorMinorAxis;
    double HorizontalErrorAngle;
    double HeadingAccuracy;
    double AltitudeAccuracy;
    double SpeedAccuracy;
    uint HorizontalConfidence;
    uint HeadingConfidence;
    uint AltitudeConfidence;
    uint SpeedConfidence;
    double PositionDilutionOfPrecision;
    double HorizontalDilutionOfPrecision;
    double VerticalDilutionOfPrecision;
    double GeometricDilutionOfPrecision;
    double TimeDilutionOfPrecision;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; GNSS_FIXDATA_ACCURACY_2 サイズ: 120 バイト(x64)
dim st, 30    ; 4byte整数×30(構造体サイズ 120 / 4 切り上げ)
; Size : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; Version : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; HorizontalAccuracy : DOUBLE (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; HorizontalErrorMajorAxis : DOUBLE (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; HorizontalErrorMinorAxis : DOUBLE (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; HorizontalErrorAngle : DOUBLE (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; HeadingAccuracy : DOUBLE (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; AltitudeAccuracy : DOUBLE (+48, 8byte)  qpoke st,48,値 / qpeek(st,48)  ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; SpeedAccuracy : DOUBLE (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; HorizontalConfidence : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; HeadingConfidence : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; AltitudeConfidence : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; SpeedConfidence : DWORD (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; PositionDilutionOfPrecision : DOUBLE (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; HorizontalDilutionOfPrecision : DOUBLE (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; VerticalDilutionOfPrecision : DOUBLE (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; GeometricDilutionOfPrecision : DOUBLE (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; TimeDilutionOfPrecision : DOUBLE (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global GNSS_FIXDATA_ACCURACY_2
    #field int Size
    #field int Version
    #field double HorizontalAccuracy
    #field double HorizontalErrorMajorAxis
    #field double HorizontalErrorMinorAxis
    #field double HorizontalErrorAngle
    #field double HeadingAccuracy
    #field double AltitudeAccuracy
    #field double SpeedAccuracy
    #field int HorizontalConfidence
    #field int HeadingConfidence
    #field int AltitudeConfidence
    #field int SpeedConfidence
    #field double PositionDilutionOfPrecision
    #field double HorizontalDilutionOfPrecision
    #field double VerticalDilutionOfPrecision
    #field double GeometricDilutionOfPrecision
    #field double TimeDilutionOfPrecision
#endstruct

stdim st, GNSS_FIXDATA_ACCURACY_2        ; NSTRUCT 変数を確保
st->Size = 100
mes "Size=" + st->Size