ข้ามไปยังเนื้อหาหลัก
ผลงานทั้งหมด

งานลูกค้า·2026·เครื่องมือสำหรับนักพัฒนาและผู้ปฏิบัติงาน

NashGUI

เอกสารภาษาไทย ตัวสร้างสคริปต์ และตัวจำลอง สำหรับภาษา Nash ที่ใช้สั่งการสังเกตการณ์อัตโนมัติของ TNRT

NashGUI
บทบาท
นักพัฒนา 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

โจทย์และปัญหา

  1. 01การเขียนสคริปต์สแกนต้องอ้างอิงพารามิเตอร์ของคลาสใน TCS หลายสิบตัว ถ้าพิมพ์ผิดชนิดหรือช่วงค่า มักรู้ตอนสั่งงานจริง
  2. 02เอกสารที่เขียนด้วยมือล้าหลังซอร์สได้ง่าย และไม่มีภาษาไทย

วิธีแก้

  1. 01ดึงโครงสร้างพารามิเตอร์จากซอร์ส TCS ด้วย Python ast (ไม่รันไฟล์) เป็น schema.json แล้วสร้างหน้าอ้างอิง 31 คลาสอัตโนมัติ
  2. 02Scan Recipe Builder แบ่ง 6 กลุ่ม ตรวจค่าและเงื่อนไขตาม schema พรีวิวลายสแกน และสร้างโค้ด Python ให้
  3. 03Simulator จำลองไทม์ไลน์ ตรวจ interlock และขีดจำกัด Az/El พร้อมระบุระดับความจริงของแต่ละช่วง (REAL/APPROX/MOCK)
  4. 04นำเข้าแผนจาก AstroTrack3D ผ่านไฟล์ manifest ที่ตรวจด้วย SHA-256 แล้วคอมไพล์เป็นสคริปต์สแกน

ผลลัพธ์

  1. 01operator ตรวจสคริปต์ได้ก่อนส่งเข้าระบบ แทนการรู้ข้อผิดพลาดตอนสั่งงานจริง
  2. 02อัปเดตเอกสารตามซอร์สใหม่ได้ด้วยคำสั่งเดียว (npm run sync-all)
  3. 03ทุกหน้าอ้างอิงตรวจย้อนกลับไปยังคอมมิตต้นทางของ TCS ได้

สิ่งที่ส่งมอบ

  • เอกสารภาษาไทย 105 หน้า (Fumadocs)
  • Scan Recipe Builder พร้อมส่งออก Python และนำเข้า CSV
  • Simulator Timeline
  • ตัวนำเข้าแผนจาก AstroTrack3D
  • สคริปต์ sync เอกสารจากซอร์ส TCS

ทบทวนโปรเจกต์

ความท้าทาย

  • docstring กับโค้ดจริงบางจุดขัดกัน (เช่น priority ที่เขียนว่า float แต่จริงเป็น int) จึงเลือกแสดงค่าจากโค้ดจริงพร้อมคำอธิบายจุดที่ขัดกัน
  • ปลอดภัยโดยการออกแบบ: เป็นเครื่องมือฝั่งเบราว์เซอร์ เก็บไฟล์ใน localStorage ไม่เชื่อม TCS
  • ต้องไม่อ้างเกินความจริง: ตัวจำลองบอกชัดว่าส่วนไหนเป็นของจริง ประมาณ หรือจำลอง

สิ่งที่เรียนรู้

  • static analysis ช่วยให้เอกสารตรงกับโค้ดโดยไม่ต้องเขียนมือ
  • ออกแบบ UI ให้ผู้ปฏิบัติงานตรวจก่อนลงมือ ไม่ใช่รู้ทีหลัง
  • ทำงานกับซอร์สโอเพนของ NARIT (LGPL-2.1) และเคารพที่มาของข้อมูล

สนใจงานแนวนี้?

เล่าโจทย์ของคุณให้ผมฟัง ตอบกลับภายใน 24 ชั่วโมง

คุยเรื่องงาน