GPSCTL(1) GPSD Documentation GPSCTL(1)

gpsctl - کنترل حالت‌های یک گیرنده GNSS

gpsctl [OPTIONS] [serial-port]

gpsctl -h

gpsctl -V

دستور gpsctl می‌تواند یک گیرنده GNSS دوحالته را بین حالت‌های NMEA و دودوییِ سازنده (vendor-binary) تغییر دهد. همچنین می‌تواند برای تنظیم نرخ باود (baud rate) دستگاه استفاده شود. نکته: همه دستگاه‌ها این قابلیت‌ها را ندارند.

اگر تنها یک گیرنده GNSS به رایانه شما متصل باشد و gpsd در حال اجرا باشد، نیازی به مشخص کردن دستگاه نیست؛ gpsctl کار خود را از طریق gpsd انجام می‌دهد و آن سرویس دستگاه را برای شما پیدا خواهد کرد.

هنگامی که gpsd در حال اجرا است، gpsctl می‌تواند توسط هر کاربری یا به عنوان ریشه (root) اجرا شود.

هنگامی که gpsd در حال اجرا نیست، مشخص کردن دستگاه الزامی است و برای داشتن دسترسی نوشتن به دستگاه، باید با دسترسی ریشه (root) اجرا شوید یا عضوی از گروه مالک دستگاه باشید. در بسیاری از مشتقات یونیکس، گروه مالک با نام 'dialout' شناخته می‌شود.

اجرا تحت sudo باعث از دست رفتن برخی از قابلیت‌ها خواهد شد.

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

-?, -h, --help

نمایش نحوه استفاده از برنامه و خروج.

-b, --binary

قرار دادن گیرنده GNSS در حالت بومی (دودویی یا binary).

-c RATE, --rate RATE

تغییر زمان چرخه (cycle time) گیرنده‌ها. واحد آن ثانیه است. توجه داشته باشید که بیشتر گیرنده‌ها زمان چرخه ثابت ۱ ثانیه دارند.

-D LVL, --debug LVL

تنظیم سطح پیام‌های اشکال‌زدایی (debug).

-e, --echo

تولید بسته از روی سایر آرگومان‌های مشخص‌شده و ارسال آن به خروجی استاندارد به جای دستگاه. این سوئیچ می‌تواند همراه با گزینه -t بدون مشخص کردن دستگاه استفاده شود. نکته: داده‌های بسته برای یک پیش‌نمونه دودویی به صورت خام خواهد بود و به هیچ وجه به ASCII تبدیل نمی‌شود.

-f, --force

اجبار دسترسی سطح پایین و مستقیم (نه از طریق دیمن).

-l, --list

نمایش جدولی که مشخص می‌کند کدام سوئیچ‌های گزینه‌ها می‌توانند روی کدام انواع دستگاه‌ها اعمال شوند، و سپس خروج.

-n, --nmea

قرار دادن گیرنده GNSS در حالت NMEA.

-r, --reset

راه‌اندازی مجدد (ریست) گیرنده GNSS. درگاه و نوع دستگاه باید مشخص شوند.

-R, --rmshm

حذف بخش حافظه اشتراکی GPSD که برای صدور SHM استفاده می‌شود. این گزینه معمولاً فقط برای توسعه‌دهندگان GPSD کاربرد دارد.

-s SPEED, --speed SPEED

تنظیم نرخ باود (baud rate) که گیرنده با آن بسته‌ها را ارسال می‌کند.

از گزینه -s با احتیاط استفاده کنید. در GPSهای USB و Bluetooth نیز ممکن است تنظیم حالت سریال با شکست مواجه شود؛ چه به این دلیل که تراشه مبدل سریال از حالت‌های غیر 8N1 پشتیبانی نمی‌کند، یا به این دلیل که سفت‌افزار دستگاه هنگام تغییر سرعت، تراشه مبدل سریال را به درستی با UART روی چیپ‌ست GPS همگام نمی‌سازد. این خرابی‌ها می‌توانند باعث هنگ کردن دستگاه شما شوند و احتمالاً نیاز به قطع و وصل تغذیه GPS یا (در موارد حاد) جدا کردن فیزیکی باتری پشتیبان NVRAM داشته باشند.

-t TYPE, --type TYPE

تحمیل نوع دستگاه.

-T TIMEOUT, --timeout TIMEOUT

تغییر زمان‌انتظار (timeout) نمونه‌برداری. مقدار پیش‌فرض ۸ ثانیه است که باید همیشه برای دریافت بسته شناسایی از دستگاهی که با نرخ معمول ۱ بار در ثانیه ارسال می‌کند، کافی باشد.

-V, --version

نمایش نسخه برنامه و خروج.

-x STR, --ship STR

ارسال رشته کنترلی مشخص‌شده به گیرنده GNSS. نویسه‌های گریز اسلش وارونه به سبک C در رشته رمزگشایی می‌شوند. از \xNN برای هگزادسیمال استفاده کنید، \e با ESC جایگزین خواهد شد.
In normal mode, through _gpsd_, the decoded string is passed through,
unchanged top _gpsd_ which in turns sends it to the receiver.  Headers,
checksums, and suffffices must be provided.
In low-level, (direct) mode *gpsctl* will provide packet headers and
trailers and checksum as appropriate for binary packet types, and
whatever checksum and trailer is required for text packet types.
You must include the leading $ for NMEA packets.
When sending to a UBX, Allystar or CASIC device, the first two bytes
of the string supplied will become the message class and type, and the
remainder the payload.
When sending to a Navcom NCT or Trimble TSIP device, the first byte is
interpreted as the command ID and the rest as payload.
When sending to a Zodiac device, the first two bytes are used as a
message ID of type little-endian short, and the remainder as payload
in byte pairs interpreted as little-endian short.
For all other supported binary GPSes (notably including SiRF) the
string is taken as the entire message payload and wrapped with
appropriate header, trailer and checksum bytes.

آرگومان گزینه تحمیل، -t، باید رشته‌ای باشد که دقیقاً در یکی از نام‌های درایورهای شناخته‌شده موجود باشد؛ برای دیدن فهرست، دستور gpsctl -l را اجرا کنید.

تحمیل نوع دستگاه بسته به اینکه این ابزار از طریق دیمن عمل می‌کند یا خیر، رفتاری تا حدی متفاوت دارد. در حالت سطح بالا، اگر دستگاهی که دیمن برای شما انتخاب می‌کند با درایوری که مشخص کرده‌اید مطابقت نداشته باشد، gpsctl با یک هشدار خارج می‌شود. (این امر ممکن است در اسکریپت‌ها مفید باشد.)

در حالت سطح پایین، اگر دستگاه به عنوان Generic NMEA شناسایی شود، درایور انتخاب‌شده به جای آن استفاده می‌شود. این قابلیت زمانی مفید خواهد بود که یک دستگاه GPS با نوع مشخص دارید که در حالت NMEA قرار دارد و به کاوش‌ها (probes) پاسخ نمی‌دهد. (این گزینه در ابتدا برای ارتباط با تراشه‌های SiRFStar I پیاده‌سازی شده بود که به کاوش شناسه معمول SiRF پاسخ نمی‌دهند.)

اگر هیچ گزینه‌ای داده نشود، برنامه پیامی مبنی بر شناسایی نوع GPS دستگاه انتخاب‌شده را نمایش داده و خارج می‌شود.

عملیات راه‌اندازی مجدد (-r) باید به صورت مستقل اجرا شود؛ سایر گزینه‌ها می‌توانند با یکدیگر ترکیب شوند. دستور gpsctl چندین گزینه را به این ترتیب اجرا خواهد کرد: ابتدا تغییر حالت (-b یا -n)، سپس تغییر سرعت (-s)، سوم نرخ چرخه (-c) و در آخر رشته‌های کنترلی (-x).

با تنظیم متغیر محیطی GPSD_SHM_KEY، می‌توانید مقدار کلیدی را که برای تعیین بخش حافظه اشتراکیِ حذف‌شده با گزینه -R استفاده می‌شود، کنترل کنید. این ویژگی عمدتاً هنگام جداسازی نمونه‌های آزمایشی gpsd از نمونه‌های عملیاتی کاربرد خواهد داشت.

gpsctl /dev/ttyUSB0

تلاش برای شناسایی دستگاه روی درگاه سریال یواس‌بی 0 (USB serial device 0). پس از مدت‌زمان پیش‌فرض منقضی می‌شود. افزودن -f دسترسی سطح پایین را تحمیل کرده و از پیام خطای معمول در زمانی که این ابزار نمی‌تواند یک GPSD را برای کار پیدا کند، جلوگیری می‌کند.

gpsctl -f -n -s 9600 /dev/ttyUSB0

استفاده از عملیات سطح پایین (بدون عبور از یک نمونه gpsd) برای بردن یک GPS به حالت NMEA در سرعت 9600bps. این ابزار نوع GPS را خودش شناسایی خواهد کرد.

gpsctl -x '\xb5\x62\x0a\x04\x00\x00\x0e\x34'

ارسال یک درخواست برای UBX-MON-VER به یک گیرنده GNSS متصل به gpsd.

دستگاه‌های SiRF GPS تنها از طریق موفقیت‌آمیز بودن تلاش برای تغییر حالت آن‌ها به حالت دودویی SiRF قابل شناسایی هستند. بنابراین، فرآیند کاوش یکی از این دستگاه‌ها که در حالت NMEA کار می‌کند، رفتار آن را تغییر خواهد داد.

تغییر نرخ باود و حالت کاری در حالت مستقیم عمل می‌کند، اما در حالت کلاینت قابل اطمینان نیست. این مورد در نگارش‌های آینده اصلاح خواهد شد.

0

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

1

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

gpsd(8), gpsdctl(1), gps(1), ubxtool(1), zerk(1)

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

This file is Copyright by the GPSD project
SPDX-License-Identifier: BSD-2-clause

Eric S. Raymond

2025-11-04 GPSD, Version 3.27.5