'\" t .\" Title: gpscsv .\" Author: Gary E. Miller .\" Generator: Asciidoctor 2.0.26 .\" Date: 2025-11-04 .\" Manual: GPSD Documentation .\" Source: GPSD, Version 3.27.5 .\" Language: Persian .\" .TH "GPSCSV" "1" "2025-11-04" "GPSD, Version 3.27.5" "GPSD Documentation" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" gpscsv \- استخراج و تبدیل خروجی JSON از gpsd در قالب CSV .SH "خلاصه دستور (SYNOPSIS)" .sp \fBgpscsv\fP [OPTIONS] [host[:port[:device]]] .sp \fBgpscsv\fP \-h .sp \fBgpscsv\fP \-V .SH "توضیحات (DESCRIPTION)" .sp برنامه \fBgpscsv\fP یک ابزار پایتون ساده برای خواندن جریان داده‌های JSON از \fBgpsd\fP و ارائه آن‌ها در قالب مقادیر جداشده با کاما (CSV) است. این برنامه ورودی را از یک \fBgpsd\fP مشخص دریافت کرده و به خروجی استاندارد گزارش می‌دهد. برنامه تا زمانی که \fBgpsd\fP متوقف شود، تعداد «\fB\-n COUNT\fP» پیام پردازش شوند، «\fB\-x SECONDS\fP» ثانیه سپری شود، یا با ^C یا روش‌های دیگر متوقف گردد، به کار خود ادامه می‌دهد. .sp ابزار \fBgpscsv\fP تنها می‌تواند داده‌هایی را جمع‌آوری کند که \fBgpsd\fP شما از قبل ارسال می‌کند. برای مشاهده کلاس‌های پیام‌های JSON در حال ارسال، از \fBgpspipe\fP استفاده کنید. .sp یکی از کاربردهای مناسب \fBgpscsv\fP، ایجاد فایل‌های CSV جهت استفاده در برنامه gnuplot است. .sp ابزار \fBgpscsv\fP نیازی به دسترسی ریشه (root) ندارد، اما با دسترسی ریشه نیز بدون مشکل اجرا می‌شود. .SH "گزینه‌ها (OPTIONS)" .sp این برنامه گزینه‌های زیر را می‌پذیرد: .sp \fB\-?\fP, \fB\-h\fP, \fB\-\-help\fP .RS 4 نمایش اطلاعات راهنما و خروج. .RE .sp \fB\-c MCLASS\fP, \fB\-\-class MCLASS\fP .RS 4 انتخاب پیام‌های کلاس JSON از نوع MCLASS. این گزینه کلاس پیش‌فرض TPV را بازنویسی می‌کند. برای اطلاعات بیشتر بخش CLASSES را در زیر ببینید. .RE .sp \fB\-\-cvt\-isotime\fP .RS 4 تبدیل فیلدهای با نام «time» از قالب زمانی ISO به زمان UNIX. .RE .sp \fB\-D LVL\fP, \fB\-\-debug LVL\fP .RS 4 تنظیم سطح اشکال‌زدایی روی LVL. مقدار پیش‌فرض 0 است. آرگومان‌های بزرگ‌تر از 0 خروجی اشکال‌زدایی بیشتری تولید می‌کنند. .RE .sp \fB\-\-device DEVICE\fP .RS 4 مشخص کردن DEVICE متصل در \fBgpsd\fP برای اتصال به آن. پیش‌فرض روی همه دستگاه‌ها است. .RE .sp \fB\-f FIELDS\fP, \fB\-fields FIELDS\fP .RS 4 فیلدهای (FIELDS) پیام JSON جهت استخراج در خروجی. برای استخراج تمام فیلدهایی که در ابتدا دیده می‌شوند، مقدار FIELDS را خالی (\*(Aq\*(Aq) بگذارید. مقدار پیش‌فرض بسته به CLASS متغیر است. .RE .sp \fB\-\-file FILE\fP .RS 4 خواندن JSON از FILE به جای خواندن از \fBgpsd\fP. .RE .sp \fB\-\-header HEADER\fP .RS 4 تنظیم شیوه سربرگ به HEADER. مقدار 0 برای بدون سربرگ، 1 برای درج فیلدها به عنوان سربرگ، و 2 برای ارسال فیلدها به عنوان کامنت (\*(Aq#\*(Aq). مقدار پیش‌فرض 1 است. .RE .sp \fB\-\-host HOST\fP .RS 4 اتصال به \fBgpsd\fP روی میزبان HOST. مقدار پیش‌فرض localhost است. .RE .sp \fB\-n COUNT\fP, \fB\-\-count COUNT\fP .RS 4 خروج پس از ارائه COUNT رکورد در خروجی. مقدار COUNT را برای غیرفعال کردن روی 0 بگذارید. پیش‌فرض 0 است. .RE .sp \fB\-\-port PORT\fP .RS 4 استفاده از PORT برای اتصال به \fBgpsd\fP. پیش‌فرض 2947 است. .RE .sp \fB\-\-separator SEPARATOR\fP .RS 4 استفاده از SEPARATOR به عنوان جداکننده فیلدها. جداکننده پیش‌فرض ویرگول یا کاما (\*(Aq,\*(Aq) است. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 نمایش نسخه \fBgpscsv\fP و خروج. .RE .sp \fB\-x SECONDS\fP, \fB\-\-seconds SECONDS\fP .RS 4 خروج پس از سپری شدن SECONDS ثانیه. برای غیرفعال کردن مقدار SECONDS را روی 0 قرار دهید. پیش‌فرض 0 است. .RE .sp همه گزینه‌های تکی فوق را می‌توان چندین بار مشخص کرد، اما تنها آخرین مورد مشخص‌شده اعمال خواهد شد..SH "کلاس‌ها (CLASSES)" .sp برخی از کلاس‌های پیام JSON در \fBgpsd\fP شامل زیرکلاس‌ها هستند. \fBgpscsv\fP امکان دسترسی مستقیم به آن‌ها را با استفاده از یک فراکلاس (MCLASS) فراهم می‌کند. .TS allbox tab(:); ltB ltB ltB. T{ .sp MCLASS T}:T{ .sp کلاس T}:T{ .sp توضیحات T} .T& lt lt lt. T{ .sp ALMANAC T}:T{ .sp SUBFRAME T}:T{ .sp ALMANAC از SUBFRAME JSON T} T{ .sp HEALTH T}:T{ .sp SUBFRAME T}:T{ .sp HEALTH از SUBFRAME JSON T} T{ .sp HEALTH2 T}:T{ .sp SUBFRAME T}:T{ .sp HEALTH2 از SUBFRAME JSON T} T{ .sp IONO T}:T{ .sp SUBFRAME T}:T{ .sp IONO از SUBFRAME JSON T} T{ .sp NMCT T}:T{ .sp SUBFRAME T}:T{ .sp NMCT از SUBFRAME JSON T} T{ .sp SUBFRAME1 T}:T{ .sp SUBFRAME T}:T{ .sp SUBFRAME1 (Ephemeris 1) از SUBFRAME JSON T} T{ .sp SUBFRAME2 T}:T{ .sp SUBFRAME T}:T{ .sp SUBFRAME2 (Ephemeris 2) از SUBFRAME JSON T} T{ .sp SUBFRAME3 T}:T{ .sp SUBFRAME T}:T{ .sp SUBFRAME3 (Ephemeris 3) از SUBFRAME JSON T} T{ .sp SAT T}:T{ .sp SKY T}:T{ .sp ماهواره‌های مجزا از SKY T} T{ .sp SKY T}:T{ .sp SKY T}:T{ .sp بخش‌های اصلی SKY JSON T} T{ .sp TPV T}:T{ .sp TPV T}:T{ .sp بخش‌های اصلی TPV JSON T} .TE .sp.SH "آرگومان‌ها (ARGUMENTS)" .sp به‌طور پیش‌فرض، کلاینت‌ها داده‌ها را از دیمن محلی \fBgpsd\fP در حال اجرا روی localhost و با استفاده از پورت پیش‌فرض ۲۹۴۷ مربوط به GPSD جمع‌آوری می‌کنند. آرگومان اختیاری هر کلاینت می‌تواند این رفتار را بازنویسی کند: \fB[server[:port[:device]]]\fP .sp برای توضیحات بیشتر و مثال‌ها، بخش \fBARGUMENTS\fP را در صفحهٔ راهنمای \fBgps\fP(1) ببینید. .SH "مثال‌ها (EXAMPLES)" .sp چند مثال پایه‌ای و مستقل: .sp دریافت سه چرخه از داده‌های TPV: .sp .if n .RS 4 .nf .fam C $ gpscsv \-c TPV \-n 3 time,lat,lon,altHAE 2021\-07\-28T22:38:37.000Z,44.0688638,\-121.3140643,1108.223 2021\-07\-26T22:38:37.000Z,44.068863833,\-121.314064333,1108.3 2021\-07\-28T22:38:38.000Z,44.0688637,\-121.314065,1108.363 .fam .fi .if n .RE .sp دریافت یک مجموعه از داده‌های ماهواره‌ای: .sp .if n .RS 4 .nf .fam C $ gpscsv \-c SAT \-n 1 time,gnssid,svid,PRN,az,el,ss,used,health 2021\-07\-28T22:37:46.000Z,0,8,8,311.0,28.0,33.0,True,1 2021\-07\-28T22:37:46.000Z,0,10,10,290.0,74.0,50.0,True,1 2021\-07\-28T22:37:46.000Z,0,15,15,45.0,18.0,31.0,False,1 2021\-07\-28T22:37:46.000Z,0,16,16,244.0,7.0,23.0,True,1 2021\-07\-28T22:37:46.000Z,0,18,18,109.0,43.0,37.0,True,1 2021\-07\-28T22:37:46.000Z,0,23,23,49.0,62.0,38.0,True,1 2021\-07\-28T22:37:46.000Z,0,24,24,87.0,16.0,28.0,True,1 2021\-07\-28T22:37:46.000Z,0,27,27,280.0,52.0,42.0,True,1 2021\-07\-28T22:37:46.000Z,0,32,32,188.0,32.0,42.0,True,1 2021\-07\-28T22:37:46.000Z,5,3,195,305.0,6.0,13.0,False,1 2021\-07\-28T22:37:46.000Z,6,2,66,38.0,8.0,21.0,False,1 2021\-07\-28T22:37:46.000Z,6,3,67,34.0,60.0,32.0,True,1 2021\-07\-28T22:37:46.000Z,6,4,68,226.0,63.0,34.0,True,1 2021\-07\-28T22:37:46.000Z,6,5,69,220.0,12.0,32.0,True,1 2021\-07\-28T22:37:46.000Z,6,11,75,\-999,4.0,0.0,False,2 2021\-07\-28T22:37:46.000Z,6,12,76,47.0,0.0,0.0,False,1 2021\-07\-28T22:37:46.000Z,6,17,81,142.0,8.0,31.0,True,1 2021\-07\-28T22:37:46.000Z,6,18,82,138.0,57.0,40.0,True,1 2021\-07\-28T22:37:46.000Z,6,19,83,333.0,70.0,29.0,True,1 2021\-07\-28T22:37:46.000Z,6,20,84,323.0,10.0,0.0,False,1 .fam .fi .if n .RE .SS "مثال‌های رسم نمودار (Plot Examples)" .sp چند مثال رسم نمودار، آن‌ها را دقیقاً به ترتیب نمایش‌داده‌شده انجام دهید: .sp دریافت ۱۰۰ نمونه از time,lat,lon,altHAE: .sp .if n .RS 4 .nf .fam C $ gpscsv \-n 100 \-\-cvt\-isotime\& > tpv.dat .fam .fi .if n .RE .sp دریافت ۱۰۰ نمونه از time,epx,epy,epv,eph,sep .sp .if n .RS 4 .nf .fam C $ gpscsv \-n 100 \-\-cvt\-isotime \-f time,epx,epy,epv,eph,sep > ep.dat .fam .fi .if n .RE .sp دریافت ۱۰۰ نمونه از time,xdop,ydop,vdop,tdop,hdop,gdop,pdop .sp .if n .RS 4 .nf .fam C $ gpscsv \-n 100 \-\-cvt\-isotime \-c SKY\& > sky.dat .fam .fi .if n .RE .sp دریافت ۱۰۰ نمونه از time,nSat,uSat .sp .if n .RS 4 .nf .fam C $ gpscsv \-n 100 \-\-cvt\-isotime \-c SKY \-f time,nSat,uSat\& > sat.dat .fam .fi .if n .RE.SS "مشاهده داده‌های CSV با gnuplot" .sp اجرای gnuplot در حالت تعاملی: .sp .if n .RS 4 .nf .fam C $ gnuplot .fam .fi .if n .RE .sp برخی مقدمات و تنظیمات اولیه gnuplot: .sp .if n .RS 4 .nf .fam C # this are csv files gnuplot> set datafile separator \*(Aq,\*(Aq # use the first line as title gnuplot> set key autotitle columnhead # X axis is UNIT time in seconds. gnuplot> set xdata time gnuplot> set timefmt "%s" .fam .fi .if n .RE .sp اکنون برای رسم زمان در برابر عرض جغرافیایی با استفاده از \fBtpv.dat\fP بالا: .sp .if n .RS 4 .nf .fam C gnuplot> plot \*(Aqtpv.dat\*(Aq using 1:2 .fam .fi .if n .RE .sp سپس برای رسم طول جغرافیایی و altHAE در نمودارهای مجزا: .sp .if n .RS 4 .nf .fam C gnuplot> plot \*(Aqtpv.dat\*(Aq using 1:3 gnuplot> plot \*(Aqtpv.dat\*(Aq using 1:4 .fam .fi .if n .RE .sp رسم هم‌زمان عرض و طول جغرافیایی روی یک نمودار: .sp .if n .RS 4 .nf .fam C gnuplot> set y2tics gnuplot> plot \*(Aqtpv.dat\*(Aq using 1:2, \*(Aq\*(Aq using 1:3 axes x1y2 .fam .fi .if n .RE .sp رسم epx، epy، epv، eph و sep در یک نمودار، با استفاده از \fBep.dat\fP بالا: .sp .if n .RS 4 .nf .fam C gnuplot> plot \*(Aqep.dat\*(Aq using 1:2, \*(Aq\*(Aq using 1:3, \(rs \*(Aq\*(Aq using 1:4, \*(Aq\*(Aq using 1:5, \*(Aq\*(Aq using 1:6 .fam .fi .if n .RE .sp رسم تمامی DOPها در یک نمودار، از \fBsky.dat\fP بالا: .sp .if n .RS 4 .nf .fam C gnuplot> plot \*(Aqsky.dat\*(Aq using 1:2, \*(Aq\*(Aq using 1:3, \*(Aq\*(Aq using 1:4, \(rs \*(Aq\*(Aq using 1:5, \*(Aq\*(Aq using 1:6, \*(Aq\*(Aq using 1:7, \*(Aq\*(Aq using 1:8 .fam .fi .if n .RE .sp رسم هم‌زمان nSat و uSat با یکدیگر: .sp .if n .RS 4 .nf .fam C gnuplot> plot \*(Aqsat.dat\*(Aq using 1:2, \*(Aq\*(Aq using 1:3 .fam .fi .if n .RE .sp نمودار پراکندگی Lat/lon: .sp .if n .RS 4 .nf .fam C # x is no longer time gnuplot> set xdata gnuplot> plot \*(Aqtpv.dat\*(Aq using 3:2 title \*(Aqfix\*(Aq .fam .fi .if n .RE.SH "مقادیر بازگشتی (RETURN VALUES)" .sp \fB0\fP .RS 4 در صورت موفقیت. .RE .sp \fB1\fP .RS 4 در صورت شکست .RE .SH "همچنین ببینید (SEE ALSO)" .sp \fBgpspipe\fP(1), \fBgpsd_json\fP(5), \fBgpsd\fP(8), \fBgnuplot\fP(1) .SH "منابع (RESOURCES)" .sp \fBوب‌سایت پروژه:\fP \c .URL "https://gpsd.io" "" "" .SH "کپی‌رایت و تکثیر (COPYING)" .sp حق نشر این فایل متعلق به پروژه GPSD در سال 2020 است .br SPDX\-License\-Identifier: BSD\-2\-clause .SH "نویسنده (AUTHOR)" .sp Gary E. Miller