เริ่มจากผลที่ผู้รับต้องใช้
ผู้ประสานค้นหาต้องได้ข้อมูลรุ่นที่ตรงแผนและยังไม่หมดอายุ พร้อมรายละเอียดที่พอให้จัดงานตรวจต่อ การลดขนาดข้อมูลช่วยลดเวลาในสูตร แต่ผู้รับอาจเสียบริบทที่จำเป็นต่อการค้นหา จึงต้องตกลงข้อมูลขั้นต่ำที่มีความหมายและวิธีทวนกับผู้รับก่อนเลือกชุดส่งข้อมูล การยอมรับของโปรแกรมและการรับของคนเป็นหลักฐานคนละขั้น
เลือก B อ่านโจทย์และเลือกชุด, O วางแผนทรัพยากร หรือ D ตรวจการเปลี่ยนและหลักฐาน ทั้งสามใช้ case เดียวกัน อ่านฐาน M07 ค้นหา และ M10 สื่อสาร ควบคู่ได้
ภาพ AI เพื่ออธิบายบริบทเท่านั้น ไม่ใช่อุปกรณ์ที่ใช้ใน fixture หรือหลักฐานความเข้ากันได้ เปิดภาพบริบทขนาดเต็ม
ฐาน การเปลี่ยน และสิ่งที่สูตรบอกได้
ทุกพารามิเตอร์เป็นข้อมูลแต่งรุ่น p4-toy-1 ใช้ bitrate สมมติ 256000 bit/s และเวลา serialization อุดมคติ = bytes × 8 ÷ bitrate DATA01 ขนาด 2 MiB คือ 2097152 bytes ได้ 65.536 s เมื่อข้อมูลมีอายุ 10 s อยู่แล้ว อายุเมื่อคำนวณถึงปลายทางเป็น 75.536 s เกิน deadline_age 30 s แต่ยังต่ำกว่า TTL 120 s จึงคาด deadline_missed
DATA02 สมมติข้อมูลเหลือ 128 KiB (131072 bytes) ได้ 4.096 s และอายุ 14.096 s จึง numeric_fit ตามแบบจำลองเท่านั้น ยังไม่พิสูจน์ว่ารายละเอียดมีความหมายเท่าเดิม DATA03 offline ต้องพัก แม้ nominal timing เท่าเดิม DATA04 ใช้ PLAN0 แทน PLAN1 ต้อง stale_plan DATA05 อายุเริ่ม 26 s ข้อมูล 128000 bytes ใช้ 4 s ถึงอายุ 30 s เท่ากับ TTL 30 ต้อง expired การเท่ากับ deadline อาจทัน แต่การเท่ากับ TTL หมดอายุแล้ว
DATA06 bitrate เป็น null ต้อง unknown ไม่เดาว่าเร็วพอ DATA07 คืนพารามิเตอร์ฐาน DATA01 ลำดับตัดสินคือ unknown → offline_hold → stale_plan → expired → deadline_missed → numeric_fit ทุกแถวเป็นกรณีอิสระ ไม่ใช่คิวหรือการเชื่อมต่อจริง สูตรไม่รวม overhead การรอคิว retry การประมวลผลและเวลาคนทวน จึงไม่แทนผลวัด latency
แหล่งและรุ่นพารามิเตอร์ทุกค่า: ผู้เขียนแต่งเพื่อการสอน 12 ตุลาคม 2569 ใน fixture.json รุ่น p4-toy-1 ไม่มีพารามิเตอร์จากผู้ผลิต ตัวเลขและผลคาดหวังในบทนี้เป็นการคำนวณอธิบาย ไม่ใช่ผลโปรแกรมที่รันแล้ว
บัญชีอินเทอร์เฟซและทรัพยากรที่ยังต้องขอ
เลื่อนตารางแนวนอนเพื่อดูทุกคอลัมน์ เมื่อโฟกัสตารางด้วยแป้นพิมพ์ ใช้ปุ่มลูกศรซ้ายหรือขวา
| ด้าน/ทรัพยากร | ข้อมูลฐาน → ข้อเสนอ | แหล่ง/ความไม่รู้ | บทบาทและการตรวจ |
|---|---|---|---|
| mechanical: mount/antenna enclosure | unknown → unknown | ยังไม่มีฮาร์ดแวร์ | D: ขอคู่มือก่อนพิจารณาชุดจริง |
| electrical: power/connector | unknown → unknown | ยังไม่มีฮาร์ดแวร์ | D: ไม่ทดลองต่อจากตัวเลขนี้ |
| data: payload/plan | 2097152 bytes;PLAN1 → 131072 bytes;PLAN1 | authored p4-toy-1 DATA01/DATA02 | B: ผู้รับทวนรายละเอียดที่ยังต้องใช้ |
| time: age/rate/deadline/TTL | 10;256000;30;120 → 10;256000;30;120 | authored p4-toy-1 seconds bits/s | D: ทวน DATA05 equality และ DATA06 unknown |
| connection: connected/receiver | true;receiver unknown → true;receiver unknown | authored boolean; NOT_CONFIRMED receiver | O: ทวน DATA03 และขอหลักฐานผู้รับจริง |
| mass_cg: total mass/CG | unknown → unknown | ไม่มีชุดจริง | D: ขอรายการครบและขอบรุ่น |
| energy: power/battery | unknown → unknown | ไม่มีการวัด | O: ขอ budget และแผนสำรอง |
| constraints: permissions/search QC | unknown → unknown | NOT_CONFIRMED / NOT_RUN | O: ผู้มีอำนาจทวนแผนและขอบเปิดเผย |
B/O/D ในตารางเป็นผู้รับผิดชอบงานฝึกที่เสนอ ยังไม่มีบุคคลจริงได้รับมอบหมาย owner_status=not_assigned ค่าที่ unknown ไม่ใช่ศูนย์ ต้องขอคู่มือรุ่น หลักฐานวัด วิธีตรวจหรือการยืนยันสิทธิ์จากผู้รับผิดชอบก่อนตัดสินใจเรื่องชุดจริง ไม่มีคลื่นวิทยุ เครือข่ายจริง พิกัดบุคคล ผลค้นพบ การยืนยันผู้รับหรือพื้นที่ clear; receipt NOT_CONFIRMED
ทำนายก่อนรัน แล้วตรวจหลักฐานก่อนสรุป
เลื่อนตารางแนวนอนเพื่อดูทุกคอลัมน์ เมื่อโฟกัสตารางด้วยแป้นพิมพ์ ใช้ปุ่มลูกศรซ้ายหรือขวา
| กรณี | disposition ที่คาดก่อนรัน | metrics ที่คาด |
|---|---|---|
| DATA01 | deadline_missed | {"serialization_s":65.536,"arrival_age_s":75.536} |
| DATA02 | numeric_fit | {"serialization_s":4.096,"arrival_age_s":14.096} |
| DATA03 | offline_hold | {"serialization_s":4.096,"arrival_age_s":14.096} |
| DATA04 | stale_plan | {"serialization_s":4.096,"arrival_age_s":14.096} |
| DATA05 | expired | {"serialization_s":4,"arrival_age_s":30} |
| DATA06 | unknown | {"serialization_s":null,"arrival_age_s":null} |
| DATA07 | deadline_missed | {"serialization_s":65.536,"arrival_age_s":75.536} |
ขอบที่ต้องเข้าใจ: arrival_age = deadline_age ยังทันเมื่อเงื่อนไขก่อนหน้าผ่าน; arrival_age >= TTL หมดอายุ; 0 bitrate ถูกปฏิเสธ; null bitrate เป็น unknown ขอบเหล่านี้เป็นกติกาสอน ไม่ใช่ operating envelope อ่าน test-plan ของ C02 และ สัญญาแลบทั้งหมด ก่อนใช้โปรแกรม
- เก็บ requirements, fixture และ script ฉบับฐาน พร้อมรุ่นและ SHA-256 ก่อนแก้ แฮชใช้เทียบ bytes ไม่ยืนยันตัวผู้เขียน
- จด expected และเหตุผลเลือกการเปลี่ยนก่อนรัน เก็บ raw stdout คำสั่ง เวลา Python version และ exit code ของงานตน
- เทียบ disposition และ metrics ทุกกรณีกับ expected แยกความผิดจากสูตรกับความผิดจาก input อย่าแก้ expected เพียงเพื่อให้ตรงผลจริง
- รัน input เดิมซ้ำและเทียบ output bytes จากนั้นคืนสำเนา fixture ฐาน เทียบ hash และรันใหม่ ทวนคู่ baseline/rollback โดยไม่นับ case_id
- เก็บ v0/v1 ใต้ outcome ID เดิมพร้อมคำทัก คำตอบ เหตุแก้และ retest ถ้ายังไม่รันให้ actual=NOT_RUN ไม่เติมค่าคาดหวังใน results.csv
หลักฐานผู้เขียน: host_calculation ผู้เขียนรัน Python 3.14.3 เมื่อ 12 ตุลาคม 2026 เวลา 16:20:43 UTC ตรวจตรง expected ทั้ง 17 กรณี รันซ้ำได้ output bytes เดิม และคู่คืนฐานทั้งสามตรงกัน อ่าน ผลดิบ, บันทึก host และแฮช และ ผลกรณีนี้ ผลผู้เขียนอยู่ในบันทึก host; สถานะเนื้อหาและงานค้างดู หน้าภาพรวม ส่วน hardware/flight/RF/field=NOT_RUN; permissions/receiver=NOT_CONFIRMED; learner=NOT_RUN การผ่าน numeric_fit ไม่รับรองความปลอดภัย กฎหมาย ความแม่นยำหรือการตรวจพบ ผลผู้เขียนไม่ใช่หลักฐานว่าผู้เรียนทำได้
ทำชิ้นงานตามบทบาทและทวน KSEC
K = Knowledge, S = Skills, E = Ethics, C = Character บันทึกสถานะราย ID เป็น NOT_RUN ก่อนเริ่ม แล้วใช้ meets / needs_revision / insufficient_evidence พร้อมเหตุและหลักฐานจริง เกณฑ์ผ่านต้องมีชิ้นงานตรงรหัสและตรวจได้ ไม่เฉลี่ยผล Ethics/Character ที่ขาดด้วยคะแนนคำนวณ ผู้เรียนต้องส่งใหม่ภายใต้ ID เดิมเมื่อหลักฐานไม่พอ
B: ผู้เริ่มต้น
ฐาน K: แยก UAV/UAS และผู้รับผลได้; ทวน พื้นฐาน แล้วระบุคน อุปกรณ์ ข้อมูลอย่างละหนึ่ง ฐาน S: อ่านหน่วยและแยกข้อสังเกตจากข้อสรุปได้; ทวน การสังเกต แล้วเขียนสิ่งที่รู้กับสิ่งที่รอ
ตรวจฐานก่อนเริ่ม: เขียนคำตอบฐาน K และตัวอย่างฐาน S อย่างละหนึ่งข้อ ถ้ายังทำไม่ได้ให้อ่านลิงก์เติมฐาน แล้วส่งคำตอบใหม่ก่อนทำงานบทบาทนี้
ทำ brief หนึ่งหน้า: ผู้รับ คำถาม ผลส่งมอบ เทียบฐานกับข้อเสนอด้วยเกณฑ์เดียวกัน และอธิบายว่าผลตัวเลขใดช่วยงานผู้รับหรือยังไม่ช่วย ใช้กรณี C02 เดียวกัน ไม่เปลี่ยนโจทย์เพื่อให้ผ่านโดยไม่บันทึก แก้ข้อความ “numeric_fit จึงส่งถึงทีมและพื้นที่ค้นครบ” พร้อมจำกัดข้อมูลบุคคลเท่าที่จำเป็น
เลื่อนตารางแนวนอนเพื่อดูทุกคอลัมน์ เมื่อโฟกัสตารางด้วยแป้นพิมพ์ ใช้ปุ่มลูกศรซ้ายหรือขวา
| รหัสผลลัพธ์ | KSEC | เกณฑ์ตรวจและหลักฐานที่ต้องเห็น | ชิ้นงานก่อน/หลัง |
|---|---|---|---|
| APP-C02-B-K01 | Knowledge | อธิบายโจทย์ผู้รับและเหตุเลือกฐาน/ข้อเสนอ พร้อมอย่างน้อยสองข้อจำกัดของแบบจำลอง | B-K-v0 → B-K-v1 ภายใต้ ID เดิม |
| APP-C02-B-S01 | Skills | คำนวณตัวอย่างหลักพร้อมหน่วย แล้วเลือกข้อเสนอหรือพักโดยอ้าง case_id และเกณฑ์ครบ | B-S-v0 → B-S-v1 ภายใต้ ID เดิม |
| APP-C02-B-E01 | Ethics | แก้ข้ออ้างเกินหลักฐานเฉพาะกรณี และระบุข้อมูลหรือสิทธิ์ที่ยังต้องขอ | B-E-v0 → B-E-v1 ภายใต้ ID เดิม |
| APP-C02-B-C01 | Character | เก็บ brief v0/v1 คำทัก คำตอบ เหตุแก้ ผู้รับผิดชอบที่ต้องมอบหมายและเงื่อนไขทวน | B-C-v0 → B-C-v1 ภายใต้ ID เดิม |
O: ผู้ปฏิบัติงาน/ผู้วางแผน
ฐาน K: รู้บทบาทผู้รับและผู้ตัดสินใจหยุด; ทวน mission brief แล้วระบุหน้าที่ในกรณีนี้ ฐาน S: ทำบัญชี requested/confirmed ได้; ทวน เลือกชุดและทรัพยากร แล้วเขียนคำขอทรัพยากรหนึ่งรายการ
ตรวจฐานก่อนเริ่ม: เขียนคำตอบฐาน K และตัวอย่างฐาน S อย่างละหนึ่งข้อ ถ้ายังทำไม่ได้ให้อ่านลิงก์เติมฐาน แล้วส่งคำตอบใหม่ก่อนทำงานบทบาทนี้
ทำแผนทรัพยากร: คน/ทักษะ เวลา เครื่องมือ พื้นที่เก็บ พลังงาน งบประมาณ สิทธิ์และแผนสำรอง ผูกแต่ละคำขอกับผู้ยืนยัน หลักฐานตอบรับ ข้อค้างและผลส่งมอบที่ผู้รับต้องใช้ ใช้กรณี C02 เดียวกัน ไม่เปลี่ยนโจทย์เพื่อให้ผ่านโดยไม่บันทึก ช่องชื่อผู้ปฏิบัติงานจริงยังเป็น not_assigned ห้ามถือชื่อบทบาทว่าได้รับการยืนยันแล้ว
เลื่อนตารางแนวนอนเพื่อดูทุกคอลัมน์ เมื่อโฟกัสตารางด้วยแป้นพิมพ์ ใช้ปุ่มลูกศรซ้ายหรือขวา
| รหัสผลลัพธ์ | KSEC | เกณฑ์ตรวจและหลักฐานที่ต้องเห็น | ชิ้นงานก่อน/หลัง |
|---|---|---|---|
| APP-C02-O-K01 | Knowledge | อธิบายผลกระทบการเปลี่ยนต่อเวลา ข้อมูล พลังงานและผู้รับ พร้อมแยกข้อมูลแต่งกับทรัพยากรจริง | O-K-v0 → O-K-v1 ภายใต้ ID เดิม |
| APP-C02-O-S01 | Skills | กรอก interface ledger และแผนทรัพยากรครบ รวมผู้รับผิดชอบในบทบาท requested/confirmed จุดพักและวิธีสำรอง | O-S-v0 → O-S-v1 ภายใต้ ID เดิม |
| APP-C02-O-E01 | Ethics | พักงานที่สิทธิ์/ความเข้ากันได้/ผู้รับยังไม่ยืนยัน และไม่เปลี่ยน numeric_fit เป็นอนุญาตปฏิบัติงาน | O-E-v0 → O-E-v1 ภายใต้ ID เดิม |
| APP-C02-O-C01 | Character | เก็บแผน v0/v1 เหตุแก้ ข้อทักและคำตอบ พร้อมรายการแจ้งผู้ใช้รุ่นเก่าและผู้รับผิดชอบข้อค้าง | O-C-v0 → O-C-v1 ภายใต้ ID เดิม |
D: ผู้พัฒนา/ผู้ปรับแต่ง
ฐาน K: รู้การเชื่อมระบบและผลการเปลี่ยนชิ้นส่วน; ทวน integration แล้วโยงการเปลี่ยนกับอินเทอร์เฟซสองด้าน ฐาน S: แยก expected/actual และทำสำเนาฐานได้; ทวน testing แล้วเขียนหนึ่งกรณี actual NOT_RUN ก่อนทดลอง
ตรวจฐานก่อนเริ่ม: เขียนคำตอบฐาน K และตัวอย่างฐาน S อย่างละหนึ่งข้อ ถ้ายังทำไม่ได้ให้อ่านลิงก์เติมฐาน แล้วส่งคำตอบใหม่ก่อนทำงานบทบาทนี้
ตรวจ contract และอินเทอร์เฟซ บันทึก expected ก่อนรัน เก็บรุ่น/แฮช/script/fixture/ผลดิบ ตรวจทุกกรณีของ case และ replay จาก input เดิม จากนั้นคืนสำเนาฐานและเทียบผล มี discrepancy log และแผนตรวจฮาร์ดแวร์แยก ใช้กรณี C02 เดียวกัน ไม่เปลี่ยนโจทย์เพื่อให้ผ่านโดยไม่บันทึก ผล host ของผู้เขียนเป็นตัวอย่างหลักฐาน ไม่ใช่ผลงานของผู้เรียน ต้องรันและบันทึกงานตนเองจึงประเมินทักษะได้
เลื่อนตารางแนวนอนเพื่อดูทุกคอลัมน์ เมื่อโฟกัสตารางด้วยแป้นพิมพ์ ใช้ปุ่มลูกศรซ้ายหรือขวา
| รหัสผลลัพธ์ | KSEC | เกณฑ์ตรวจและหลักฐานที่ต้องเห็น | ชิ้นงานก่อน/หลัง |
|---|---|---|---|
| APP-C02-D-K01 | Knowledge | อธิบายสูตร ขอบ ความหมาย null และอินเทอร์เฟซที่เปลี่ยน โดยไม่อ้างผลจากการปัดเลข | D-K-v0 → D-K-v1 ภายใต้ ID เดิม |
| APP-C02-D-S01 | Skills | แสดง expected/actual แยกกันพร้อม source/input hashes เวลา คำสั่ง exit และผล replay/rollback หรือคง NOT_RUN หากยังไม่รัน | D-S-v0 → D-S-v1 ภายใต้ ID เดิม |
| APP-C02-D-E01 | Ethics | เปิดเผยข้อจำกัด ไม่แต่ง actual/ผู้เรียน/ฮาร์ดแวร์ และปฏิเสธ fixture ผิดแทนการเติมค่าที่หาย | D-E-v0 → D-E-v1 ภายใต้ ID เดิม |
| APP-C02-D-C01 | Character | เก็บ change-record v0/v1 คำทัก คำตอบ เหตุแก้ ผล retest และหลักฐานคืนฐานภายใต้ outcome ID เดิม | D-C-v0 → D-C-v1 ภายใต้ ID เดิม |
CLO/PLO ยังเว้นว่าง pending_design ใช้ curriculum mapping และ บันทึก KSEC เชื่อมหลักฐาน ไม่รับรองหลักสูตรจากการมีรหัส
ดาวน์โหลดและงานถัดไป
- ข้อกำหนดและ rubric 12 รหัส
- บัญชี interfaces.csv
- บันทึกการเปลี่ยนและคืนฐาน
- แผนทดสอบพร้อม expected
- ผลจริง results.csv
- ขั้นตอนใช้งาน readme
ใช้ calculator.py, fixture.json, expected.csv และ readme แลบ ร่วมกัน โปรแกรมคำนวณเฉพาะในเครื่อง ไม่มี runtime เพิ่มบนเว็บไซต์
เริ่มจาก requirements ของบทบาทตนและกรอกข้อไม่รู้ใน interfaces ก่อนรัน กลับไป M07 ค้นหา และ M10 สื่อสาร เพื่อทวนการส่งผลให้ผู้รับ เกณฑ์ P3 ยัง pending_field_review; specialist=not_assigned ส่วน P5 เตรียมชุดลองใช้เท่านั้น ยังไม่มีผู้เรียนจริงและไม่กรอกผลแทนผู้เรียน CPX-Sim ยังพัก