UBXTOOL(1) GPSD Documentation UBXTOOL(1)

ubxtool - ابزار ارتباط و پیکربندی ماژول‌های u-blox GPS/GNSS

ubxtool [OPTIONS] [server[:port[:device]]]

ubxtool -h

ubxtool -V

دستور ubxtool ابزاری برای گیرنده‌های GPS شرکت u-blox است. اگر گیرنده GPS از نوع u-blox ندارید، نیازی به خواندن ادامه این راهنما نیست.

این ابزار در سطحی بسیار پایین با گیرنده u-blox GPS شما کار می‌کند. برای درک و استفاده از ubxtool ابتدا باید با سخت‌افزار GPS خود و مستندات پروتکل باینری u-blox آشنایی داشته باشید. پروتکل u-blox بسته به مدل GPS و نسخه میان‌افزار (firmware) تفاوت‌های چشمگیری دارد. همیشه از مستندات متناسب با مدل و نگارش میان‌افزار دستگاه خود استفاده کنید.

برنامه ubxtool می‌تواند پیام‌های باینری رایج u-blox را رمزگشایی کند، وضعیت GPS را استعلام نماید، ویژگی‌های مختلف گیرنده را فعال یا غیرفعال سازد، و دستورات دلخواه کاربر را به GPS ارسال کند. همچنین قادر است پیام‌های باینری را از یک فایل بخواند، و مستقیماً از طریق درگاه سریال یا از طریق سرویس در حال اجرای gpsd بخواند و بنویسد.

دستور ubxtool نیازی به دسترسی‌های ریشه (root) ندارد، مگر احتمالاً برای دسترسی مستقیم به درگاه سریال در حالت دسترسی مستقیم (-f FILE). اجرای آن با کاربر root بدون مشکل است، اما اجرا با دستور sudo ممکن است باعث از دست رفتن برخی قابلیت‌ها شود.

این برنامه گزینه‌های زیر را می‌پذیرد:

-?, -h, --help

نمایش پیام راهنمای نحوه استفاده و خروج. همراه با -v 2 برای مشاهده تمام مقادیر فعال/غیرفعال‌سازی و پیش‌تنظیم‌ها، و همراه با -v 3 برای مشاهده موارد پیکربندی اضافی (فهرست طولانی).

-c COMMAND, --command COMMAND

ارسال یک دستور به GPS. یک پارامتر COMMAND به صورت فهرستی از بایت‌های هگزادسیمال جداشده با کاما دریافت می‌کند که کلاس، شناسه (ID) و هرگونه بار داده (payload) لازم را مشخص می‌کند. سرآیند، طول داده و چکسام (checksum) به طور خودکار اضافه می‌شوند.

--device DEVICE

دستگاه روی gpsd برای اتصال. پیش‌فرض همه دستگاه‌ها است.

-d OPTION, --disable OPTION

غیرفعال‌سازی یک گزینه در GPS. یک پارامتر OPTION برای غیرفعال‌سازی دریافت می‌کند. برای مشاهده تمام مقادیر ممکن دستور "ubxtool -h -v 2"; را اجرا کنید. برخی از مقادیر ممکن عبارتند از:

BEIDOU

غیرفعال‌سازی استفاده از منظومه ماهواره‌ای BeiDou (COMPASS).

BINARY

غیرفعال‌سازی ارسال پیام‌های پایه باینری.

ECEF

غیرفعال‌سازی ارسال پیام‌های باینری ECEF.

GALILEO

غیرفعال‌سازی استفاده از منظومه ماهواره‌ای گالیله (GALILEO).

GLONASS

غیرفعال‌سازی استفاده از منظومه ماهواره‌ای گلوناس (GLONASS).

GPS

غیرفعال‌سازی استفاده از منظومه‌های ماهواره‌ای GPS و QZSS.

NED

غیرفعال‌سازی ارسال پیام‌های باینری NED شامل UBX-NAV-VELNED و UBX-NAV-RELPOSNED.

NMEA

غیرفعال‌سازی ارسال پیام‌های پایه NMEA شامل GBS، GGA، GSA، GGL، GST، GSV، RMC، VTG و ZDA.

PPS

غیرفعال‌سازی TIMEPULSE 0.

RAWX

غیرفعال‌سازی ارسال پیام‌های UBX-RXM-RAWX.

SBAS

غیرفعال‌سازی استفاده از منظومه ماهواره‌ای SBAS.

SFRBX

غیرفعال‌سازی استفاده از پیام‌های SFRBX.

SURVEYIN

غیرفعال‌سازی حالت نقشه‌برداری (survey-in) با TMODE2.

TP

غیرفعال‌سازی ارسال UBX-TIM-TP.

-e OPTION, --enable OPTION

فعال‌سازی یک گزینه در GPS. یک پارامتر OPTION را برای فعال‌سازی می‌پذیرد. این گزینه مقادیر مشابه -d را می‌پذیرد با این تفاوت که عملکرد آن فعال‌سازی است.

-f FILE, --file FILE

اتصال مستقیم به یک فایل یا دستگاه. یک پارامتر FILE که نام فایل یا دستگاه مدنظر است را می‌پذیرد. فایل‌ها به صورت فقط‌خواندنی باز می‌شوند. دستگاه‌های کاراکتری به صورت خواندنی/نوشتنی باز می‌شوند مگر آنکه پارامتر -r داده شده باشد. نیازمند ماژول pyserial است.

-g ITEM,LAYER,POSITION,END, --getitem ITEM,LAYER,POSITION,END

دریافت مقدار ITEM از لایه LAYER، شروع از POSITION تا حداکثر END جفت کلید/مقدار (UBX-CFG-VALGET). تمام پارامترهای پس از ITEM اختیاری و به صورت ده‌دهی هستند. اگر LAYER مشخص نشود، لایه‌های ۰، ۱، ۲ و ۷ همگی درخواست داده می‌شوند. بخش «آیتم‌های پیکربندی» را ببینید.

--host HOST

اتصال به gpsd روی میزبان HOST (سرور). پیش‌فرض localhost است.

-i port, --portid port

مشخص کردن شناسه درگاه (رابط کاربری) برای دستورات مرتبط با درگاه نظیر UBX_CFG-PRT.

-p PRESET, --preset PRESET

ارسال یک دستور پیش‌تنظیم به GPS. معمولاً یک پارامتر PRESET شامل نام دستور ارسالی دریافت می‌کند. برخی پیش‌تنظیم‌ها مانند LOG-FINDTIME پارامترهای اضافی جداشده با کاما می‌پذیرند. می‌توان از چندین گزینه -p به صورت همزمان استفاده کرد.

در اینجا فقط پیش‌تنظیم‌های متداول آورده شده‌اند. برای مشاهده فهرست کامل به همراه پارامترهای اختیاری، دستور "ubxtool -h -v 2"; را اجرا کنید.

COLDBOOT

راه‌اندازی سرد (Coldboot) گیرنده GPS با دستور UBX-CFG-RST.

HOTBOOT

راه‌اندازی گرم (Hotboot) گیرنده GPS با دستور UBX-CFG-RST.

MODEL,model

پیکربندی مدل سکوی پویا (Dynamic Platform Model) به مقدار model (دستور UBX-CFG-NAV5). مقدار model عدد ده‌دهی حالت مورد نظر است.

PMS

تنظیمات مدیریت مصرف توان (UBX-CFG-PMS). به صورت "PMS,pow" که pow مقدار powerSetupValue است.

RATE

تنظیم نرخ اندازه‌گیری و ناوبری (UBX-CFG-RATE). به صورت "RATE,meas,nav" که meas نرخ اندازه‌گیری بر حسب میلی‌ثانیه و nav نرخ ناوبری بر حسب چرخه با پیش‌فرض ۱ است.

RESET

بازنشانی پیکربندی به مقادیر پیش‌فرض (UBX-CFG-CFG).

SAVE

ذخیره پیکربندی فعلی (UBX-CFG-CFG).

MON-RESETODO

بازنشانی مسافت‌سنج (odometer) با دستور UBX-MON-RESETODO.

MON-VER

استعلام نسخه و مشخصات GPS با دستور UBX-MON-VER.

WARMBOOT

راه‌اندازی ولرم (Warmboot) گیرنده GPS با دستور UBX-CFG-RST.

بیشتر پارامترهای PRESET دستورات ساده استعلام هستند. این دستورات صرفاً از GPS می‌خواهند که با پیام مربوطه پاسخ دهد. به عنوان مثال دستور "ubxtool -p CFG-GNSS" از GPS می‌خواهد با پیام UBX-CFG-GNSS که پیکربندی فعلی GNSS را شرح می‌دهد پاسخ دهد. برای افزایش جزئیات خروجی از گزینه‌های "-v 2"; یا "-v 3"; استفاده کنید.

--port PORT

استفاده از درگاه PORT برای اتصال به gpsd. مقدار پیش‌فرض ۲۹۴۷ است.

-P protver, --protver protver

تعیین نسخه پروتکل برای ارسال دستورات. حداقل ۶ (Antaris 4). از "ubxtool -p MON-VER" برای مشاهده نسخه پشتیبانی‌شده توسط گیرنده استفاده کنید. بسیاری از گیرنده‌های جدیدتر u-blox در صورت عدم تنظیم صحیح این مقدار، در سکوت یا به شکل غیرعادی با شکست مواجه می‌شوند. پیش‌فرض ۱۰ (u-blox 5) است.

-r, -readonly

حالت فقط‌خواندنی. هیچ داده‌ای به GPS ارسال نمی‌شود.

-R RAW, --rawfile RAW

ذخیره تمام داده‌های خام سریال دریافت شده از GPS در فایل RAW.

-s SPEED, --inspeed SPEED

تنظیم سرعت درگاه سریال محلی به SPEED بیت بر ثانیه (bps). مقدار پیش‌فرض ۹۶۰۰ است.

-S SPEED, --setspeed SPEED

تنظیم سرعت درگاه سریال گیرنده GPS به SPEED بیت بر ثانیه (bps).

-t, --timestamp

درج برچسب زمانی روی پیام‌های رمزگشایی‌شده به صورت ثانیه‌های سپری‌شده از مبدأ زمان (epoch). با دو بار استفاده از این گزینه، زمان UTC نیز نمایش داده می‌شود.

-v VERBOSITY, --verbosity VERBOSITY

تعیین سطح جزئیات به مقدار VERBOSITY. سطح جزئیات می‌تواند از ۰ (بسیار کم)، ۲ (رمزگشایی پیام‌ها)، تا ۴ (بسیار پرجزئیات) باشد. پیش‌فرض ۱ است.

-V, --version

چاپ نسخه ubxtool و خروج.

-w WAIT, --wait WAIT

انتظار به مدت WAIT ثانیه پیش از خروج. برای انتظار نامحدود مقدار ۰ را وارد کنید. پیش‌فرض ۲ ثانیه است.

-x ITEM,LAYERS, --delitem ITEM,LAYERS

حذف مقدار ITEM از لایه‌های LAYERS. نگاشت بیتی LAYERS اختیاری است. به طور پیش‌فرض، حذف در هر دو لایه BBR و FLASH در گیرنده انجام می‌شود (UBX_CFG-VALDEL) و مقدار پیش‌فرض گیرنده برای آن آیتم بازیابی می‌گردد. بخش «آیتم‌های پیکربندی» را ببینید.

-z ITEM,VAL,LAYERS, --setitem ITEM,VAL,LAYERS

تنظیم مقدار ITEM به VAL در لایه‌های LAYERS در GPS (دستور UBX-CFG-VALSET). مقادیر VAL و ماسک بیتی LAYERS به صورت ده‌دهی هستند. مقدار ",LAYERS" اختیاری است. لایه‌های پیش‌فرض RAM و FLASH هستند. بخش «آیتم‌های پیکربندی» را ببینید.

به طور پیش‌فرض، کلاینت‌ها داده‌ها را از دیمن محلی gpsd که روی localhost و درگاه پیش‌فرض ۲۹۴۷ اجرا می‌شود جمع‌آوری می‌کنند. آرگومان اختیاری برای هر کلاینت می‌تواند این رفتار را تغییر دهد: [server[:port[:device]]]

برای توضیحات و مثال‌های بیشتر، بخش ARGUMENTS در صفحه راهنمای gps(1) را ببینید.

پیکربندی GPSهای u-blox با پیام‌های پیکربندی سنتی با مشکلات زیادی همراه است. بسیاری از پیام‌های پیکربندی به روش‌های عجیبی با یکدیگر تداخل دارند. کاری به سادگی تغییر سرعت درگاه سریال نیازمند این است که پیکربندی فعلی را با استفاده از UBX-CFG-PRT برای درگاه مربوطه بخوانید، تغییر را با آن ادغام کنید، و سپس پیام تغییریافته UBX-CFG-PRT را بازنویسی کنید؛ یا صرفاً پیکربندی فعلی را حدس زده و همه چیز را بازنویسی کنید.

سری u-blox 9 با نسخه پروتکل +27 سعی کرده است (هرچند نه به طور کامل) این مشکل را با «آیتم‌های پیکربندی» (Configuration Items) برطرف کند. اگر GPS شما از نسخه پروتکل ۲۷ یا بالاتر پشتیبانی نمی‌کند، این بخش شامل دستگاه شما نمی‌شود.

به بیشتر متغیرهای پیکربندی در GPS یک شناسه کلید (Key ID) ۳۲ بیتی اختصاص داده شده است. هر کلید به یک مقدار خاص ارجاع می‌دهد. یک گیرنده معمولی ممکن است بیش از ۱۱۰۰ شناسه کلید داشته باشد. به هر Key ID یک نام کلید (Key Name) اختصاص یافته است. بیشتر نام‌های کلیدها توسط u-blox مستندسازی شده و توسط ubxtool پشتیبانی می‌شوند. برای مشاهده تمام نام‌های کلیدهای شناخته‌شده توسط ubxtool دستور "ubxtool -h -v 3"; را اجرا کنید.

برای دریافت مقدار مرتبط با یک آیتم، از "-g ITEM"; استفاده کنید.

برای بازنشانی مقدار یک آیتم به مقدار پیش‌فرض آن، از "-x ITEM"; استفاده کنید.

برای تنظیم مقدار یک ITEM، از "-z ITEM,VAL" استفاده کنید.

اگر می‌خواهید یک ITEM را فقط در یک لایه تنظیم کنید، از "-z ITEM,VAL,LAYER" استفاده کنید.

برای نمونه‌های عینی، بخش «مثال‌ها» را ببینید.

تمامی مثال‌ها فرض می‌کنند که متغیر محیطی UBXOPTS با نسخه پروتکل گیرنده شما تنظیم شده است. حتماً مقدار "-P 18"; را با نسخه پروتکل صحیح خود جایگزین کنید.

export UBXOPTS="-P 18"

دریافت و ذخیره پیکربندی و وضعیت گیرنده GNSS. گزینه "-w 4"; برای فراهم کردن زمان کافی جهت تکمیل عملیات است.

ubxtool -p CONFIG -p STATUS -w 4 -v 2

رمزگشایی فایل لاگ خام:

ubxtool -r -f ublox-neo-m8n.log

تغییر سرعت درگاه GPS دستگاه روی /dev/ttyAMA0 به ۲۳۰۴۰۰ بیت بر ثانیه:

ubxtool -S 230400 -f /dev/ttyAMA0

مشاهده کل چرخه بازنشانی GPS، شامل پیام‌های $GPTXT:

ubxtool -p COLDBOOT -w 20 -v 2

استعلام منظومه‌های فعال:

ubxtool -p CFG-GNSS

دریافت داده‌های gpsd از یک سرور دوردست با نام x.example.com:

ubxtool -w 5 x.example.com

برخی از دستورات "-p" و "--preset" می‌توانند چندین گزینه دریافت کنند. یکی از این موارد "--preset CFG-TP5" است.

خلاصه ساختار:

-p CFG-TP5,[tpIdx = 0],[antCableDelay = 2],[rfGroupDelay = 0],[freqPeriod = 1000000],[freqPeriodLock = 1000000],[pulseLenRatio = 0],[pulseLenRatioLock = 100000],[userConfigDelay = 0],[flags = 0x77]

یک پارامتر مکانی را خالی بگذارید تا مقدار پیش‌فرض آن اعمال شود.

برای تنظیم دوره پالس روی ۰٫۲۵ ثانیه و طول آن روی ۰٫۱ ثانیه:

$ ubxtool -p CFG-TP5,,,,250000,250000,100000,100000

برای تنظیم دوره پالس روی ۰٫۱ ثانیه و طول آن روی ۰٫۱ ثانیه در صورت قفل بودن:

$ ubxtool -p CFG-TP5,,,,,100000,,50000

مثال‌های زیر نیازمند گیرنده‌ای هستند که از پروتکل ۲۷ یا بالاتر پشتیبانی کند. حتماً ابتدا نسخه پروتکل خود را مشخص کنید:

export UBXOPTS="-P 32"

برای بررسی مدل دینامیک فعلی، تغییر آن به ۶ (AIR1، هوابرد با شتاب کمتر از 1g)، بازگشت به تنظیمات پیش‌فرض و تأیید بازگشت تنظیمات:

$ ubxtool -g CFG-NAVSPG-DYNMODEL
[...]
UBX-CFG-VALGET:
 version 1 layer 0 reserved 0,0
  layers (ram)
    item CFG-NAVSPG-DYNMODEL/0x20110021 val 2
[...]
$ ubxtool -z CFG-NAVSPG-DYNMODEL,6
[...]
UBX-ACK-ACK:
 ACK to Class x6 (CFG) ID x8a (VALSET)
[...]
$ ubxtool -g CFG-NAVSPG-DYNMODEL
[...]
UBX-CFG-VALGET:
 version 1 layer 0 reserved 0,0
  layers (ram)
    item CFG-NAVSPG-DYNMODEL/0x20110021 val 6
[...]
$ ubxtool -x CFG-NAVSPG-DYNMODEL
[...]
UBX-ACK-ACK:
 ACK to Class x6 (CFG) ID x8c (VALDEL)
[...]
$ ubxtool -g CFG-NAVSPG-DYNMODEL
[...]
UBX-CFG-VALGET:
 version 1 layer 0 reserved 0,0
  layers (ram)
    item CFG-NAVSPG-DYNMODEL/0x20110021 val 6

توجه کنید که DYNMODEL فعلی روی ۶ (AIR1) باقی ماند. گزینه "-x" تنها روی تنظیمات ذخیره‌شده تأثیر می‌گذارد، نه تنظیمات جاری. برای تغییر تنظیم جاری باید آن را با "-z" تعیین کنید.

دریافت تمام آیتم‌های پیکربندی یک گروه به صورت تک‌تک بسیار زمان‌بر و دشوار است. گزینه VAL-GET به شما امکان می‌دهد شماره آیتم را با نویسه عام (wildcard) تعیین کرده و تمام آیتم‌های یک گروه را استخراج کنید. برای دریافت تمام آیتم‌های CFG-TP در حافظه ram (آیتم‌های فعال فعلی)، می‌توانید چنین عمل کنید:

$ ubxtool -g CFG-TP,0
[...]
UBX-CFG-VALGET:
 version 1 layer 0 position 0
  layers (ram)
    item CFG-TP-TP1_ENA/0x10050007 val 1
    item CFG-TP-SYNC_GNSS_TP1/0x10050008 val 1
    item CFG-TP-USE_LOCKED_TP1/0x10050009 val 1
[...]

افرادی که می‌خواهند تمام آیتم‌های پیکربندی را استخراج کنند می‌توانند گروه را به صورت عام مشخص کنند. استخراج بیش از ۱۰۰۰ آیتم به صورت بسته‌های ۶۴تایی همچنان ممکن است زمان‌بر باشد. پارامتر -g اختیاری به شما اجازه می‌دهد موقعیت شروع و پایان را مشخص کنید. برای دریافت تمام آیتم‌های شناخته‌شده و ناشناخته پشتیبانی‌شده توسط گیرنده که در حال حاضر در ram هستند:

$ ubxtool -g CFG,0,0,1200 | fgrep "item CFG-"
    item CFG-1-1/0x10010001 val 0
    item CFG-1-1/0x10010101 val 0
    item CFG-4-1/0x10040001 val 1
    item CFG-4-2/0x10040002 val 0
    item CFG-4-3/0x10040003 val 0
    item CFG-4-4/0x10040004 val 0
    item CFG-4-9/0x10040009 val 0
    item CFG-TP-TP1_ENA/0x10050007 val 1
    item CFG-TP-SYNC_GNSS_TP1/0x10050008 val 1
[...]

تغییر CFG,0,0,1200 به CFG,7,0,1200 در عوض مقادیر پیش‌فرض پیکربندی را از لایه پیش‌فرض (۷) استخراج می‌کند.

گزینه‌ها می‌توانند در متغیر محیطی UBXOPTS قرار گیرند. متغیر UBXOPTS پیش از گزینه‌های خط فرمان پردازش می‌شود.

0

در صورت موفقیت.

1

در صورت بروز خطا.

ابزار ubxtool مطابق با مستندات رسمی u-blox برای پروتکل باینری u-blox نوشته شده است. https://www.u-blox.com/en/product-resources

gpsd(8), gpsctl(1), gps(1)

تارنمای پروژه: https://gpsd.io

حق کپی‌رایت این سند متعلق به پروژه GPSD سال 2013 است.
شناسه پروانه: SPDX-License-Identifier: BSD-2-clause

Gary E. Miller

2025-11-04 GPSD, Version 3.27.5