ผลงานทั้งหมด
งานลูกค้า·2026·เครื่องมือสำหรับนักพัฒนาและผู้ปฏิบัติงาน
NashGUI
เอกสารภาษาไทย ตัวสร้างสคริปต์ และตัวจำลอง สำหรับภาษา Nash ที่ใช้สั่งการสังเกตการณ์อัตโนมัติของ TNRT

- บทบาท
- นักพัฒนา Full-stack
- ลูกค้า
- NARIT — สถาบันวิจัยดาราศาสตร์แห่งชาติ (TNRT)
- ทีม
- พัฒนาให้ทีม TNRT/TNRO
- ระยะเวลา
- ส.ค. – ก.ย. 2026
- ปี
- 2026
ตัวเลขสำคัญ
- 159
- commits (29 ส.ค. – 22 ก.ย. 2026)
- 31 + 57
- คลาสพารามิเตอร์ + เมธอด live control
- 105
- หน้าเอกสารภาษาไทย
- 12
- ชนิดการสแกนที่รองรับ
- 141
- test cases
Nash คือภาษาสคริปต์ที่ใช้สั่งการสังเกตการณ์อัตโนมัติของกล้องโทรทรรศน์วิทยุ TNRT NashGUI รวมสามอย่างไว้ด้วยกัน ได้แก่ เอกสารภาษาไทย 105 หน้าที่สร้างจากซอร์ส TCS จริง ตัวสร้างสคริปต์ที่ตรวจค่าตามกฎของคลาสจริงแล้วส่งออกเป็น Python และตัวจำลองไทม์ไลน์ที่ตรวจ interlock ของเสาอากาศ โดยไม่เคยส่งคำสั่งไปยัง TCS
โจทย์และปัญหา
- 01การเขียนสคริปต์สแกนต้องอ้างอิงพารามิเตอร์ของคลาสใน TCS หลายสิบตัว ถ้าพิมพ์ผิดชนิดหรือช่วงค่า มักรู้ตอนสั่งงานจริง
- 02เอกสารที่เขียนด้วยมือล้าหลังซอร์สได้ง่าย และไม่มีภาษาไทย
วิธีแก้
- 01ดึงโครงสร้างพารามิเตอร์จากซอร์ส TCS ด้วย Python ast (ไม่รันไฟล์) เป็น schema.json แล้วสร้างหน้าอ้างอิง 31 คลาสอัตโนมัติ
- 02Scan Recipe Builder แบ่ง 6 กลุ่ม ตรวจค่าและเงื่อนไขตาม schema พรีวิวลายสแกน และสร้างโค้ด Python ให้
- 03Simulator จำลองไทม์ไลน์ ตรวจ interlock และขีดจำกัด Az/El พร้อมระบุระดับความจริงของแต่ละช่วง (REAL/APPROX/MOCK)
- 04นำเข้าแผนจาก AstroTrack3D ผ่านไฟล์ manifest ที่ตรวจด้วย SHA-256 แล้วคอมไพล์เป็นสคริปต์สแกน
ผลลัพธ์
- 01operator ตรวจสคริปต์ได้ก่อนส่งเข้าระบบ แทนการรู้ข้อผิดพลาดตอนสั่งงานจริง
- 02อัปเดตเอกสารตามซอร์สใหม่ได้ด้วยคำสั่งเดียว (npm run sync-all)
- 03ทุกหน้าอ้างอิงตรวจย้อนกลับไปยังคอมมิตต้นทางของ TCS ได้
สิ่งที่ส่งมอบ
- เอกสารภาษาไทย 105 หน้า (Fumadocs)
- Scan Recipe Builder พร้อมส่งออก Python และนำเข้า CSV
- Simulator Timeline
- ตัวนำเข้าแผนจาก AstroTrack3D
- สคริปต์ sync เอกสารจากซอร์ส TCS
แกลเลอรี
Main
16:9 / LG
Scan Recipe Builder: ประกอบสคริปต์สแกน 6 กลุ่ม ตรวจค่า พรีวิวลายสแกน และส่งออก Python

Simulator Timeline: จำลองการสแกนและตรวจ interlock ของเสาอากาศ
ทบทวนโปรเจกต์
ความท้าทาย
- docstring กับโค้ดจริงบางจุดขัดกัน (เช่น priority ที่เขียนว่า float แต่จริงเป็น int) จึงเลือกแสดงค่าจากโค้ดจริงพร้อมคำอธิบายจุดที่ขัดกัน
- ปลอดภัยโดยการออกแบบ: เป็นเครื่องมือฝั่งเบราว์เซอร์ เก็บไฟล์ใน localStorage ไม่เชื่อม TCS
- ต้องไม่อ้างเกินความจริง: ตัวจำลองบอกชัดว่าส่วนไหนเป็นของจริง ประมาณ หรือจำลอง
สิ่งที่เรียนรู้
- static analysis ช่วยให้เอกสารตรงกับโค้ดโดยไม่ต้องเขียนมือ
- ออกแบบ UI ให้ผู้ปฏิบัติงานตรวจก่อนลงมือ ไม่ใช่รู้ทีหลัง
- ทำงานกับซอร์สโอเพนของ NARIT (LGPL-2.1) และเคารพที่มาของข้อมูล
สนใจงานแนวนี้?
เล่าโจทย์ของคุณให้ผมฟัง ตอบกลับภายใน 24 ชั่วโมง