Title: จีพีเอสติดตามรถ รุ่น TK-103 ทำไมเป็นอย่างนี้ !?!?! Post by: phanwit on August 22, 2011, 12:52:01 AM TK-103 GPS Tracker
บทความโดย จีพีเอส แผนที่ไทย.คอม บทความนี้กล่าวถึง การรับข้อมูลจากสัญญาณ GPRS Package ของจีพีเอสรุ่น TK-103 ที่ติดตั้งในรถยนต์ แล้วนำข้อมูลดังกล่าวมาประมวลผล หาตำแหน่ง ความเร็ว วันที่ เวลา ของรถ ด้วยการพัฒนาโปรแกรม เพื่อมุ่งเน้นความรู้ทางด้านจีพีเอสติดตาม และการพัฒนาโปรแกรม อาทิตย์ที่ผ่านมา ได้มีโอกาสจับสัญญาณ GPRS Package จากเครื่องจีพีเอสรุ่น TK-103 พร้อมพัฒนาโปรแกรมจัดการข้อมูลของรุ่นนี้ สำหรับลูกค้าที่ใช้งานรุ่นนี้อยู่ แต่ต้องการโปรแกรมจีพีเอสภาษาไทย TK-103 เป็นจีพีเอสติดตามรถยนต์ อีกรุ่นหนึ่งที่นิยมติดกัน เนื่องจากราคาถูก ติดตั้งสะดวก และมีขนาดเล็ก สามารถวางในตำแหน่งต่างๆ ในรถได้ง่าย โดยโรงงานที่ผลิตรุ่นนี้อยู่ในประเทศจีน คือ บริษัท Coban ก่อนหน้านี้ทางโรงงานมีรุ่น TK-101 ซึ่งตอนนี้ไม่ได้จำหน่ายแล้ว (หน้าตาก็ดูจะเหมือนกับทาง Xexun เช่นเดียวกับจีพีเอสรุ่นพกพา TK-102 เหมือนกันยังกับแกะ กล่องยังเหมือนเลยถ้าดูไม่ออก ส่วนใคร copy ใคร ขอไม่บอก) รูปของ TK-103 (http://forums.panteethai.com/images/gps/TK103B-GPS-Tracker.jpg) เข้าประเด็น! ภายหลังการจับ GPRS Package จากเครื่องทดสอบ Package ที่ได้จากเครื่อง TK-103 เป็นดังนี้ แบบที่ 1 ##,imei:353123456789012,A;imei:353123456789012,tracker,1108191611,,F,081109.000,A, 13XX.XXXX,N,100XX.XXXX,E,0.31,;##,imei:353123456789012,A;##,imei:353123456789012, แบบที่ 2 imei:353123456789012,tracker,1108191609,,F,080937.000,A,13XX.XXXX,N,100XX.XXXX,E, 0.11,;##,imei:353123456789012,A;##,imei:353123456789012,A;##,imei:353123456789012, หมายเหตุ: imei และตำแหน่งเป็นการสมมติ ทำไมต้องมี 2 แบบ ?!?! จริงๆแล้ว ตอนรับสัญญาณนั้น กล่องจีพีเอสส่งมามากกว่า 2 แบบที่แสดงข้างต้น โดยเป็นการสลับตำแหน่งของ imei ให้อยู่หัว หรือท้าย package โดยมาตรฐานควรจะมีแบบเดียว ในจีพีเอสติดรถยนต์บางรุ่น เช่น MVT340, MVT380 จะมี GPRS Communication Protocol ที่เหมือนกัน ทำให้ค่าต่างๆ อยู่ในตำแหน่งเดิมตลอดเวลา เช่น วันที่ เวลา ความเร็ว ละติจูด ลองติจูด หมายเลข imei เป็นต้น จากการส่ง Package หลายแบบข้างต้น คงทำให้บรรดาโปรแกรมเมอร์มือใหม่ ปวดหัวเป็นแน่แท้ เพราะเมื่อ Package ส่งข้อมูลไม่ตรงตำแหน่งเดิม ทำให้การตัด string หรือค่าที่ต้องการ ไปลงฐานข้อมูล (Database) ใช้ function ที่ระบุตำแหน่งแบบตายตัวไม่ได้ เช่น หมายเลข imei อยู่ตำแหน่งที่ 5 ถึง 20 ของ Package หรือ วันที่/เวลา อยู่ในตำแหน่งที่ 3 ของเครื่องหมาย Comma (,) เป็นต้น ทำให้เกิดโปรแกรมที่รับค่า Package ได้เฉพาะข้อมูล ที่มีรูปแบบเดียวกับ function ที่เขียน ส่งผลให้ข้อมูลขาดหาย ไม่ต่อเนื่อง (ช่วงที่หายไป คือ รูปแบบ package เปลี่ยน) แนวทางการแก้ไข 1. เขียน function หาตำแหน่งอักษร "A" ใน Package (A = Valid Package) 2. หาำตำแหน่งของ imei ใน Package ต่อ โดยหาเฉพาะที่ขึ้นต้นด้วย imei เท่านั้น ขึ้นต้นด้วย ## ไม่เอามาใช้ (ได้ค่า imei มาใช้สำหรับการเพิ่มข้อมูล ของจีพีเอสกล่องนี้เท่านั้น กล่องอื่นไม่เกี่ยว) 3. หาค่าต่างๆ ที่ต้องการ เช่น ละติจูด ลองติจูด ความเร็ว องศา โดยคำนวณตำแหน่งจาก ตัว "A" (ซึ่งค่าเหล่านี้ตำแหน่งจะไม่เปลี่ยนแปลง เมื่อเทียบกับ A) จากแนวทาง 3 ข้อ ข้างต้น ทำให้เราสามารถ ตัดข้อมูลเพื่อทำการ Insert ลงฐานข้อมูลได้แล้ว ต่อให้ Package มันส่ง หัวหรือท้าย เปลี่ยนไปอย่างไร เราก็จะได้ตำแหน่งของ "A" และ imei ที่แน่นอน ได้ข้อมูลจากทุก Package ที่ส่งจากกล่องลงฐานข้อมูลแล้วครับ แต่เรื่องยังไม่จบ ! ปัญหาใหม่ที่พบ คือ ความเร็ว (Speed) ความเร็ว ที่ได้จาก TK-103 ขณะที่รถจอดสนิท ไม่เป็นศูนย์ (0) จะมีเศษทศนิยม เช่น 0.31 ดัง Package แบบที่ 1 หรือในแบบที่ 2 คือ 0.11 มันย่อมเป็นปัญหาแน่นอน กล่าวดังนี้ คือ กรณีทีรถจอดสนิทแล้วความเร็วจากกล่องจีพีเอสไม่เป็นศูนย์ ทำให้รายงานระยะทาง หรือการคำนวณระยะทางรวม ผิดผลาด สิ่งที่พบ เมื่อทำการออกรายงานคำนวณระยะทาง พบว่า มีระยะทางเกิดขึ้น 3-8 กิโลเมตร จากการจอดรถใน 1 วัน (24 ชั่วโมง) แล้วจะแก้ไขยังไง ?!?! ในเบื้องต้น อาจจะทำการแก้ไขโปรแกรมในส่วน การคำนวณระยะทางรวม โดยการตัด Record ที่ความเร็ว น้อยกว่า 1กม./ชม. ออกไป ไม่ต้องคำนวณรวม แต่วิธีการข้างต้นไม่ได้เป็นการแก้ปัญหาที่ถูกต้อง เพราะอาจมีกรณีรถที่จอดหรือเคลื่อนตัวช้ากว่า 1กม./ชม. โดยเฉพาะรถติดจากการจราจรในกรุงเทพฯ ส่งผลให้ระยะทางรวมไม่ตรงตามความเป็นจริง แนวทางในการแก้ไข ในประเด็นนี้ คงต้องใช้การเพิ่ม function เข้ามาตรวจสอบและช่วยคำนวณ ่กล่าวคือ ตัด Record ที่ความเร็ว น้อยกว่า X โดย X ควรจะมีค่าไม่เกิน 0.5-1 กม./ชม. เพิ่ม function การคำนวณตำแหน่งจากค่า ละติจูด ลองติจูด จากจุดที่รถจอด หากไม่มีการเปลี่ยนแปลง หรือเปลี่ยนแปลงน้อยกว่า 1-10 เมตร ก็ไม่จำเป็นต้องนำ Record นั้นมาคำนวณร่วม เนื่องจากจีพีเอสรุ่น TK-103 นี้ ไม่มีการส่งค่าความเจือจางของสัญญาณดาวเทีียม (HDOP:Horizontal Dilution of precision) และำจำนวนดาวเทียมที่รับสัญญาณได้ จึงทำให้ไม่สามารถคัดกรอง Record ที่แม่นยำออกจาก Record อื่นๆได้ ในการแก้ไขปัญหาความเร็ว ขณะรถจอด จึงต้องเขียนโปรแกรมเพิ่มเติมดังกล่าว สรุปสิ่งที่พบจากการรับสัญญาณ GPRS Package ของจีพีเอส รุ่น TK-103 มี 2 ส่วนหลักๆ คือ รูปแบบ Package มีการเปลี่ยนแปลงตลอดการส่ง และความเร็ว (Speed) ของรถไม่เป็นศูนย์ขณะรถจอดนิ่ง ในส่วนของแนวทางการแก้ไข ประเด็นแรกสามารถแก้ไขได้สมบูรณ์ โปรแกรมสามารถรับข้อมูลได้ทุกรูปแบบของ Package แต่ประเด็นที่สอง ต้องเพิ่ม function ในการคัดกรองและคำนวณระยะทางเพิ่ม ซึ่งอาจจะได้ระยะทางที่คลาดเคลื่อนจากความเป็นจริงอยู่บ้่าง ก็ต้องเป็นหน้าที่ของโปรแกรมเมอร์ผู้พัฒนาโปรแกรมต่อไป...ทำไมเป็นอย่างนี้ !?!?! (http://forums.panteethai.com/images/gps/TK103B-GPS-Tracker-Close.jpg) Title: Re: จีพีเอสติดตามรถ รุ่น TK-103 ทำไมเป็นอย่างนี้ !?!?! Post by: Jumyut on August 22, 2011, 08:16:27 PM แค่อ่านก็ปวดหัวละครับ ไม่ถึงกับต้องเขียนโปรแกรมแก้โจทย์
Title: Re: จีพีเอสติดตามรถ รุ่น TK-103 ทำไมเป็นอย่างนี้ !?!?! Post by: phanwit on August 23, 2011, 12:39:04 PM แค่อ่านก็ปวดหัวละครับ ไม่ถึงกับต้องเขียนโปรแกรมแก้โจทย์ 555 :D :D :D ให้เปลี่ยนไปใช้รุ่นอื่นดีกว่าเขียนโปรแกรมเพิ่มใช่ไม๊ ครับ ปล. โชคดีที่ไม่ได้ขายรุ่นนี้น่ะ แต่ก็รับให้คำปรึกษาครับ Title: Re: จีพีเอสติดตามรถ รุ่น TK-103 ทำไมเป็นอย่างนี้ !?!?! Post by: underbkkz on September 12, 2011, 11:28:12 AM เปลื่ยนดีกว่าครับ อิอิ
Title: Re: จีพีเอสติดตามรถ รุ่น TK-103 ทำไมเป็นอย่างนี้ !?!?! Post by: wtulite on January 05, 2012, 10:17:02 AM เปลี่ยนเลยครับ
|