Undercut-F1 – TUI สำหรับไลฟ์ไทมิง F1 พร้อมการติดตามนักขับและการหน่วงเวลาแบบปรับได้
(github.com/JustAman62)- undercut-f1 เป็นไคลเอนต์ TUI โอเพนซอร์สที่บันทึกข้อมูลไลฟ์ไทมิงของเซสชัน F1 แบบเรียลไทม์เพื่อนำมาเล่นย้อนหลังภายหลังได้
- สามารถรับข้อมูลสตรีมแบบ SignalR เพื่อนำมาแสดงผล หรือรีเพลย์เซสชันที่บันทึกไว้ ได้
- มีฟีเจอร์อย่างทาวเวอร์ไทมิงรายนักขับแบบละเอียด, กลยุทธ์พิทสต็อป, ข้อความจาก race control, การวิเคราะห์กลยุทธ์, การติดตามตำแหน่งนักขับ, team radio และประวัติรายรอบ
- ข้อมูลถูกเก็บไว้ในเครื่อง จึงนำไปใช้เพื่อการพัฒนาและทดสอบได้ และรองรับโหมดจำลองด้วย
- แสดงผลแบบภาพด้วย terminal image protocol ของ iTerm2, Kitty และเทอร์มินัลอื่นที่รองรับ
แนะนำโปรเจกต์ undercut-f1
undercut-f1 คือ เครื่องมือโอเพนซอร์ส สำหรับแสดงผลข้อมูล F1 Live Timing ผ่าน TUI (terminal user interface) บน CLI
คุณสมบัติหลักมีดังนี้:
- แสดงข้อมูลเซสชัน F1 แบบเรียลไทม์ทั้งในเชิงภาพและข้อมูล
- ผู้ใช้สามารถบันทึกข้อมูลเซสชันด้วยตนเอง และนำมาเล่นซ้ำภายหลังได้
- มี ฟังก์ชันปรับค่าหน่วงเวลา โดยคำนึงถึงดีเลย์เฉลี่ยของการถ่ายทอด F1 (30~60 วินาที)
- เป็นแอป CLI บน
.NETใช้งานได้ทั้งในรูปแบบแพ็กเกจ NuGet หรือไฟล์รันเดี่ยว
ฟีเจอร์หลัก
-
ทาวเวอร์ไทมิง
- แสดงสถิติรายเซกเตอร์ (ระบุสีสำหรับเวลาที่ดีที่สุดส่วนตัว/ดีที่สุดรวม)
- เวลาในรอบล่าสุดและรอบที่ดีที่สุด
- ประเภทยางและเวลาที่ใช้งาน
- ช่องว่างเวลากับผู้นำและรถคันหน้า
- เปรียบเทียบช่องว่างเวลาระหว่างนักขับที่เลือกกับนักขับคนอื่น
-
ข้อมูลกลยุทธ์/สตินต์
- ดูกลยุทธ์ยางของนักขับแต่ละคนได้ในภาพรวมเดียว
- แสดงช่วงเวลาที่ใช้ยางแต่ละชุดและระยะเวลาการใช้งาน
- ช่วยให้เห็นความแตกต่างของกลยุทธ์ได้ง่าย
-
หน้าจอ race control
- ดูข้อความจาก race control เช่น การสอบสวนอย่างเป็นทางการ บทลงโทษ และข้อมูลสภาพอากาศ
-
ตัวติดตามนักขับ
- แสดงตำแหน่งบนแทร็กของนักขับที่เลือกแบบเรียลไทม์
- ใช้งานได้บนเทอร์มินัลที่รองรับ image protocol ของ iTerm2 และ Kitty
- เลือกและเปรียบเทียบนักขับได้ผ่านเคอร์เซอร์
-
ประวัติไทมิง
- ตรวจสอบการเปลี่ยนแปลงของ gap/interval ในแต่ละรอบ
- มีกราฟแนวโน้มเวลาในรอบและช่องว่างจากผู้นำของ 15 รอบล่าสุด
-
ฟังและถอดเสียง team radio
- ใช้โมเดล Whisper เพื่อ ถอดเสียง team radio แบบ speech recognition ภายในเครื่อง
- คุณภาพขึ้นอยู่กับคุณภาพเสียงในวันนั้น และยังเปิดรับข้อเสนอเพื่อการปรับปรุง
การรันเซสชันและรีเพลย์
-
รันเซสชันสด
- รัน
undercutf1 - กด <kbd>S</kbd> เพื่อเข้าสู่หน้าจอเซสชัน
- กด <kbd>L</kbd> เพื่อเริ่มเซสชันสด
- กด <kbd>T</kbd> เพื่อดูทาวเวอร์ไทมิง
- ข้อมูลเซสชันจะถูกเก็บไว้ที่
~/undercut-f1/data/<session-name>และ สามารถนำไปใช้เล่นย้อนหลังได้ภายหลัง
- รัน
-
รีเพลย์เซสชันที่บันทึกไว้
- สามารถคัดลอกข้อมูลจากโฟลเดอร์
Sample Dataหรือดาวน์โหลดข้อมูลเซสชันทางการมาเพื่อรีเพลย์ได้ - กด <kbd>F</kbd> เพื่อเริ่มการจำลอง → เลือกเซสชัน → เข้าสู่ทาวเวอร์ไทมิง
- กด <kbd>N</kbd> เพื่อปรับเวลาหน่วงและเลื่อนดูได้รวดเร็ว
- สามารถคัดลอกข้อมูลจากโฟลเดอร์
-
ดาวน์โหลดข้อมูลเซสชัน
- ใช้คำสั่ง
undercutf1 import <year>เพื่อดูรายการเซสชันของปีนั้น - เลือกเซสชันเพื่อดาวน์โหลดและแปลงเก็บไว้ในเครื่อง → แล้วนำมาเล่นซ้ำได้
- ใช้คำสั่ง
ฟังก์ชันเคอร์เซอร์และการจัดการดีเลย์
- ในทุกหน้าจอ สามารถควบคุมเคอร์เซอร์ด้วยปุ่ม <kbd>▲</kbd>/<kbd>▼</kbd>
- ตัวอย่าง: เมื่อเลือกนักขับคนใดคนหนึ่ง จะสามารถแสดงช่องว่างเวลาโดยอิงจากนักขับคนนั้นได้
- กด <kbd>M</kbd>/<kbd>N</kbd> เพื่อ ปรับค่าหน่วงเวลาให้ซิงก์กับการถ่ายทอดสด
- หากกดพร้อม <kbd>Shift</kbd> จะปรับครั้งละ 30 วินาที
แหล่งข้อมูลและวิธีจัดเก็บ
- สตรีม F1 Live Timing ใช้ SignalR
- รับข้อมูลเรียลไทม์ผ่านการ subscribe หัวข้อ เช่น
TimingStats,TimingData,WeatherData,DriverList,RaceControlMessages,TeamRadioเป็นต้น
- ระหว่างเซสชัน ข้อมูลจะถูกบันทึกเป็น 2 ไฟล์ดังนี้:
subscribe.txt: ข้อมูลเริ่มต้นที่ได้รับตอน subscribelive.txt: ข้อมูลทั้งหมดที่รับแบบเรียลไทม์ระหว่างเซสชัน
ไลเซนส์
- โปรเจกต์นี้เป็น โปรเจกต์โอเพนซอร์สอย่างไม่เป็นทางการ และไม่มีความเกี่ยวข้องกับองค์กรทางการของ F1
- เครื่องหมายการค้า F1, FORMULA ONE และที่เกี่ยวข้อง เป็นทรัพย์สินของ Formula One Licensing B.V.
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News