# แผนปรับกฎและทดสอบ D

แบบกรอกสำหรับการคัดข้อมูลสมมติ ไม่ใช่การควบคุมอากาศยาน สร้างโดย PK-Research (2026-10-11), CC BY 4.0: https://creativecommons.org/licenses/by/4.0/

ทำสำเนาก่อนกรอก ส่งข้อกำหนด อินเทอร์เฟซและแผนตรวจพร้อมผลคาดหวัง หากยังไม่สร้าง/รันระบบ ให้สถานะผลจริงเป็นยังไม่รัน ไม่คัดผลคาดหวังไปเป็นผลทดสอบ

## 1. Baseline และการเปลี่ยน

- กฎ v0 สมมติ: พิกัด x/y ครบจึงเป็น candidate ผลคาดหวัง 7 จุดยกเว้น P-E
- อธิบายว่ากฎนี้ผิด requirement ของผู้รับอย่างไร
- กฎ v1: ใช้เงื่อนไข README.md ครบ เปลี่ยนเฉพาะส่วนคัด ไม่แก้ต้นฉบับ
- บันทึกรุ่น input การตั้งค่า decision_time และผลก่อน/หลังที่คาดหวัง

## 1a. คู่มือ รุ่น และผลต่อมวล/สมดุล/พลังงาน

การเปลี่ยนในโจทย์นี้เป็นกฎซอฟต์แวร์คัดข้อมูลบน PC เท่านั้น ไม่มีอากาศยาน กล้อง ฐานยึดหรือแบตเตอรี่ที่เปลี่ยน ให้บันทึก **N/A พร้อมเหตุผล** สำหรับฮาร์ดแวร์ ไม่กรอกค่ามวล CG พลังงาน หรือคู่มืออากาศยานที่ไม่ได้ใช้

| รายการ | สถานะของโจทย์ปัจจุบัน | หากเสนอเปลี่ยนฮาร์ดแวร์ในงานถัดไป ต้องบันทึก |
|---|---|---|
| คู่มือและรุ่นชุด | N/A ไม่มีการต่อหรือเปลี่ยนฮาร์ดแวร์; ใช้รุ่นกฎ v0/v1 และข้อมูลฝึกแทน | ผู้ผลิต รุ่นอากาศยาน/payload/แบตเตอรี่ เฟิร์มแวร์ คู่มือฉบับ/วันที่/หน้า/ลิงก์ตรงชุดและวันตรวจ |
| มวลรวม | N/A ไม่มีมวลชุดอากาศยานเปลี่ยน | บัญชีชิ้นส่วนรวมฐาน/สาย มวลก่อน/หลัง วิธีวัด และขอบเขตตามคู่มือชุดจริง |
| CG/สมดุล | N/A ไม่มีตำแหน่งติดตั้งหรือ CG อากาศยานเปลี่ยน | กรอบอ้างอิง ตำแหน่งติดตั้ง CG ก่อน/หลัง วิธีตรวจและช่วงที่ผู้ผลิตกำหนด |
| พลังงาน | N/A ไม่มีผลวัดกำลังหรือพลังงานบินในโจทย์นี้ | รุ่นแบตเตอรี่/ข้อจำกัด งบพลังงานทุกช่วง ผลก่อน/หลังภายใต้เงื่อนไขตรงกันและแผนสำรอง |
| อินเทอร์เฟซที่ได้รับผล | ใช้กับ schema เวลา enum และ missing ของไฟล์; อินเทอร์เฟซกล/ไฟฟ้าเป็น N/A | ความเข้ากันได้กล/ไฟฟ้า/ข้อมูล/เวลา clearance และการรบกวนร่วมตามรุ่น พร้อมแผนตรวจ |

หากเปลี่ยนฮาร์ดแวร์จริง ห้ามคง N/A ในรายการที่ได้รับผล ค่าที่ยังไม่มีคู่มือหรือหลักฐานให้ลง “ยังไม่ทราบ” พร้อมผู้รับผิดชอบและวิธีตรวจ หยุดขั้นนั้นจนตรวจได้ ไม่ย้ายขีดจำกัดจากอุปกรณ์คนละรุ่นหรือแต่งผลทดสอบขึ้น การผ่านกฎคัดข้อมูลไม่ยืนยันความพร้อมอากาศยาน

## 2. ข้อกำหนดที่ตรวจได้

ทำตาราง requirement_id / ข้อกำหนด / กรณีตรวจ / ผลคาดหวัง / เงื่อนไขไม่ผ่าน ครอบคลุมรหัสและต้นฉบับครบ กฎคุณภาพ เหตุผลทุกข้อ ไม่เติมค่า และการตามกลับรุ่น/เวลา

## 3. บัญชีอินเทอร์เฟซและขอบเขตความเชื่อถือ

ทำตาราง input-output / รูปแบบ / หน่วย-frame / enum-missing / ข้อผิดพลาด / ผู้รับผิดชอบ:

- CSV UTF-8 หัวคอลัมน์ตรง starter-observations.csv
- เวลาเก็บ ISO 8601 พร้อม offset; ไม่มี offset ให้ error/hold ไม่เดาเขตเวลา
- x/y และ uncertainty เป็นจำนวนหน่วย m ใน local frame; ช่องว่างคือ missing
- verification เป็น verified/unverified, occluded เป็น yes/no; รหัสไม่ซ้ำ
- output เก็บข้อมูลเดิม อายุหรือ unknown ผล candidate/hold เหตุผลทุกข้อ งานถัดไป rule_version และ decision_time
- เนื้อหาตารางเป็นข้อมูลที่ต้องตรวจ ไม่ใช่คำสั่งรันโค้ดหรือส่งคำสั่งบิน การนำข้อความออก spreadsheet/HTML ในระบบจริงต้องไม่ทำให้กลายเป็นสูตรหรือโค้ด

## 4. แผนทดสอบ

ทำตาราง case_id / input หรือการเปลี่ยนเพียงค่าเดียว / expected / actual หรือยังไม่รัน / evidence / reviewer:

- แปดแถวเดิมต้องได้ P-A/P-B candidate และอีกหก hold ตามเหตุผลทั้งหมด
- อายุ 60 นาทีและ 60 นาที 1 วินาที; อายุ −1 วินาที; ไม่มีเวลา/offset
- x=0, x=320, x=321; y หาย; frame ไม่ตรง
- uncertainty=5 และ 5.1; verified/unverified; occluded=yes/no; enum แปลก; รหัสซ้ำ
- timestamp `2026-10-11T02:35:00Z` ต้องหมายถึงเวลาเดียวกับ obs-01 และได้อายุ 25 นาที
- ทุกรหัสอยู่ในผล ต้นฉบับไม่ถูกแก้ และผลไม่อ้างความปลอดภัยหรือการตรวจวัตถุแม่นยำ

## 5. ย้อนคืนและตรวจหลังคืน

- ผู้สั่งหยุดและ trigger เมื่อ candidate ผิด ข้อค้างหาย input ถูกแก้ หรือ error ไม่ชัด
- กั้นผลที่ไม่ผ่านไม่ให้ส่ง คืนกฎ/การตั้งค่า baseline หรือใช้ตรวจด้วยมือ
- baseline v0 ยังไม่ตอบ requirement ต้องติดรอตรวจและใช้ขั้นตอนตรวจด้วยมือก่อนส่ง
- ตรวจชุดเดิมซ้ำหลังคืน บันทึกรุ่น เหตุผล ผู้ตรวจและผลจริงแยกจากผลคาดหวัง

## 6. การรายงานและรับผิดชอบ

ระบุผลที่มีจริง ข้อที่ยังไม่ได้รัน ใครรับข้อค้าง และวิธีจัดสิทธิ์/ปิดบังหากเปลี่ยนเป็นข้อมูลจริง เก็บฉบับก่อน/หลังและรับข้อคัดค้านจากผู้ตรวจ

ใช้ rubric D ใน reader-rubrics.md เป้าหมาย KSEC: APP-D-K01, APP-D-S01, APP-D-E01, APP-D-C01
