HAMSIAM.COM # NO.1 HAM COMMUNITY OF THAILAND
02 พฤษภาคม 2024, 08:04:25 *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว: หากสมาชิกท่านใดเข้ามาป่วนเวบ หรือ ก่อกวนกระทู้บุคคลอื่น หรือ โพสข้อมูล รูปภาพ ที่ผิดต่อกฏกติกา มารยาทอันดีงามของสังคมของเรา
ตลอดจนข้อมูลเกี่ยวกับการเมืองแบบเลือกสีเลือกฝ่าย ผู้ดูแลจะพิจารณาลบข้อมูล และลบ Login ท่านออกโดยขออนุญาตไม่ต้องแจ้งให้ทราบล่วงหน้า
Google
   หน้าแรก   ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก  


หน้า: 1 ... 36 37 [38] 39 40
  พิมพ์  
ผู้เขียน หัวข้อ: nTNC กับการพัฒนาและประยุกต์ใช้งาน  (อ่าน 164658 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
HS5TQA
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 328



เว็บไซต์
« ตอบ #370 เมื่อ: 20 ตุลาคม 2013, 11:26:41 »

ขอบคุณครับ
Third Party ที่ผมถาม เพราะผมต้องการใช้สำหรับ Inet to RF นี่แหละครับ  และเนื่องจาก แต่ก่อนผมใช้ miniTNC ก็เลย คุ้นเคยกับ Full PKT เลยเขียนโปรแกรม รับ ส่ง ข้อมูลแบบเก่า  แต่เดี๋ยวผมจะ แก้ไขใหม่ครับ
ตกลงถ้าเราจะใช้ format แบบสั้น ก็ได้ แต่ ว่า เวลาเราส่ง
}HS5TQA-1>APRSTH,WIDE1-1,WIDE2-2:!1736.98NI10042.25E& WX+IGATE APRS ON FraiendlyARM

ปรากฏว่า PKT ที่ส่งจริง มันออกแค่
HS5TQA-1>APRSTH,WIDE1-1,WIDE2-2:!1736.98NI10042.25E& WX+IGATE APRS ON FraiendlyARM

ตัว } มันหายไปครับ  ซึ่งผมกังวลว่า ที่ปลายทาง เมื่อรับแล้วจะไม่รู้ว่าเป็น Third Pary แล้วเดี๋ยวมันจะจับยัดลง APRS-IS loop กันไปอีก

ตัวอย่าง ที่ผมกำลังใช้จริง



หมายเลข 1 เป็น PKT จริง ที่อยู่ใน APRS-IS แล้วผมดึงออกมา  แล้วจึงใส่ เครื่องหมาย } นำหน้า PKT แล้วส่งออก ไปให้ nTNC
(จิ้มดูข้อมูลที่ขา Rx nTNC)

หมายเลข 2 เป็น PKT ที่รับด้วย TNC อื่น อีกตัวนึง ซึ่ง เครื่องหมาย } หายไป ไม่มาด้วย  มันจึงมองเหมือนว่าเป็น PKT ธรรมดา  ตรงนี้เองที่ กังวลว่า เมื่อ IGate อื่น รับได้ มันจะ loop ลง APRS-IS หรือเปล่า

แนวทางการแก้ปัญหาของผมมี 3 วิธี คือ
1. ใช้แบบ full format คือ
}ABCD-1,APRSTH,WIDE1-1:}original PKT
ซึ่ง } ตัวแรก ใช้หลอก nTNC เพื่อให้ส่งข้อมูลออกไปให้  ส่วน } ตัวที่2 คือ Third Party

2. ใช้ format ดัดแปลง คือ
}}original PKT
ซึ่ง } ตัวแรก ใช้หลอก nTNC เพื่อให้ส่งข้อมูลออกไปให้  ส่วน } ตัวที่2 คือ Third Party
ที่ต้องมี } 2 ตัวเพราะ nTNC เวลาส่งออกจะตัด } หายไป (เหลือแค่ 1 ตัว)

3. ต้องไปแทรก PATH เช่น RFONLY , TCP เป็นต้น แต่ผมว่ายุ่งยากกว่า 2 วิธีแรก

ถูกหรือเปล่าครับ?
ก่อนอื่นขอลดข้อกังวลท่านก่อนนิดหนึ่งตรงที่ iGate ถ้ามันพบพาธที่มีคำว่า RFONLY,TCPIP,qAx คำพวกนี้ดิจิจะไม่ทวนและไอเกตจะไม่นำส่งเข้า APRS-IS ครับ มันจะเพิกเฉยหรือตัดทิ้งไปเลย

ปัญหาของ 3rd party ตามมาตรฐานโปรโตคอลเลย ใช้จริงมีปัญหาเรื่องวน Loop นี่ละครับ จำได้ว่าเมืองนอกเค้าก็ถกกันอยู่พักหนึ่ง ทีนี้ผมจะแสดงปัญหาที่ว่าให้ดูครับ
ก่อนอื่นต้องเข้าใจรูปแบบ TNC2 Monitor ก่อนครับ ผมขอแบ่งเป็นสองส่วนใหญ่ ๆ คือส่วนหัวและส่วนลำตัว(ว่ากันง่ายๆ ด้วยภาษาไทยละกัน) ทีนี้ผมจะยกตัวอย่างว่าผมจะส่งสเตตัสง่าย ๆ คำว่า TEST ออกไปจะใช้สัญลักษณ์ > นำหน้าข้อมูล
HS5TQA-2>APNN05,WIDE1-1:>TEST
สีแดงไว้คือส่วนหัว (Header Packet)
เครื่องหมาย : เป็นตัวแบ่งระหว่างหัวกับตัว
สีน้ำเงินคือส่วนตัว (Infomation) หรือข้อความโปรโตคอล APRS

ลำดับแรก ส่งเข้าไอเก็ต HS5TQA-1 ข้อมูลที่วิ่งบน APRS-IS (หรือดู raw ใน aprs.fi) ก็จะได้เป็น
HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
สังเกตุดูว่ามันจะไปเพิ่มส่วนหัวตรงเส้นทาง qAR,HS5TQA-1 ขึ้นมา ถ้าเราเอาแพ็คเก็จนี้ส่งออก RF อีกครั้ง ไอเก็ตจะไม่ส่งเข้า APRS-IS อีกแล้วเพราะมันไปพบคำว่าง qAR เป็นตัวกำหนดว่ามันโดนส่งเข้าเครือข่ายอินเทอร์เน็ตไปแล้ว

ลำดับที่สอง เมื่อไอเก็ตรับมาแล้วจะส่งออก RF อีกครั้งในแบบ 3rd party (ตามมาตรฐาน) สมมุติผมใช้ HS5TQA-4 เป็น inet2rf แล้วกำหนดใช้พาธไอเก็ตเป็น WIDE1-1 จะได้
HS5TQA-4>APRSTH,WIDE1-1:}HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
ท่านจะเห็นว่าส่วนหัวถูกเปลี่ยนไปเป็นของสถานีไอเกตแล้ว และส่วนหัวเดิมกลายเป็นตัวข้อมูลในรูปแบบเต็มของ TNC2 Monitor ถ้าเอาแพ็จเก็ตนี้ส่งออก RF จะเกิดอะไรขึ้น ?
1.สถานีดิจิจะทำการทวนแน่นอน เพราะเส้นทางเป็น WIDE1-1
2.สถานีไอเก็ตทำการส่งต่อเข้า APRS-IS อีกรอบเพราะส่วนหัวเส้นทางเป็น WIDE1-1 ในส่วน qAR มันไม่ได้ไปดูเพราะมันเป็นส่วนข้อความ/ข้อมูล จึงไม่ได้อยู่ในข้อกำหนดเส้นทาง
3.เครื่องจอมอนิเตอร์ที่ไม่ฉลาดพอ ก็ถอดแพ็คเก็จ } มาแสดงผลไม่ได้ (ถ้าเจอลูป 2-5ชั้นเข้าไปไม่ต้องพูดถึง)
4.ปริมาณข้อมูลแพ็จเก็จจะยาวขึ้นเรื่อย ๆ จากข้อมูลเดิมเพียงแค่ >TEST กลายเป็น }HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
5.digi/tnc ที่มีบัฟเฟอร์เก็บแพ็คเก็จ AX.25 ไม่พอ มันจะเกิดปัญหาขึ้น

ลำดับที่สาม บังเอิญว่าสถานีไอเก็ต HS5TQA-1 รับสัญญาณจาก HS5TQA-4 ได้ ผลที่ได้คือมันส่งเข้า APRS-IS อีกครั้ง ได้ข้อมูลเป็น
HS5TQA-4>APRSTH,WIDE1-1,qAR,HS5TQA-1:}HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST

ลำดับที่สี่ สมมุติมีไอเก็ต HS5TQA-5 รับได้อีก ก็จะเริ่มเห็น 3rd party ลูปกัน 2ชั้นแล้วครับ
HS5TQA-5>APRSTH,WIDE1-1:}HS5TQA-4>APRSTH,WIDE1-1,qAR,HS5TQA-1:}HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST


ถ้ามีสถานีไอเก็ตและดิจิมากกว่านี้จะเห็นมันลูปยุ่งมากกว่านี้มาก แค่นี้ก็พอจะเริ่มเห็นภาพข้อมูลวนลูปแถมปริมาณข้อมูลก็เพิ่มขึ้นเรื่อย ๆ จากที่เราแค่ต้องการส่งข้อความ TEST เท่านั้น แต่มันโดนเพิ่มรูปแบบ TNC2 Monitor เข้าไปยาวเหยียด การใช้งานจริงมันจึงเกิดปัญหาครับ
และอย่าลืมว่า ข้อมูลที่วิ่งออก RF นั้นจริงแล้วไม่ใช่รูปแบบ TNC2 Monitor แต่เป็นโปรโตคอล AX.25 นะครับ ซึ่งในส่วนของเฮดเดอร์(ส่วนหัว)นั้น มันเป็นข้อมูลไบนารี่ทั้งหมดครับ ดังนั้นถ้าใส่ส่วนหัวเข้าไปในโปรโตคอล APRS แล้ว AX.25 มันจะมองเป็นส่วน Infomation หรือข้อความ/ข้อมูล

การแก้ปัญหานี้ ผมใช้วิธีจับมันส่งไปใหม่โดยไม่ต้องแทรกส่วนหัวสถานีไอเก็ตออกไป เช่น รับข้อมูลนี้มาจาก APRS-IS (ตัวอย่างนี้ได้จาก aprsd)
}HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
มันก็จะส่งออก RF โดยใช้ส่วนหัวเดิมเลย ก็จะได้
HS5TQA-2>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
ผลที่ได้คือไม่เกิดลูป ดิจิและไอเก็ตเพิกเฉยไม่ทำงาน ก็มีค่าเท่ากับสถานี inet2rf นี้ส่งข้อมูลออกไปทางอากาศให้เครื่องที่มีจอแสดงผลหรือสถานีที่จะเอาข้อมูลที่รับทาง RF ไปใช้งานอย่างอื่นต่อไป

ตัวอย่างเช่น
ผมส่งข้อมูลตรวจวัดอากาศ(WX) ที่อุตรดิตถ์ แล้วผมทำ inet2rf ที่กรุงเทพฯ แน่นอนว่าดิจิและไอเก็ตแถวนั้นไม่ทวนและไม่ส่งเข้าเน็ต แต่ผมใช้วิทยุ VX8/FTM350 สามารถแสดงข้อมูลตรวจอากาศของอุตรดิตถ์ที่กรุงเทพฯได้โดยผ่่านคลื่นวิทยุเป็นต้น

ทีนี้มาดูตัว nTNC
ที่ท่านเห็นว่ามันตัด } นั้น จริง ๆ มันไม่ได้ตัดนะครับ มันเอาส่วนหัว(เฮดเดอร์)ในแพ็คเก็จที่ส่งนั้น ไปเป็นส่วนหัวใน AX.25 แทนส่วนหัวของ TNC ที่กำหนดไว้ มันไม่ได้เอาไปเป็นข้อมูลตามมาตรฐาน 3rd-party ที่เอาส่วนหัวมาต่อในข้อมูลไปเรื่อย ๆ
ยังไงท่านก็ลองเล่นดูครับ ถ้าเจอลูป 3rd-party สัก 2-3ชั้น ก็คงจะเริ่มร้องอ๋อเองละครับ เพราะมันจะเริ่มถอดข้อมูลโปรโตคอล APRS มาแสดงผลได้ยากขึ้น ปัญหาจะเจอเยอะขึ้น ใช้หน่วยความจำ MCU มากขึ้น ฯลฯ

บันทึกการเข้า

APRSTH MAP: http://aprsth.nakhonthai.net
APRSTH-HAM: aprsth.nakhonthai.net:14580
APRSTH-CB: aprsth.nakhonthai.net:24580
APRS Web: http://aprs.nakhonthai.net
HAMSIAM.COM # NO.1 HAM COMMUNITY OF THAILAND
« ตอบ #370 เมื่อ: 20 ตุลาคม 2013, 11:26:41 »

พื้นที่โฆษณา ขาย เครื่องชาร์จแบตเตอรี่อัตโนมัติ CTEK จาก สวีเดน ดีที่สุด/ถูกที่สุด+ประกัน5ปี
คลิ้กไปดูที่ลิ้งค์ข้างล่างเลยครับ
http://www.spy-thai.com/


GPS ติดตามรถหาย ดักฟังเสียงสนทนาในรถ หรือระบุตำแหน่งรถ สั่งดับเครื่อง
ติดตามรถได้ทั่วไทยโดยไม่มีค่าบริการรายเดือน / Tel. 086-9455977
 บันทึกการเข้า
supichan
Jr. Member
**
ออฟไลน์ ออฟไลน์

กระทู้: 87


« ตอบ #371 เมื่อ: 20 ตุลาคม 2013, 13:44:49 »

OK ครับ ขอบคุณครับ  เข้าใจมากขึ้นอีกนิด

จากแต่ก่อน ผมเข้าใจว่า ถ้า ตัว payload_data_content  ใส่ Third pary นำหน้าไป เป็น }payload_data_content  IGate อื่น ก็จะปฏิเสธการรับ
ซึ่งจริงๆ น่าจะไม่ใช่ทั้งหมด  เนื่องจาก มันเช็ค 2 เงื่อนไข คือ
1. มี Third Pary "}" และ มี PATH  TCPIP หรือ TCPXX  ถึงจะปฏิเสธการรับ
2. มี Third Pary "}" แต่ ไม่มี PATH  TCPIP หรือ TCPXX จะรับแต่จะตัด RF header ออก

อ้างอิง http://www.aprs-is.net/IGating.aspx
* An IGate should not gate third-party packets (data type }) with TCPIP or TCPXX in the third-party header to APRS-IS. Third-party packets without TCPIP in the header are to be gated to APRS-IS AFTER stripping the RF header and third-party data type.

ดังนั้นสรุปว่า การใช้ Third Party แบบ ใส่ Header IGate เข้าไป จะเสี่ยงต่อ Loop ตามที่ท่าน HS5TQA อธิบายไว้ข้างต้น

อ้างถึง
ตัวอย่างเช่น
ผมส่งข้อมูลตรวจวัดอากาศ(WX) ที่อุตรดิตถ์ แล้วผมทำ inet2rf ที่กรุงเทพฯ แน่นอนว่าดิจิและไอเก็ตแถวนั้นไม่ทวนและไม่ส่งเข้าเน็ต แต่ผมใช้วิทยุ VX8/FTM350 สามารถแสดงข้อมูลตรวจอากาศของอุตรดิตถ์ที่กรุงเทพฯได้โดยผ่านคลื่นวิทยุเป็นต้น
ผมจะทำ แบบนี้แหละครับ

ส่วนกรณี ส่ง Original PKT ของ APRS-IS ออกไปเลย ซึ่งประกอบด้วย Q-construct  แล้ว IGate หรือ Digi อื่นๆ จะเพิกเฉย  อันนี้ผมอ่านตาม http://wiki.ham.fi/APRS_iGate_properties   คือยังแปลไม่ชัดเจนเท่าไหร่ เช่น

Possibly other Q Construct codes also forbid the relaying.   มันหมายความว่า ห้าม Inet>RF  หรือว่า ห้าม IGate>APRS-IS ?
มีตัวอย่าง กฏ ที่ชัดเจนกว่านี้แนะนำไหมครับ

ส่วนอันที่เห็นชัดๆ คือ
Packets with VIA-path containing TCPIP, or TCPXX shall not be relayed to APRS-IS.
Packets with VIA-path containing RFONLY or NOGATE shall not be relayed to APRS-IS.
แต่ถ้า Third Pary ซ้อนๆกันเหมือนที่ HS5TQA อธิบายว่ามันก็คงจะไม่ทำไม่งาน เพราะ TCP มันไปอยู่ในส่วนของ Information ไปแล้ว


ดังนั้นสรุปว่า ถ้าผมจะใช้ Third Party
1. ถ้าผมจะใส่แบบมี IGATE Header:}payload_data_content  ก็ได้ ... แต่จะเสี่ยงกับ loop และ Third pary ซ้อน
2. ไม่ต้องใช้ } แต่ให้ส่ง Original PKT APRS-IS  ซึ่ง ประกอบด้วย Q-construct ออกไป
3. จากข้อ1. IGate Header ให้ใช้ PATH  RFONLY or NOGATE or TCP เข้าไป จึงจะไม่ loop
บันทึกการเข้า
HAMSIAM.COM # NO.1 HAM COMMUNITY OF THAILAND
« ตอบ #371 เมื่อ: 20 ตุลาคม 2013, 13:44:49 »

 บันทึกการเข้า
HS5TQA
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 328



เว็บไซต์
« ตอบ #372 เมื่อ: 20 ตุลาคม 2013, 21:03:00 »

ในส่วนข้อกำหนดการใช้งานเส้นทางนั้น มีรายละเอียดเยอะครับ คิดว่าจะเขียนเป็นบทความต่อจากเอกสารแผ่นพับที่เคยแจกจ่ายไป ข้อมูลส่วนหัวนี้จะเป็นผู้กำหนดขะตาชีวิตของแพ็คเก็จเลยทีเดียวว่า มาจากใคร จะไปที่ไหน อย่างไร และต้องให้สอดคล้องกันทั้งผู้ใช้งานและผู้ให้บริการด้วย
ผมขอสรุปและยกตัวอย่างมาให้ดูก่อนก็แล้วกันนะครับ
q-construct ในส่วนนี้มักเป็นข้อมูลที่วิ่งอยู่บนเครือข่าย APRS-IS สถานีดิจิหรือไอเก็ตเช็คแค่ "qA" ถ้าพบก็ไม่ทำงานต่อเท่านั้นเองครับ ที่พบกันบ่อย ๆ จะเป็นไอเก็ตมักใส่ qAR แล้วส่งเข้า APRS-IS ซึ่งมันจะบอกว่าแพ็คเก็จนี้ถูกรับมาจาก RF ตัวอย่างเช่น

HS5TQA-9>APNN05,WIDE1-1,qAR,HS5TQA-1:>TEST
ตัวอย่างข้างบนจะบอกว่าข้อมูลเป็นของ HS5TQA-9 ใช้เส้นทาง WIDE1-1 ถูกรับด้วยไอเก็ต HS5TQA-1 ผ่าน RF เป็นต้น

APRSTH>APRSTH,TCPIP*,qAC,SIXTH:!1345.60N/10032.28EIAPRS-IS ON aprsth.nakhonthai.net:14580
ตัวอย่างข้างต้นบอกว่า ข้อมูลเป็นของ APRSTH ซึ่งเป็นต้นทาง ถูกรับโดยตรงที่เซิร์ฟเวอร์ SIXTH โดยผ่านเครือข่ายอินเทอร์เน็ต

HS6AS-1>APRSTH,TCPIP*,qAS,APTHWX-1:>Repeater 145.675MHz(DUP-600Khz)
ดูอีกอัน ข้อมูลสถานี HS6AS-1 ถูกสร้างด้วยเซิร์ฟเวอร์(qAS) ส่งตรงเข้าเซิร์ฟเวอร์ APTHWX-1 โดยตรงผ่านเครือข่ายอินเทอร์เน็ต

ข้อมูลเรื่อง q-construct ดูต่อได้ที่ http://www.aprs-is.net/q.aspx

TCPxx ถ้าเจอในพาธไอเก็ตจะไม่ส่งต่อเข้า APRS-IS เพราะมีอยู่แล้วไม่งั้นจะเกิดลูปและสถานีดิจิก็มักจะไม่ทวนเช่นกัน
NOGATE ถ้าเจอในพาธไอเก็ตจะไม่ส่งต่อเข้า APRS-IS แต่ดิจิถ้ามีพาธที่มันทำงานต่อได้จะสามารถทวนได้ต่อไป
RFONLY ถ้าเจอในพาธไอเก็ตจะไม่ส่งต่อเข้า APRS-IS แต่ดิจิถ้ามีพาธที่มันทำงานต่อได้จะสามารถทวนได้ต่อไป
RELAY ถ้าเจอในพาธไอเก็ตจะไม่ส่งต่อเข้า APRS-IS แต่ดิจิจะทวนทันทีโดยไม่สนใจพาธเงื่อนไขอื่น ส่วนใหญ่ยกเลิกการใช้งานเพราะเก็ดลูปง่าย
WIDEn-N ถ้าเจอในพาธไอเก็ตจะส่งต่อเข้า APRS-IS และสถานีดิจิทวนและลดค่า N ลง 1 ครั้ง
TRACEn-N ถ้าเจอในพาธไอเก็ตจะส่งต่อเข้า APRS-IS และสถานีดิจิทวนและลดค่า N ลง 1 ครั้ง
IGATE ถ้าเจอในพาธไอเก็ตจะส่งต่อเข้า APRS-IS และสถานีดิจิจะไม่ทวนข้อมูล
CALLSIGN-SSID ถ้าเจอในพาธไอเก็ตจะส่งต่อเข้า APRS-IS และสถานีดิจิจะทวนเมื่อ CALLSIGN-SSID เป็นของตนเอง

เอาละทีนี้ปัญหามันมีอยู่ว่า tnc/digi ที่ถูกสร้างขึ้นมาแต่ละค่าย มันรองรับไม่ครบตามมาตรฐานโปรโตคอล ให้ไปทดสอบกันเองนะครับว่าค่ายไหนใช้ได้ไม่ได้กับข้อกำหนดไหนอย่างไร ?

ไหน ๆ ก็ไหน ๆ แล้วว่ากันด้วย WIDEn-N vs TRACEn-N นิดหนึ่งครับ สมมุติให้เห็นภาพกันเลยละกัน
กรณี WINDn-N ค่า n คือเลขกำหนดลำดับที่จะทวน และดิจิมันจะลดค่า N ลง 1ครั้งในการทวน จะสื้นสุดเหลือ 0 ถึงหยุดทวนต่อไป ผลที่ได้ดังตัวอย่าง กำหนดให้ทวน 3 ครั้งเริ่มต้นกำหนดให้ n=N=3 จะได้ WIDE3-3
HS5TQA-9>APNN05,WIDE3-3:>TEST
HS5TQA-9>APNN05,WIDE3-2:>TEST
HS5TQA-9>APNN05,WIDE3-1:>TEST
HS5TQA-9>APNN05,WIDE3-0*:>TEST หรือ HS5TQA-9>APNN05,HS5TQA-3*:>TEST

กรณี TRACEn-N ค่า n คือเลขกำหนดลำดับที่จะทวน และดิจิมันจะลดค่า N ลง 1ครั้งในการทวน และใส่ชื่อสถานีทวนเข้าไปด้วย จะสื้นสุดเหลือ 0 ถึงหยุดทวนต่อไป ผลที่ได้ดังตัวอย่าง กำหนดให้ทวน 3ครั้งเริ่มต้นกำหนดให้ n=N=3 จะได้  TRACE3-3
HS5TQA-9>APNN05,TRACE3-3:>TEST
HS5TQA-9>APNN05,HS5TQA-2,TRACE3-2:>TEST
HS5TQA-9>APNN05,HS5TQA-2,HS5TQA-3,TRACE3-1:>TEST
HS5TQA-9>APNN05,HS5TQA-2,HS5TQA-3,HS5TQA-4*:>TEST

ทีนี้ดิจิบางรุ่นไม่รู้จัก TRACE ก็เลยใช้ WIND แทนดังนั้นแทนที่จะเป็น
HS5TQA-9>APNN05,TRACE2-2:>TEST
ก็จะได้เป็น
HS5TQA-9>APNN05,WIDE1-1,WIDE2-1:>TEST

ตัวอย่างข้างต้นจะได้ผลเท่ากันโดยจะผ่านดิจิทวน 2ครั้งและใส่สถานีทวนเข้าไปเช่นกัน เพียงแต่ถ้าแพ็คเก็จนี้ถูกส่งถึงไอเก็ตเลยโดยไม่ได้ผ่านสถานีทวน จะเห็นว่าแพ็คเก็จที่ใช้ TRACE จะสั้นกว่า ถ้าเป็นสถานีรถยนต์ถ้าส่งเสียงสั้น ๆ ผู้รับก็จะมีโอกาศรับ+ถอดได้มากกว่า ส่วนสถานีดิจิที่ทวนกันเองอยู่ส่วนใหญ่เป็นสถานีใหญ่สัญญาณวิทยุนิ่งอยู่แล้วจะส่งยาวแค่ไหนมันก็รับง่ายอยู่แล้วครับ

จบแค่นี้ก่อนครับ เอาไว้เขียนเป็นบทความยาว ๆ มาให้อ่านกันดีกว่า เรื่องมันยาวจริงๆ ...
บันทึกการเข้า
HS5TQA
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 328



เว็บไซต์
« ตอบ #373 เมื่อ: 24 ตุลาคม 2013, 17:24:05 »

พรุ่งนี้เช้าไปเชียงใหม่(จากอุตรดิตถ์)
มี nTNC-Module กับ nTNC-Evaluation  ติดรถไปด้วย
ท่านใดต้องการโบกรถจอดข้างทางได้ครับ(ราคาพิเศษ)
บันทึกการเข้า
nay01
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 292


HS5WYM


« ตอบ #374 เมื่อ: 25 ตุลาคม 2013, 21:44:55 »

ตามไปไม่ทัน จอดลำปางครับ
บันทึกการเข้า

145.250 MHz Phrae
145.450 MHz Lampang
Phrae DXer Team
APRS IGATE Phrae & Soemngam, Lampang
supichan
Jr. Member
**
ออฟไลน์ ออฟไลน์

กระทู้: 87


« ตอบ #375 เมื่อ: 02 พฤศจิกายน 2013, 22:06:12 »

สวัสดีครับ มีการทดลองมาถามอีกแล้ว
1. ผมset nTNC เป็น TNC  Set PATH = ABCD  แล้วลองส่ง PKT ออกไป เช่น >TEST
ผลคือ  HSAAA>APNN05,ABCD-0:>TEST

ผมไม่แน่ใจว่า  ABCD-0 มันเติมเพิ่มเข้ามา จะมีผลอะไรบ้างไหม  แต่ผมเข้าไปดูใน Raw APRS-IS ปรากฏว่า มันไม่เข้า IS ครับ แล้วดูในช่อง Packets Rx มีเลข 3 ตัว เช่น X/X/3   บอกมี error ประมาณว่า Invalid callsign in path ผมก็ยังไม่แน่ใจ จึงลอง Telnet เข้าไปที่ APRS-IS ลองส่ง PKT ตรงๆ เช่น ส่งว่า  HSAAA>APNN05,ABCD-0:>TEST ปรากฏว่า ไม่เข้า IS จริงๆ ครับ  คิดว่าน่าจะมีปัญหาตรง ABCD-0 นี่แหละ

ถามว่า กรณีใส่ PATH ที่เป็น callsign มันจะเติม-0 ให้อัติโนมัติ แล้ว เมื่อไปถึง Igate มันจะตัดออกให้เอง หรือเปล่าครับ เพราะผม ลอง ใช้ nTNC 2 ตัว รับส่ง กันดูปรากฏว่ามันไม่ตัดออกให้

2.ตอนนี้ nTNC ตัวนึงเกิดอาการ Error คือ เมื่อจ่ายไฟให้ ขึ้น Boot loader.... ต่อจากนั้นมันจะส่งอักขระมั่วๆออกมาไม่รู้จบครับ  ผมทดลอง Update firmware แล้ว ไม่ได้มันบอก no response  ลองพยายามใช้คำสั่งก็ไม่ได้ (ไม่ทันมันส่งขยะออกมาก่อน)
ผมทดลองปรับ Baud rate เป็นค่าต่างๆแล้วก็ยังไม่ได้ผล (เมื่อเห็นมันขึ้นคำว่า Boot loader แล้ว แปลว่าผมตั้ง Baud ถูกแน่ๆ)
บันทึกการเข้า
HS5TQA
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 328



เว็บไซต์
« ตอบ #376 เมื่อ: 03 พฤศจิกายน 2013, 18:54:05 »

สวัสดีครับ มีการทดลองมาถามอีกแล้ว
1. ผมset nTNC เป็น TNC  Set PATH = ABCD  แล้วลองส่ง PKT ออกไป เช่น >TEST
ผลคือ  HSAAA>APNN05,ABCD-0:>TEST

ผมไม่แน่ใจว่า  ABCD-0 มันเติมเพิ่มเข้ามา จะมีผลอะไรบ้างไหม  แต่ผมเข้าไปดูใน Raw APRS-IS ปรากฏว่า มันไม่เข้า IS ครับ แล้วดูในช่อง Packets Rx มีเลข 3 ตัว เช่น X/X/3   บอกมี error ประมาณว่า Invalid callsign in path ผมก็ยังไม่แน่ใจ จึงลอง Telnet เข้าไปที่ APRS-IS ลองส่ง PKT ตรงๆ เช่น ส่งว่า  HSAAA>APNN05,ABCD-0:>TEST ปรากฏว่า ไม่เข้า IS จริงๆ ครับ  คิดว่าน่าจะมีปัญหาตรง ABCD-0 นี่แหละ

ถามว่า กรณีใส่ PATH ที่เป็น callsign มันจะเติม-0 ให้อัติโนมัติ แล้ว เมื่อไปถึง Igate มันจะตัดออกให้เอง หรือเปล่าครับ เพราะผม ลอง ใช้ nTNC 2 ตัว รับส่ง กันดูปรากฏว่ามันไม่ตัดออกให้

2.ตอนนี้ nTNC ตัวนึงเกิดอาการ Error คือ เมื่อจ่ายไฟให้ ขึ้น Boot loader.... ต่อจากนั้นมันจะส่งอักขระมั่วๆออกมาไม่รู้จบครับ  ผมทดลอง Update firmware แล้ว ไม่ได้มันบอก no response  ลองพยายามใช้คำสั่งก็ไม่ได้ (ไม่ทันมันส่งขยะออกมาก่อน)
ผมทดลองปรับ Baud rate เป็นค่าต่างๆแล้วก็ยังไม่ได้ผล (เมื่อเห็นมันขึ้นคำว่า Boot loader แล้ว แปลว่าผมตั้ง Baud ถูกแน่ๆ)

ขอบคุณที่ค้นปัญหามาให้ทราบ ทางผมเองก็เพิ่งทราบปัญหานี้จากท่านเช่นกัน ก็เลยต้องทำการทดสอบและค้นหาปัญหาทีเกิดขึ้นกันยาวสักหน่อย ค่อยว่ากันต่อไป
ก่อนอื่นต้องขอทำความเข้าใจก่อนว่า โปรโตคอล ax.25 ที่ถูกนำมาพัฒนาต่อยอดให้เป็น APRS นั้น การกำหนดเส้นทางหรือในส่วนเฮดเดอร์คงเป็นรูปแบบ AX.25 อยู่ และนามเรียกขานที่ถูกนำไปกำหนดเป็น ID นั้น จะต้องมี SSID เสมอ
ซึ่งมันมีค่า 0-15(เลขฐานสิบ) หรือ 0-F(ในเลขฐานสิบหก) เมื่อแปลงจากข้อมูลไบนารี่มาเป็นข้อความจึงได้ ABCDEF-0 ถึง ABCDEF-15 ตามที่เห็นใน raw หรือ TNC2-Monitor ทีนี้การใช้ ABCDEF-0 เมื่อเป็นข้อความมันดูยาวไป เราเลยลดรูปมัน
คงเหลือ ABCDEF ก็ได้ หรือติต่างว่า ABCDEF มีค่าเท่ากับ ABCDEF-0 ในทางกลับกันถ้าใส่ ABCDEF แล้วแปลงเป็น AX.25 จะต้องกำหนดให้ SSID เท่ากับ 0 นั่นเองครับ

จากปัญหาที่ท่านถามในข้อ 1 ผมทดสอบโดยรูปแบบนี้
Radio(VX8R)->IGate(nTNC+aprx)->APRS-IS(APRSTH)->CORE(SIXTH)<-->CORE(T2HUB2)->aprs.fi(T2FINLAND)ส่งจากวิทยุเข้าไอเก็ต HS5TQA ส่งไปวิ่งวนในลูปของ APRS-IS แล้ว aprs.fi ก็จับไปลงดาต้าเบสแล้วแสดงผลหน้าเว็บ คราวนี้ผมก็ลองใส่ PATH เป็น -0 ไปดู มันไม่โผล่ที่ aprs.fi (สมัยก่อนมันโผล่ปกติ)

ก็เลยต้องหาสาเหตุว่าอะไรเปลี่ยนไป! เกิดอะไรขึ้น!
จากเสต็ปการส่งข้อมูลข้างต้น เริ่มจากวิทยุ VX8R ก่อนโดยส่งข้อมูลนี้ออกไป
HS5TQA-7>Q7TSS9,HS5TQA-0:`lY.l .[/`http://aprs.nakhonthai.net    _

nTNC รับได้ปกติแล้วพ่นข้อความออกมาเป็นข้อความเดิมที่รับได้
HS5TQA-7>Q7TSS9,HS5TQA-0:`lY.l .[/`http://aprs.nakhonthai.net    _

ไปดูใน log ของ APRX ว่ามันรับข้อความนี้ได้ไหม? เอ๋..มันรับได้ครับ แต่มันจะส่งออกไปให้ไหม ?
2013-11-03 17:00:41.643 HS5TQA    R HS5TQA-7>Q7TSS9,HS5TQA-0:`lYl [/`http://aprs.nakhonthai.net    _

ก็เลยวิ่งไปดูที่เซิร์ฟเวอร์ จับแพ็คเก็จดูเลยว่ามีข้อมูลถูกส่งมาจาก aprx หรือไม่ ? ผลคือ มีข้อมูลถูกส่งมาจาก aprx โดยแนบ qAR,HS5TQA มาปกติ สรุปว่า APRX คงทำงานปกติรับได้ส่งได้
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:45:37.100164 IP ppp-115-87-149-60.revip4.asianet.co.th.45805 > aws.14580: Flags [P.], seq 2489431559:2489431639, ack 3679896005, win 2920, options [nop,nop,TS val 4294929032 ecr 928841995], length 80
E....K(แอท).8.l.sW.<......8..a...V.....h.b.....
..j.7]..HS5TQA-7>Q7TSS9,HS5TQA-0,qAR,HS5TQA:`lY.l .[/`http://aprs.nakhonthai.net    _

แต่กลับไม่มีข้อมูลนี้ส่งออกไปยัง CORE Server เลย..จึงเกิดข้อสงสัยว่า จะเป็นที่ APRSTH ที่ปัจจุบันเราใช้โปรแกรม APRSC หรือไม่ ?
คราวนี้ลองใหม่ ส่งข้อมูลออกไปโดยไม่ผ่าน APRSC จะโผล่ไหม ? ตามเส้นทางด้านล่าง ซึ่ง FIRST ใช้โปรแกรมเซิร์ฟเวอร์ที่เป็น Java APRS
Radio(VX8R)->IGate(nTNC+aprx)->CORE(FIRST)<-->CORE(T2HUB2)->aprs.fi(T2FINLAND)

ผลที่ได้คือก็ยังไม่โผล่ที่ aprs.fi เลยแปลกใจไปตรวจสอบ T2FINLAND อ้าว..ลืมไปว่าที่นี้ถือเป็นต้นฉบับในการพัฒนา APRSC เลย ซึ่งเพิ่งจะพัฒนามาได้ไม่นานมานี้เอง ดังนั้นถ้าติดปัญหาที่ aprsc จริงก็ไม่มีทางเลยที่ข้อมูลจะถูกบันทึกลงฐานข้อมูลที่ฟินแลนด์

ก็เลยหันไปใช้ aprsd รับแล้วมอนิเตอร์ดู ตามเส้นทางนี้
Radio(VX8R)->IGate(nTNC+aprx)->CORE(FIRST)<-->CORE(FIRST)->APTHWX(aprsd)

ผลที่เอาเซิร์ฟเวอร์ที่รันโปรแกรม APRSD สำหรับลีนุกซ์ที่ทำ APRS-IS Server รับดูจาก CORE Server โดยตรง แล้วส่งข้อมูลจากวิทยุออกไปดู ผลคือ มันผ่านมาถึง aprsd ได้ปกติ
ถ้าท่านต้องการทดลอง ให้ใช้โปรแกรมแสดงผลอื่นเช่น UI-View หรือ XASTIR เชื่อมต่อไปยังเซิร์ฟเวอร์ที่เป็น Java หรือ aprsd ทดสอบดูนะครับ

สรุปผล
APRSC ใช้พาธที่เป็นข้อความต่อท้าย -0 ไม่ได้



ในส่วนข้อ 2 นั้น nTNC จะประกอบไปด้วยซอร์ฟแวร์ 2ส่วนคือส่วนบูทโหลดเดอร์ และโปรแกรมแอพปริเคชั่น ตอนจ่ายไฟหรือรีเซ็ตช่วงแรก โปรแกรมส่วนบูทโหลดเดอร์จะทำงาน มันจะไปสั่งไฟ LED กระพริบรอจังหวะซิงค์เพื่ออับเดทเฟิร์มแวร์ เมื่อกระพริบเสร็จไม่มีการอับเดทเฟิร์มแวร์ใหม่ถึงจะไปสั่งรันโปรแกรมแอพปริเคชั่นทำงานต่อไป ดังนั้นถ้าสามารถแสดงผลหรือซิ้งค์ข้อมูลช่วงบูทโหลดเดอร์ได้ก็น่าจะอับเดทเฟิร์มแวร์ได้ปกตินอกเสียจาก MCU เสีย... ทีนี้ปัญหาของไอซีตระกูล AVR นี้ที่ผมเล่นมันมากว่าสิบปีมันจะมีปัญาหาหนึ่งที่ไม่ค่อยบอกกันคือ หน่วยความจำแฟชสเมมโมรี่ มันมีโอกาศเสียหายได้ครับ ส่วนใหญ่เกิดจากแรงดันอิมพัลซ์หรือทรานเซียส ที่ขาไฟเลี้ยงและขารีเซ็ต เพราะการโปรแกรมผ่าน SPI มันจะใช้ขารีเซ็ตเป็นขาทริกโปรแกรม วิธีแก้ไขปัญหาคือ ให้ใส่ C >100uF ไว้ที่ขาไฟเลี้ยง(nTNC ที่ขา 2) และ C >10uF ไว้ที่ขารีเซ็ต(nTNC ขา 3)

ข้อมูลเพิ่มเติม
Java APRS Server
FIRST(http://first.aprs.net:14501)
CORE-2(http://134.173.254.38:14501)

aprsd APRS Server
APTHWX(http://203.150.19.19:14501)

aprsc APRS Server
APRSTH(http://aprsth.nakhonthai.net:14501)
T2FINLAND(http://finland.aprs2.net:14501)
บันทึกการเข้า
supichan
Jr. Member
**
ออฟไลน์ ออฟไลน์

กระทู้: 87


« ตอบ #377 เมื่อ: 04 พฤศจิกายน 2013, 09:33:28 »

ขอบคุณครับ
กรณี ที่ 1 เนื่องเรื่อง SSID ของ PATH เนื่องจากตอนนี้ ผมใช้ IGate ต่อกับ APRSC ของ Nakhonthai เป็นหลัก ดังนั้นก็เลยหนีไม่พ้น ที่จะเกิดปัญหาของกรณี SSID-0
สรุป ผมแก้ปัญหาโดยวิธี แก้โปรแกรมของ IGate ตัวเอง ให้เชค SSID ของ PATH ถ้ามี -0 ให้ตัดออกเลย  ก็คงแก้ปัญหาเฉพาะหน้าได้ส่วนนึงครับ

กรณีที่ 2 เรื่องError AVR สรุปว่าผมพยายามลง Firmware ให้มันจนได้ สำเร็จ  แต่กว่าจะได้ ก็ลงซ้ำๆเป็น 10 รอบหล่ะครับ  ดังนี้
ผมเดาเอาว่า ที่มันส่งข้อมูลขยะออกมาตลอดเวลานั้น เป็นไปได้ว่า ในส่วน EPROM ที่บันทึกค่าการตั้งค่าต่างๆ อาจจะถูกบันทึกค่าอะไรผิดพลาดลงไป เช่น พวก Comment หรือ การตั้งค่าเวลาอะไรซักอย่าง ซึ่งคนไม่ได้บันทึก แต่อาจเกิดจาก อิมพัลซ์หรือทรานเซียส  ที่HS5TQA บอก
ผมจึงลองพยายาม ตั้งค่ามันใหม่ก่อน ใช้ โปรแกรม nTNC Control ตั้งแบบกดปุ่มตั้งอัตโนมัติ  เพราะถ้ามาสั่ง cmd เอง มันคงจะไม่ทัน  ผลคือดีขึ้นครับ มีขยะส่งออกมาน้อยลง แต่ก็ยังออกอยู่..  หลังจากนั้นจึงลองไป UPDATE Firmware ดู พยายามหลายๆครั้ง ก็สำเร็จ
ที่ตอนแรกไม่สำเร็จ คงเป็นเพราะว่า... Bootloader กับ คอมฯ ยังไม่ทันจะ Sync กันได้ ขยะมันออกมาซะก่อน...
ที่เหลือ คงต้องใส่ RC Filter ตามคำแนะนำหล่ะครับ
ขอบคุณครับ
บันทึกการเข้า
supichan
Jr. Member
**
ออฟไลน์ ออฟไลน์

กระทู้: 87


« ตอบ #378 เมื่อ: 04 พฤศจิกายน 2013, 20:49:41 »

มีคำถามอีก 1 เรื่องครับ
อยากให้อธิบายกลไกการทำงานของส่วน Digipeater กรณีในพื้นที่เดียวกันมี Digipeater มากกว่า 1 ตัว ที่ได้ยินกันเอง และมีการตั้ง DIGIDELAY ไว้
ผมสังเกตุได้ดังนี้ ครับ
สมมติให้ มีDIGI A และ B  ให้ A DIGIDELAY=0  และ B DIGIDELAY=2
และหากมี PKT ส่ง มาและ DIGI A ทวนสัญญาณก่อน  DIGI B จะไม่ทวน ตามที่ DELAY
กรณีนี้  เกิดจากอะไรครับ..
1. DIGI B รับได้ว่า DIGI A ทวนสัญญาณ ออกไปแล้ว จึงจะไม่ทวนPKTนั้นๆซ้ำ
หรือ
2. DIGI B รับได้ว่า DIGI A ทวนสัญญาณ ออกไปแล้ว ซึ่งเป็น PKT ใหม่ล่าสุดที่ DIGI B รับได้ จึงลืม PKT เก่าที่จะต้องทวนออกไป (คือระหว่างรอDELAY มี PKTใหม่ จาก A เข้ามา จึงประมวลผลPKTล่าสุดแทน)
บันทึกการเข้า
HS5TQA
Sr. Member
****
ออฟไลน์ ออฟไลน์

กระทู้: 328



เว็บไซต์
« ตอบ #379 เมื่อ: 05 พฤศจิกายน 2013, 14:25:10 »

มีคำถามอีก 1 เรื่องครับ
อยากให้อธิบายกลไกการทำงานของส่วน Digipeater กรณีในพื้นที่เดียวกันมี Digipeater มากกว่า 1 ตัว ที่ได้ยินกันเอง และมีการตั้ง DIGIDELAY ไว้
ผมสังเกตุได้ดังนี้ ครับ
สมมติให้ มีDIGI A และ B  ให้ A DIGIDELAY=0  และ B DIGIDELAY=2
และหากมี PKT ส่ง มาและ DIGI A ทวนสัญญาณก่อน  DIGI B จะไม่ทวน ตามที่ DELAY
กรณีนี้  เกิดจากอะไรครับ..
1. DIGI B รับได้ว่า DIGI A ทวนสัญญาณ ออกไปแล้ว จึงจะไม่ทวนPKTนั้นๆซ้ำ
หรือ
2. DIGI B รับได้ว่า DIGI A ทวนสัญญาณ ออกไปแล้ว ซึ่งเป็น PKT ใหม่ล่าสุดที่ DIGI B รับได้ จึงลืม PKT เก่าที่จะต้องทวนออกไป (คือระหว่างรอDELAY มี PKTใหม่ จาก A เข้ามา จึงประมวลผลPKTล่าสุดแทน)
ตอบเรื่องเก่าก่อนว่า SSID-0 นั้น ไว้ผมจะยกเลิกให้เวอร์ชั่นถัดไป(V0.6) เพราะจะแจ้งให้ aprsc แก้ไข แม้จะแก้ไขแล้วผู้ใช้ก็ต้องอับเดทตัวล่าสุดด้วย คาดว่ากว่าจะหมดโลกคงเล่นเป็นปี จากที่หลาย ๆ แห่งย้ายมาใช้ aprsc กันหมดแล้ว เราผู้พัฒนาตัวน้อย ๆ ก็คงต้องตามน้ำพี่แกไปโดยปริยาย...

ในเรื่อง DIGIDELAY จำได้ว่าเคยพูดไว้ตอนอับเดทส่วนนี้มา งั้นขออธิบายรายละเอียดอีกก็แล้วกันครับ
DIGIDELAY มันเอาไว้หน่วงเวลาการส่งข้อมูลออกไป TNC ยีห้ออื่นอาจจะใช้คำว่า TIME SLOT ทางผมใช้คำว่า DIGIDELAY กลัวไปสับสนกับ Time Slot ของแทรกเกอร์ ก็เลยใช้คำที่มันชัด ๆ ในโหมดดิจิ เหตุที่ต้องมีคือ ถ้าดิจิรับข้อมูลมาพร้อมกัน ความเร็วทำงานเท่ากัน มันก็จะทวนหรือส่งออกไปพร้อมกัน ผลก็คือฆ่ากันตายหมู่กลางอากาศ(ทางวิทยุมักเรียกกันว่า คีย์ชนกัน) หลายท่านที่ตั้งดิจิได้ยินถึงกัน คงเจอปัญหานี้ ลองมายกตัวอย่างจากการแก้ไขปัญหาของ nTNC ดูดังต่อไปนี้

กรณีไม่ต้องดีเลย์(รับได้ส่งออกทันที)
สถานี HS5TQA-3 กำหนด DIGIDELAY=0
สถานี HS5TQA-4 กำหนด DIGIDELAY=0

ผลที่ได้ สถานี HS5TQA-3 และ HS5TQA-4 จะรับแพ็คเก็จมาพร้อมกัน ไม่มีดีเลย์ ก็จะทวนออกไปพร้อมกัน ถ้าสัญญาณยิงถึงไอเก็ตทั้ง2สถานีนี้ หรือผู้รับสัญญาณรับได้ทั้งดิจิสองสถานีนี้ ก็จะได้ยินเสียงคีย์ทับกัน สัญญาณมั่ว ข้อมูลแพ็คเก็จจะรับไม่ได้

กรณีตั้งดีเลย์ไม่เท่ากัน(ยกตัวอย่างผ่านดิจิ 3สถานี TRACE3-3)
สถานี HS5TQA-3 กำหนด DIGIDELAY=0 (กำหนด 0 ไม่มีการหน่วงเวลา รับได้ส่งต่อทันที)
สถานี HS5TQA-4 กำหนด DIGIDELAY=2

เมื่อได้รับแพ็คเก็จนี้เข้ามา HS5TQA-7>APNN05,TRACE3-3:>Test DigiPeater  
1.ทั้ง 2สถานีจะได้รับข้อมูลข้างต้นเดียวกัน
2.สถานี HS5TQA-3 ไม่ถูกหน่วงหรือหน่วงเวลาน้อยกว่า จึงส่งข้อมูลออกไปก่อนได้ HS5TQA-7>APNN05,HS5TQA-3*,TRACE3-2:>Test DigiPeater
3.สถานี HS5TQA-4 จากที่รอหน่วงเวลา 0-2วินาทีที่มากกว่าสถานีแรก ได้รับแพ็คเก็จเข้ามาใหม่ตามข้อ 2 จึงหน่วงแล้วส่ง HS5TQA-7>APNN05,HS5TQA-3*,HS5TQA-4*,TRACE3-1:>Test DigiPeater
4.สถานี HS5TQA-3 จะได้รับแพ็คเก็จใหม่จาก HS5TQA-4 ในข้อ 3 มันจะไม่ทวน TRACE3-1 ต่อเนื่องจากที่มันพบ HS5TQA-3* ที่บอกว่าสถานีตัวเองได้ทวนไปแล้ว(ป้องกันลูปทวนดิจิ)

กรณีตั้งดีเลย์ไม่เท่ากัน(ยกตัวอย่างผ่านดิจิ 1สถานี WIDE1-1)
สถานี HS5TQA-3 กำหนด DIGIDELAY=5 (กำหนดสูงสุด 5วินาที สมมุติมันสุ่มค่าหน่วงเวลาได้ 1วินาที)
สถานี HS5TQA-4 กำหนด DIGIDELAY=2 (กำหนดสูงสุด 2วินาที สมมุติมันสุ่มค่าหน่วงเวลาได้ 1.5วินาที)

เมื่อได้รับแพ็คเก็จนี้เข้ามา HS5TQA-7>APNN05,WIDE1-1:>Test DigiPeater 
1.ทั้ง 2สถานีจะได้รับข้อมูลข้างต้นเดียวกัน
2.สถานี HS5TQA-3 สมมุติมันสุ่มค่าหน่วงเวลาได้ 1วินาทีหน่วงเวลาน้อยกว่า จึงส่งข้อมูลออกไปก่อนได้ HS5TQA-7>APNN05,HS5TQA-3*:>Test DigiPeater
3.สถานี HS5TQA-4 จากที่รอหน่วงเวลา 1.5วินาทีที่มากกว่าสถานีแรก จึงได้รับแพ็คเก็จเข้ามาใหม่ตามข้อ 2 แต่เส้นทางส่งต่อมันสิ้นสุดลงไปแล้ว จึงไม่มีการทวนต่อ เสมือนกับสถานีนี้ไม่ทำงานเพราะไม่เห็นเอาท์พุท(ถ้ากำหนด TNC ON จะเห็นมันพ่นแพ็คเก็จในข้อ 2 ออกมาให้เห็น)

กรณีบังคับส่งต่อตามเส้นทาง
สถานี HS5TQA-3 กำหนด DIGIDELAY=5 (กำหนดสูงสุด 5วินาที สมมุติมันสุ่มค่าหน่วงเวลาได้ 1วินาที)
สถานี HS5TQA-4 กำหนด DIGIDELAY=2 (กำหนดสูงสุด 2วินาที สมมุติมันสุ่มค่าหน่วงเวลาได้ 1.5วินาที)

เมื่อได้รับแพ็คเก็จนี้เข้ามา HS5TQA-7>APNN05,HS5TQA-4,HS5TQA-3:>Test DigiPeater
1.ทั้ง 2สถานีจะได้รับข้อมูลข้างต้นเดียวกัน
2.แม้ว่าสถานี HS5TQA-3 จะสุ่มหน่วงเวลาน้อยกว่าหรือไม่หน่วงเลย มันจะยังไม่ทวนเพราะพบพาธที่จะทวนคือ HS5TQA-4 ซึ่งไม่ใช่สถานีตัวเองที่ต้องทวน
3.สถานี HS5TQA-4 พบว่าสถานีตนเองต้องทวน จึงทวนข้อมูลออกไปซึ่งก็จะหน่วงเวลา 1.5วินาทีแล้วทวนข้อมูล HS5TQA-7>APNN05,HS5TQA-4*,HS5TQA-3:>Test DigiPeater
4.เมื่อสถานี HS5TQA-3 รับได้จากข้อ 3 เป็นลำดับสถานีตนเองที่ต้องทวน จึงทวนออกไปโดยหน่วงเวลาตามที่สุ่มค่าใหม่ได้ HS5TQA-7>APNN05,HS5TQA-4*,HS5TQA-3*:>Test DigiPeater
5.ถ้าสถานี HS5TQA-4 รับได้อีกหรือสถานีอื่น ๆ ก็จะไม่มีการทวนต่อแล้วเพราะเส้นทางในแพ็คเก็จสิ้นสุดลงแล้ว HS5TQA-7->HS5TQA-4->HS5TQA-3
จึงได้เส้นทางส่งต่อตามที่กำหนดในพาธแม้ว่าสถานีดิจิ แม้ว่าจะถูกตั้งดีเลย์ไว้มากกว่าหรือน้อยกว่าก็ตาม 

ดังนั้น การกำหนดใช้งาน DIGIDELAY ให้นำไปใช้ให้เหมาะสมกับพื้นที่ตั้งดิจิของท่าน เช่น ถ้าไม่มีสถานีดิจิพีทเตอร์อยู่เลย ก็สามารถใช้ DIGIDELAY=0 ได้ ถ้ามีมากกว่า 1สถานีก็ตั้งหน่วงเวลาให้เหมาะสมกับการทำงานในพื้นที่นั้น ๆ สถานีที่ตั้งหน่วงไว้เวลานาน ๆ อาจดูเหมือนมันไม่ทำงานจากการมองที่ aprs.fi แต่แท้ที่จริงแล้วมันทำงานอยู่เสมอ สามารถแสดงผลการทำงานได้โดยตั้ง LOG ON ซึ่งมันจะส่ง Telemetry เป็นปริมาณการรับและส่งออกมาให้ทราบจากสถานีดิจินั้น ๆ และการตั้งสถานีดิจิพีทเตอร์นั้น ไม่ได้ไร้ประโยชน์ใด ๆ เพียงแต่ส่วนใหญ่ใช้มันเพียงแค่ส่งต่อให้ถึงสถานีไอเก็ตเท่านั้น เราจึงเห็นประโยชน์มันเพียงเท่านี้

ข้อสังเกตุ
-ในตัวข้อมูลแพ็คเก็จ TNC2-Monitor ถ้าข้อมูลผ่านสถานีใดมาแล้วมันจะใส่เครื่องหมาย * ตามหลัง
-DIGIDELAY หน่วยเป็นวินาที เป็นค่าสุ่มสูงสุดเช่นกำหนดเท่ากับ 5 จะหมายถึงเป็นค่าสุ่ม 0-5วินาที (ไม่ใช่หน่วง 5วินาที)
-การใช้ชื่อสถานีนามเรียกขานเดียวกันแต่ SSID ต่างกัน จะถือว่าเป็นคนละชื่อหรือต่างสถานีกัน
บันทึกการเข้า
HAMSIAM.COM # NO.1 HAM COMMUNITY OF THAILAND
   

 บันทึกการเข้า
หน้า: 1 ... 36 37 [38] 39 40
  พิมพ์  


 
กระโดดไป:  

ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ�
ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ� ŧ��ɳ�


Webmaster Earn Money! By Affiliate Program 100% Pay
www.samuismile.com

Powered by MySQL Powered by PHP Powered by SMF | SMF © 2006-2009, Simple Machines
Valid XHTML 1.0! Valid CSS!