GPSPIPE(1) GPSD Documentation GPSPIPE(1)

gpspipe - ابزاری برای اتصال به gpsd و دریافت جملات

gpspipe [OPTIONS] [server[:port[:device]]]

gpspipe -h

gpspipe -V

دستور gpspipe ابزاری برای اتصال به gpsd و ارسال جملات دریافت‌شده به خروجی استاندارد (stdout) است. این قابلیت برنامه را به عنوان یک پایپ (pipe) از gpsd به برنامه‌ای دیگر یا یک فایل بسیار کاربردی می‌سازد.

دستور gpspipe نیازی به مجوزهای ریشه (root) ندارد و می‌تواند به طور هم‌روند با ابزارهای دیگری که به gpsd محلی متصل هستند بدون ایجاد هیچ مشکلی اجرا شود.

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

برنامه gpspipe می‌تواند به صورت یک دیمن (daemon) نیز اجرا شود، اما برای نوشتن خروجی در یک فایل، استفاده از پرچم -o, --output الزامی است.

-?, -h, --help

چاپ پیام راهنمای استفاده و خروج.

-2, --split24

گزینه -2 پرچم split24 را روی گزارش‌های AIS تنظیم می‌کند.

-B, --nobuffer

عدم بافر کردن خروجی.

-d, --daemonize

اجرا به صورت یک دیمن.

-D LVL, --debug LVL

تنظیم سطح اشکال‌زدایی روی LVL.

-l, --sleep

پیش از تلاش برای اتصال به gpsd به مدت ده ثانیه مکث (sleep) می‌کند. این گزینه هنگام اجرا به صورت دیمن بسیار کاربردی است، زیرا پیش از اقدام برای برقراری اتصال، به gpsd زمان کافی جهت راه‌اندازی را می‌دهد.

-n COUNT, --count COUNT

خروج پس از ارسال COUNT پیام به خروجی.

-o FILE, --output FILE

باعث می‌شود داده‌های جمع‌آوری‌شده در فایل مشخص‌شده نوشته شوند. در صورتی که gpspipe به صورت دیمن اجرا شود، استفاده از این گزینه الزامی است.

-p, --profile

تخلیه اطلاعات پروفایل‌سازی در قالب JSON.

-P, --pps

تخلیه رانش PPS به صورت JSON را در حالت‌های NMEA و خام (raw) فعال می‌کند.

-r, --nmea

باعث ارسال جملات NMEA به خروجی می‌شود. این داده‌ها می‌توانند NMEA، شبه‌NMEA ساخته‌شده از داده‌های باینری، یا ترکیبی از هر دو باشند.

-R, --raw

باعث ارسال داده‌های فوق‌خام (داده‌های باینری gps) به خروجی می‌شود. این گزینه دقیقاً آنچه را که دستگاه فرستاده است به جلو هدایت می‌کند.

-s DEV, --serial DEV

باعث می‌شود داده‌های جمع‌آوری‌شده با تنظیمات 4800 8N1 در دستگاه سریال مشخص‌شده (DEV) نوشته شوند. بدین ترتیب gpspipe می‌تواند همراه با گزینه‌های -s, --serial و -r, --nmea برای شبیه‌سازی درگاه سریالی که مستقیماً به یک GPS متصل است و توسط gpsd مدیریت می‌شود به کار رود.

-S, --scaled

تنظیم پرچم مقیاس‌بندی‌شده (scaled). این تنها برای داده‌های AIS و SUBFRAME است. داده‌های مقیاس‌بندی‌شده به جای داده‌های خام در خروجی JSON قرار خواهند گرفت.

-t, --timestamp

افزودن برچسب زمانی UTC به هر جمله خروجی.

-T FMT, --timefmt FMT

تنظیم قالب برچسب زمانی. برای نگه‌دارنده‌های مکان در دسترس به strftime(3) مراجعه کنید. تعیین این گزینه مستلزم فعال بودن -t (--timestamp) است. مقدار پیش‌فرض "%F %T" می‌باشد.

-u, --usec

استفاده از برچسب زمانی با دقت میکروثانیه، که مستلزم -t (--timestamp) است. استفاده دو بار (-uu) خروجی را به صورت sec.usec نمایش می‌دهد.

-v, --spinner

نمایش یک نشانگر فعالیت چرخان در خروجی خطا (stderr). این قابلیت هنگامی که خروجی استاندارد به یک فایل یا لوله (pipe) هدایت شده باشد بسیار مفید است. به طور پیش‌فرض نشانگر با هر پیام نوشته‌شده یک گام به جلو می‌رود؛ تعیین بیش از یک‌بار -v یا --spinner، تعداد پیام‌های لازم برای چرخاندن نشانگر را دو برابر می‌کند.

-V, --version

چاپ نسخه برنامه و خروج.

-w, --json

باعث ارسال جملات بومی JSON مربوط به gpsd به خروجی می‌شود.

-x SEC, --seconds SEC

خروج پس از تأخیر SEC ثانیه‌ای.

-Z, --zulu

تنظیم قالب برچسب زمانی به iso8601: مستلزم -t است.

حداقل یکی از گزینه‌های -R، -r یا -w باید مشخص شود.

در صورت استفاده از گزینه -d، استفاده از -o الزامی است.

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

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

هنگامی که gpsd در حال اجرا است، این مثال صد جمله خام NMEA را به خروجی استاندارد ارسال کرده و سپس خارج می‌شود:

$ gpspipe -r -n 100

هنگامی که gpsd در حال اجرا است، این مثال حداکثر ۵ ثانیه برای دریافت یک پیام TPV منتظر می‌ماند، آن را در stdout چاپ کرده و سپس خارج می‌شود:

$ gpspipe -x 5 -w|sed -n '/TPV/{p;q}'

استفاده از gpspipe و socat جهت ارائه NMEA از gpsd محلی روی درگاه tcp با شماره 2948:

$ socat EXEC:'gpspipe -r' TCP-LISTEN:2948,reuseaddr,fork

افراد محتاط ممکن است ترجیح دهند socat با هویت کاربر 'nobody' اجرا شده و فقط اتصالات شبکه محلی را بپذیرد. استفاده از گزینه -B در gpspipe باعث کاهش تأخیر و لرزش (jitter) می‌شود. عبارت "su=nobody" به این معناست که این دستور باید با دسترسی ریشه (root) اجرا شود:

# socat EXEC:'gpspipe -rB' \
   TCP-LISTEN:2948,reuseaddr,fork,su=nobody,range=192.168.0.0/24

0

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

1

در صورت شکست.

gpsd(8), gps(1), gpsfake(1), socat(1).

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

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

Gary E. Miller

2025-11-04 GPSD, Version 3.27.5