# เฉลยอายุข้อมูล พร้อมเหตุผลและขอบเขต

แถวfixtureเป็นข้อมูลสังเคราะห์เดิม ส่วนclock/recheckเป็นตัวอย่างเลขที่ประกาศใหม่ ไม่มีผลบอร์ดหรือfirmwareรอบใหม่

## Q1 · รวมขอบเวลา

normal data_row1–3:0us fresh,20000us=20ms fresh,20001us=20.001ms stale เพราะเงื่อนไข<=รวมขอบ ส่วนต่าง1usเปลี่ยนstateของตัวอย่าง ไม่ใช่ค่าความแม่นยำclockที่วัดบนบอร์ด

## Q2 · clock เดียวและ unsigned wrap

ดูclock-answers.csv:C1/C4 age19999us=19.999ms fresh;C2/C5 age20000us=20.000ms fresh;C3/C6 age20001us=20.001ms stale ตัวอย่างC4–C6 stamp4294957296อยู่ก่อนUINT32 wrap10000us ดังนั้นnow9999/10000/10001ให้ผลตามข้างต้น ใช้mod2^32เฉพาะclockเดียว ไม่มีreset ช่วงจริงต่ำกว่า2^31us(<ประมาณ35.8นาที) ตัวเลขที่เห็นไม่พิสูจน์เงื่อนไขเหล่านี้และไม่ใช้อนุมานหลายwrap CSVเดิมมีtickwrapแต่ไม่มีrawtimestampจึงตรวจtimestampwrapจากCSVนั้นไม่ได้

## Q3 · สรุปเฉพาะแถวที่เห็น

|กรณี|fresh|stale|แถวstale (data_row)|
|---|---|---|---|
|normal|2|1|3|
|overflow|3|2|1,2|
|wrap|2|1|2|
|dropped|1|1|1|

รวม13แถว fresh8/stale5 ไม่มีqueue/loglossที่counterรายงานในnormal แต่ยังมีstale1 เพราะความเก่าไม่ใช่การปฏิเสธenqueueหรือส่งแถวไม่ได้ ผลรวมจำกัดเฉพาะแถวที่เห็น ไม่สรุปครบทั้งcapture

## Q4 · ข้ามงาน ไม่ใช่ไม่มีต้นทุน

staleทุกแถวมีwork0 เพราะข้ามLED task ยังคงมีpop/gate/จัดCSV/พยายามส่งSerial งานเหล่านั้นไม่รวมในwork_us freshก็ไม่ได้แปลว่างานทันงบ:overflow data_row4 tick4 work2500us=2.5ms เกินงบสอน2msอยู่0.5ms เกณฑ์อายุกับงบเวลางานเป็นคนละเงื่อนไข

## Q5 · เก่า เต็ม และส่งไม่ได้

staleคือpopแล้วอายุเกินขอบ จึงข้ามLEDแต่ยังพยายามส่งrow ไม่เพิ่มoverflow/droppedเพราะstaleเอง overflowคือenqueueถูกปฏิเสธ ส่วนdroppedคือส่งrowไม่ได้ อาจเป็นfreshหรือstaleก็ได้ overflow tick4→7:delta_tick3=delta_overflow2+delta_dropped0+1;dropped tick1→3:2=0+1+1 สมการตรวจความสอดคล้องตามschema ไม่ใช่หลักฐานcaptureครบ

## Q6 · แถวที่ไม่มีหลักฐาน

dropped data_row1–2เห็นtick1 staleและtick3 fresh พร้อมdroppedเพิ่ม1 แถวtick2ส่งไม่ได้แต่stateของtick2ไม่อยู่ในข้อมูล จึงตอบว่าไม่ทราบ จะเพิ่มfreshหรือstaleรวมจาก2แถวที่เห็นเป็น3แถวโดยเดาไม่ได้ Counterเป็นจำนวนrowที่ส่งไม่ได้ ไม่มีstateแยกตามจำนวนที่หาย

## Q7 · ตรวจใกล้จุดใช้

ตัวอย่างที่ประกาศ:stamp100000us ตรวจ119900us age19900us=19.9ms fresh ใช้120100us age20100us=20.1ms stale ความล่าช้าเพิ่ม200us=0.2msระหว่างทางทำให้ข้ามขอบ ต้องตรวจใหม่ใกล้จุดใช้เมื่อมีงานแทรกและกำหนดrequirementเวลาจริง ตัวอย่างนี้ไม่ใช่ผลวัดงานLEDหรือการทดสอบเฟิร์มแวร์

## Q8 · ตัดสินใจให้ตรงวัตถุประสงค์

กำหนดtimestampที่สะท้อนตอนเก็บเซนเซอร์ clock/session/resetและความสัมพันธ์กับเวลาที่ใช้จริง เลือกcutoffจากrequirementและค่าที่วัดโดยมีหลักฐาน เกณฑ์20msในบทเป็นเกณฑ์ฝึก callback ageไม่ใช่sensor acquisition ageหรือIRQ latency ต้องกำหนดพฤติกรรมเมื่อข้อมูลขาด/เก่าและทดสอบตามระบบจริง LEDเมื่อstaleคงค่าเดิม ไม่ใช่safe stateหรือactuator failsafe Gateนี้ไม่รับรองflight safety และHost testsไม่จำลองIRQ concurrency

## เกณฑ์ตรวจตนเองที่เสนอ

ข้อละ2(คำตอบ1+เหตุผล/หน่วย/ข้อจำกัด1)รวม16 Q1รวมขอบ,Q2หกผล/clockcontract,Q3ตาราง/ขอบแถว,Q4ส่วนงาน/งบ,Q5สามเหตุ/สองสมการ,Q6ไม่เดาstate,Q7สองอายุ/ตรวจใกล้ใช้,Q8requirement/timestamp/failsafe ใช้เลือกทบทวน ไม่ใช่การรับรองพร้อมบินหรือผลผู้เรียนจริง
