ホーム › Devices.Geolocation › GNSS_FIXDATA_ACCURACY_2
GNSS_FIXDATA_ACCURACY_2
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Size | DWORD | 4 | +0 | +0 | この構造体のサイズをバイト単位で示すDWORD。 |
| Version | DWORD | 4 | +4 | +4 | 構造体のバージョンを示すDWORD。 |
| HorizontalAccuracy | DOUBLE | 8 | +8 | +8 | 水平方向の精度をメートル単位の倍精度浮動小数点で示す。 |
| HorizontalErrorMajorAxis | DOUBLE | 8 | +16 | +16 | 水平誤差楕円の長軸長をメートル単位の倍精度で示す。 |
| HorizontalErrorMinorAxis | DOUBLE | 8 | +24 | +24 | 水平誤差楕円の短軸長をメートル単位の倍精度で示す。 |
| HorizontalErrorAngle | DOUBLE | 8 | +32 | +32 | 水平誤差楕円の長軸の向きを度単位の倍精度で示す。 |
| HeadingAccuracy | DOUBLE | 8 | +40 | +40 | 方位の精度を度単位の倍精度で示す。 |
| AltitudeAccuracy | DOUBLE | 8 | +48 | +48 | 高度の精度をメートル単位の倍精度で示す。 |
| SpeedAccuracy | DOUBLE | 8 | +56 | +56 | 速度の精度をメートル毎秒の倍精度で示す。 |
| HorizontalConfidence | DWORD | 4 | +64 | +64 | 水平精度の信頼度をパーセントで示すDWORD。 |
| HeadingConfidence | DWORD | 4 | +68 | +68 | 方位精度の信頼度をパーセントで示すDWORD。 |
| AltitudeConfidence | DWORD | 4 | +72 | +72 | 高度精度の信頼度をパーセントで示すDWORD。 |
| SpeedConfidence | DWORD | 4 | +76 | +76 | 速度精度の信頼度をパーセントで示すDWORD。 |
| PositionDilutionOfPrecision | DOUBLE | 8 | +80 | +80 | 位置精度低下率(PDOP)を倍精度浮動小数点で示す。 |
| HorizontalDilutionOfPrecision | DOUBLE | 8 | +88 | +88 | 水平精度低下率(HDOP)を倍精度浮動小数点で示す。 |
| VerticalDilutionOfPrecision | DOUBLE | 8 | +96 | +96 | 垂直精度低下率(VDOP)を倍精度浮動小数点で示す。 |
| GeometricDilutionOfPrecision | DOUBLE | 8 | +104 | +104 | 幾何学的精度低下率(GDOP)を倍精度浮動小数点で示す。 |
| TimeDilutionOfPrecision | DOUBLE | 8 | +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 Structureimport 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: float64struct 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