Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

76 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ATP_re - ๅˆ—่ปŠ่‡ชๅ‹•้˜ฒ่ญท็ณป็ตฑๅˆ†ๆžๅนณๅฐ

Project Status Java Python License

ATP (Automatic Train Protection) ่กŒ่ปŠ็ด€้Œ„ๅˆ†ๆž็ณป็ตฑ - ็”จๆ–ผ่งฃๆžใ€ๅˆ†ๆžๅ’Œ่ฆ–่ฆบๅŒ–้ต่ทฏ ATP ็ณป็ตฑ็”ข็”Ÿ็š„่กŒ่ปŠ่จ˜้Œ„่ณ‡ๆ–™ใ€‚


๐ŸŽฏ ๅฐˆๆกˆๆฆ‚่ฟฐ

ATP_re ๆ˜ฏไธ€ๅ€‹ๅฎŒๆ•ด็š„้ต่ทฏ ATP ็ณป็ตฑ่ณ‡ๆ–™ๅˆ†ๆž่ˆ‡็ฎก็†ๅทฅไฝœ็ซ™่ปŸ้ซ”๏ผŒๆไพ›๏ผš

  • ๐Ÿ“ ่ณ‡ๆ–™ๆ”ถ้›†่ˆ‡่งฃ็ขผ๏ผš่งฃๆž RU๏ผˆRecording Unit๏ผ‰ๅ’Œ MMI๏ผˆMan-Machine Interface๏ผ‰ๆช”ๆกˆ
  • ๐Ÿ“Š ๅคš็ถญๅบฆๅˆ†ๆž๏ผš้€Ÿๅบฆๆ›ฒ็ทšใ€ไบ‹ไปถๅˆ†ๆžใ€ๅœ่ปŠ็ฒพๆบ–ๅบฆใ€็ต„ๅ“ก่€ƒๆ ธ
  • ๐Ÿ“ˆ ่ฆ–่ฆบๅŒ–ๅฑ•็คบ๏ผšไบ’ๅ‹•ๅผๅœ–่กจใ€ๆ™‚้–“/่ท้›ข้›™่ปธ้กฏ็คบใ€ไบ‹ไปถๆจ™่จ˜
  • ๐Ÿ“‹ ๅ ฑ่กจ็”ขๅ‡บ๏ผš็ต„ๅ“ก่€ƒๆ ธๅ ฑ่กจใ€็•ฐๅธธไบ‹ไปถๆธ…ๅ–ฎใ€็ตฑ่จˆๆ‘˜่ฆ
  • ๐Ÿ” ๅณๆ™‚็›ฃๆŽง๏ผšFTP ็›ฃๆŽงใ€่งฃ็ขผ้€ฒๅบฆใ€็ณป็ตฑ็‹€ๆ…‹

ๅฐˆๆกˆ่ฆๆจก

  • ็จ‹ๅผ็ขผๆช”ๆกˆ๏ผš 514 ๅ€‹ Java ๆช”ๆกˆ
  • ็จ‹ๅผ็ขผ่กŒๆ•ธ๏ผš ็ด„ 50,000 ่กŒ
  • ้–‹็™ผๆ™‚้–“๏ผš 2004-2012 ๅนด๏ผˆ8ๅนด๏ผ‰
  • ้–‹็™ผๅป ๅ•†๏ผš MiTAC Inc๏ผˆ็ฅž้€š้›ป่…ฆ๏ผ‰

๐Ÿ“ ๅฐˆๆกˆ็ตๆง‹

ATP_re/
โ”œโ”€โ”€ docs/                    # ๐Ÿ“š ๆ‰€ๆœ‰ๅฐˆๆกˆๆ–‡ไปถ
โ”‚   โ”œโ”€โ”€ 00_Project_Summary.md
โ”‚   โ”œโ”€โ”€ EXECUTIVE_SUMMARY.md
โ”‚   โ”œโ”€โ”€ QUICK_START.md
โ”‚   โ”œโ”€โ”€ ROADMAP.md
โ”‚   โ”œโ”€โ”€ *_Analysis.md       # ๅ„ๆจก็ต„ๅˆ†ๆžๆ–‡ไปถ
โ”‚   โ””โ”€โ”€ issues/             # ่ญฐ้กŒ่ฟฝ่นค
โ”œโ”€โ”€ src/                     # ๐Ÿ’ป ๆ‰€ๆœ‰ๅŽŸๅง‹็ขผ
โ”‚   โ”œโ”€โ”€ Tools_re/           # ๅทฅๅ…ท้›†ๅˆๅฑค
โ”‚   โ”œโ”€โ”€ connect_re/         # ่ณ‡ๆ–™ๅญ˜ๅ–ๅฑค
โ”‚   โ”œโ”€โ”€ core_re/            # ๆ ธๅฟƒ่ณ‡ๆ–™ๆจกๅž‹ๅฑค
โ”‚   โ”œโ”€โ”€ decode_re/          # ๅŸบ็คŽ่งฃ็ขผๅฑค
โ”‚   โ”œโ”€โ”€ decoder_re/         # ้€ฒ้šŽ่งฃ็ขผๅผ•ๆ“Ž
โ”‚   โ”œโ”€โ”€ drawGraphics_re/    # ๅœ–ๅฝข็นช่ฃฝๅฑค
โ”‚   โ”œโ”€โ”€ ui_re/              # ไฝฟ็”จ่€…ไป‹้ขๅฑค
โ”‚   โ””โ”€โ”€ com/                # Java package ็ตๆง‹
โ”œโ”€โ”€ .github/                 # GitHub Actions ๅ’Œ workflows
โ”œโ”€โ”€ README.md               # ๆœฌๆ–‡ไปถ
โ””โ”€โ”€ .gitignore              # Git ๅฟฝ็•ฅ่ฆๅ‰‡

๐Ÿ“– ๆƒณไบ†่งฃๆ›ดๅคš้—œๆ–ผๅฐˆๆกˆ็ตๆง‹๏ผŸ ่ซ‹ๅƒ้–ฑ REPOSITORY_STRUCTURE.md ไบ†่งฃ่ฉณ็ดฐ็š„่ณ‡ๆ–™ๅคพ็ต„็น”่ˆ‡ๆ–‡ไปถ่ชชๆ˜Žใ€‚


๐Ÿ“š ๆ–‡ไปถๅฐŽ่ฆฝ

ๆ นๆ“šไฝ ็š„่ง’่‰ฒ้ธๆ“‡้ฉๅˆ็š„ๆ–‡ไปถ๏ผš

๐Ÿข ็ฎก็†ๅฑค / ๆฑบ็ญ–่€…

ๅพž้€™่ฃก้–‹ๅง‹๏ผš EXECUTIVE_SUMMARY.md

  • ๆŠ•่ณ‡ๅ›žๅ ฑๅˆ†ๆž๏ผˆROI๏ผ‰
  • ้ขจ้šช่ฉ•ไผฐ
  • ่ณ‡ๆบ้œ€ๆฑ‚
  • ๆ™‚็จ‹่ฆๅŠƒๆฆ‚่ฆฝ
  • ๆฑบ็ญ–ๅปบ่ญฐ

๐Ÿ‘จโ€๐Ÿ’ป ้–‹็™ผ่€… / ๆŠ€่ก“ไบบๅ“ก

ๅพž้€™่ฃก้–‹ๅง‹๏ผš QUICK_START.md

  • ๅฟซ้€Ÿๅ…ฅ้–€ๆŒ‡ๅ—
  • ๅฆ‚ไฝ•ๅƒ่ˆ‡้–‹็™ผ
  • ็’ฐๅขƒ่จญๅฎš
  • ๅธธ่ฆ‹ๅ•้กŒ

ๆทฑๅ…ฅไบ†่งฃ๏ผš ROADMAP.md

  • ๅฎŒๆ•ด็š„ 18 ๅ€‹ๆœˆ้–‹็™ผ่ทฏ็ทšๅœ–
  • 8 ๅ€‹้šŽๆฎต่ฉณ็ดฐ่ฆๅŠƒ
  • ๆŠ€่ก“้ธๅž‹่ˆ‡ๆžถๆง‹่จญ่จˆ
  • ๆธฌ่ฉฆ็ญ–็•ฅ่ˆ‡ๅ“่ณชๆจ™ๆบ–

API ๅƒ่€ƒ๏ผš docs/API_DOCUMENTATION.md

  • ่งฃ็ขผๅ™จ API ่ฉณ็ดฐ่ชชๆ˜Ž
  • ่ณ‡ๆ–™ๆจกๅž‹ API
  • ๅทฅๅ…ท้กž API
  • ็จ‹ๅผ็ขผ็ฏ„ไพ‹

ๆธฌ่ฉฆๆŒ‡ๅ—๏ผš docs/TESTING_GUIDE.md

  • ๆธฌ่ฉฆ็ญ–็•ฅ่ˆ‡ๆ–นๆณ•
  • ๅ–ฎๅ…ƒๆธฌ่ฉฆ่ˆ‡ๆ•ดๅˆๆธฌ่ฉฆ
  • ๆธฌ่ฉฆ่ณ‡ๆ–™ๆบ–ๅ‚™
  • CI/CD ่จญๅฎš

๐Ÿ” ็ณป็ตฑๅˆ†ๆžๅธซ / ๆžถๆง‹ๅธซ

ๅพž้€™่ฃก้–‹ๅง‹๏ผš 00_Project_Summary.md

  • ็ณป็ตฑๆžถๆง‹็ธฝ่ฆฝ
  • ๅ„ๆจก็ต„ๅŠŸ่ƒฝ่ชชๆ˜Ž
  • ๆŠ€่ก“ๆฃงๅˆ†ๆž
  • ๆ”น้€ฒๅปบ่ญฐ

ๆทฑๅ…ฅไบ†่งฃ๏ผš

๐Ÿ‘ฅ ไฝฟ็”จ่€… / ็ถญ้‹ไบบๅ“ก

ไฝฟ็”จ่€…ๆ‰‹ๅ†Š๏ผš docs/USER_MANUAL.md

  • ็ณป็ตฑๅฎ‰่ฃ่ˆ‡่จญๅฎš
  • ๅŸบๆœฌๆ“ไฝœ่ชชๆ˜Ž
  • ๅŠŸ่ƒฝๆจก็ต„ไฝฟ็”จ
  • ๅธธ่ฆ‹ๅ•้กŒ่งฃ็ญ”

้ƒจ็ฝฒๆŒ‡ๅ—๏ผš docs/DEPLOYMENT_GUIDE.md

  • Windows ้ƒจ็ฝฒๆญฅ้ฉŸ
  • macOS ้ƒจ็ฝฒๆญฅ้ฉŸ
  • ่ณ‡ๆ–™ๅบซ่จญๅฎš
  • ๆ•ˆ่ƒฝ่ชฟๆ ก

ๆ•…้šœๆŽ’้™ค๏ผš docs/TROUBLESHOOTING.md

  • ๅธธ่ฆ‹ๅ•้กŒ่จบๆ–ท
  • ้Œฏ่ชคไปฃ็ขผๅฐ็…ง
  • ๆ—ฅ่ชŒๅˆ†ๆž
  • ๆŠ€่ก“ๆ”ฏๆด่ฏ็ตก

๐Ÿš€ ๅฐˆๆกˆ็‹€ๆ…‹

็•ถๅ‰้šŽๆฎต๏ผš่ฆๅŠƒๅฎŒๆˆ๏ผŒๆบ–ๅ‚™้–‹ๅง‹้‡ๆง‹

โœ… ๅทฒๅฎŒๆˆ
โ”œโ”€ ๅฎŒๆ•ด็š„ Java ็จ‹ๅผ็ขผๅˆ†ๆž๏ผˆ7ไปฝๅˆ†ๆžๅ ฑๅ‘Š๏ผ‰
โ”œโ”€ RU ่งฃ็ขผๅ™จ่ฆๆ ผไฟฎๆญฃ๏ผˆ็ฌฆๅˆ v1.8 ่ฆๆ ผ๏ผ‰
โ”œโ”€ ๅฎŒๆ•ดๆŠ€่ก“่ฆๆ ผๆ›ธ๏ผˆPython ้‡ๆง‹็‰ˆ๏ผ‰
โ””โ”€ 18 ๅ€‹ๆœˆ่ทฏ็ทšๅœ–่ฆๅŠƒ

๐Ÿ”„ ้€ฒ่กŒไธญ
โ””โ”€ ็ญ‰ๅพ…ๅฐˆๆกˆๆ‰นๅ‡†๏ผŒๆบ–ๅ‚™ๅ•Ÿๅ‹• Phase 1

โณ ๅพ…้–‹ๅง‹
โ”œโ”€ Phase 1: ็จ‹ๅผ็ขผๅ“่ณชๆ”นๅ–„๏ผˆ2-3้€ฑ๏ผ‰
โ”œโ”€ Phase 2: Python ้ท็งป่ฆๅŠƒ๏ผˆ1-2้€ฑ๏ผ‰
โ”œโ”€ Phase 3: ๆ ธๅฟƒ่งฃ็ขผๅ™จๅฏฆไฝœ๏ผˆ4-6้€ฑ๏ผ‰
โ”œโ”€ Phase 4: ๆธฌ่ฉฆๆก†ๆžถๅปบ็ซ‹๏ผˆ2-3้€ฑ๏ผ‰
โ”œโ”€ Phase 5: ่ณ‡ๆ–™ๆจกๅž‹่ˆ‡ API ่จญ่จˆ๏ผˆ3-4้€ฑ๏ผ‰
โ”œโ”€ Phase 6: ่ฆ–่ฆบๅŒ–ๅฑค๏ผˆ2-3้€ฑ๏ผ‰
โ”œโ”€ Phase 7: Web UI ้–‹็™ผ๏ผˆ3-4้€ฑ๏ผ‰
โ””โ”€ Phase 8: ้ƒจ็ฝฒ่ˆ‡ๆ–‡ไปถ๏ผˆ2้€ฑ๏ผ‰

้—œ้ต้‡Œ็จ‹็ข‘

ๆ™‚้–“้ปž ้‡Œ็จ‹็ข‘ ็‹€ๆ…‹
2025-10-29 ่ฆๅŠƒ้šŽๆฎตๅฎŒๆˆ โœ… ๅฎŒๆˆ
Month 1 ็จ‹ๅผ็ขผๅ“่ณชๆ”นๅ–„ๅฎŒๆˆ โณ ๅพ…้–‹ๅง‹
Month 3 ๆ ธๅฟƒ่งฃ็ขผๅ™จๅฎŒๆˆ โณ ๅพ…้–‹ๅง‹
Month 6 ่ณ‡ๆ–™ๅฑค่ˆ‡่ฆ–่ฆบๅŒ–ๅฎŒๆˆ โณ ๅพ…้–‹ๅง‹
Month 10 Web UI ๅฎŒๆˆ โณ ๅพ…้–‹ๅง‹
Month 12 ็ณป็ตฑไธŠ็ทš โณ ๅพ…้–‹ๅง‹
Month 18 ้€ฒ้šŽๅŠŸ่ƒฝๅฎŒๆˆ โณ ๅพ…้–‹ๅง‹

๐Ÿ—๏ธ ็ณป็ตฑๆžถๆง‹

็พๆœ‰ๆžถๆง‹๏ผˆJava๏ผ‰

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ui_re (ไฝฟ็”จ่€…ไป‹้ขๅฑค) - 310ๅ€‹ๆช”ๆกˆ           โ”‚
โ”‚  Swing GUI, ่ฆ–็ช—ใ€้ขๆฟใ€ๅฐ่ฉฑๆก†              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  drawGraphics_re (ๅœ–ๅฝข็นช่ฃฝๅฑค) - 16ๅ€‹ๆช”ๆกˆ    โ”‚
โ”‚  ๆ›ฒ็ทšใ€็›ดๆ–นๅœ–ใ€ๆ•…้šœ่จŠๆฏ่ฆ–่ฆบๅŒ–                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  decoder_re (้€ฒ้šŽ่งฃ็ขผๅฑค) - 34ๅ€‹ๆช”ๆกˆ         โ”‚
โ”‚  ไปปๅ‹™ไฝ‡ๅˆ—ใ€BTM/VDX/RU่งฃ็ขผใ€่ทฏๅดๅ”ๅฎš          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  decode_re (ๅŸบ็คŽ่งฃ็ขผๅฑค) - 9ๅ€‹ๆช”ๆกˆ           โ”‚
โ”‚  MMIๅฐๅŒ…่งฃๆžใ€่ณ‡ๆ–™ๅˆ†้กž                       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  core_re (ๆ ธๅฟƒ่ณ‡ๆ–™ๆจกๅž‹ๅฑค) - 12ๅ€‹ๆช”ๆกˆ        โ”‚
โ”‚  ATPไปปๅ‹™ใ€่ปŠ็ซ™ใ€ไฝฟ็”จ่€…็ญ‰่ณ‡ๆ–™็ตๆง‹             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็›ฎๆจ™ๆžถๆง‹๏ผˆPython๏ผ‰

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Web UI (FastAPI + React / Streamlit)      โ”‚
โ”‚  ็พไปฃๅŒ– Web ไป‹้ข๏ผŒ่ทจๅนณๅฐๅญ˜ๅ–                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  API Layer (FastAPI)                        โ”‚
โ”‚  RESTful API + WebSocket                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Business Logic (Python)                    โ”‚
โ”‚  ่ณ‡ๆ–™ๅˆ†ๆžใ€ไบ‹ไปถๅตๆธฌใ€็ตฑ่จˆ่จˆ็ฎ—                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Decoder Engine (Python + struct)          โ”‚
โ”‚  RU/MMI ่งฃ็ขผๅ™จใ€BTM ้‡็ต„ใ€ETCS ๅฐๅŒ…่งฃๆž     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Data Layer (SQLAlchemy + PostgreSQL)      โ”‚
โ”‚  ่ณ‡ๆ–™ๆจกๅž‹ใ€DAOใ€ๅฟซๅ–็ฎก็†                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š ็‚บไป€้บผ่ฆ้‡ๆง‹๏ผŸ

ๆŠ€่ก“ๅ‚ตๅ‹™

  • โŒ ่€่ˆŠๆŠ€่ก“ๆฃง๏ผˆJava Swing, 2004ๅนด๏ผ‰
  • โŒ ็จ‹ๅผ็ขผๅฏ่ฎ€ๆ€งๅทฎ๏ผˆๅ็ทจ่ญฏ็š„ๆททๆท†่ฎŠๆ•ธ๏ผ‰
  • โŒ ็ผบไน่‡ชๅ‹•ๅŒ–ๆธฌ่ฉฆ
  • โŒ ็ถญ่ญทๅ›ฐ้›ฃ๏ผŒๆ–ฐๅŠŸ่ƒฝ้–‹็™ผๆˆๆœฌ้ซ˜

้‡ๆง‹ๆ•ˆ็›Š

  • โœ… ็จ‹ๅผ็ขผ้‡ๆธ›ๅฐ‘ 80-90%๏ผˆ50,000 โ†’ 5,000-10,000 ่กŒ๏ผ‰
  • โœ… ่ทจๅนณๅฐ Web ๅญ˜ๅ–๏ผˆไธๅ†้™ๆ–ผ Windows ๆกŒ้ข๏ผ‰
  • โœ… ้–‹็™ผ้€Ÿๅบฆๆๅ‡ 3x๏ผˆ็พไปฃๅŒ–ๆก†ๆžถ๏ผ‰
  • โœ… ็ถญ่ญทๆˆๆœฌ้™ไฝŽ 60-70%
  • โœ… ๆ›ดๅผทๅคง็š„่ณ‡ๆ–™ๅˆ†ๆž่ƒฝๅŠ›๏ผˆpandas, numpy๏ผ‰

๐Ÿ› ๏ธ ๆŠ€่ก“ๆฃง

็พๆœ‰็ณป็ตฑ

  • ่ชž่จ€๏ผš Java 7-8
  • GUI๏ผš Swing
  • ่ณ‡ๆ–™ๅบซ๏ผš JDBC + SQL Server
  • ็ถฒ่ทฏ๏ผš ่‡ช่จ‚ FTP ๅฎขๆˆถ็ซฏ

็›ฎๆจ™็ณป็ตฑ

  • ่ชž่จ€๏ผš Python 3.11+
  • Web ๆก†ๆžถ๏ผš FastAPI
  • ๅ‰็ซฏ๏ผš Streamlit / React๏ผˆๅพ…ๆฑบๅฎš๏ผ‰
  • ่ณ‡ๆ–™ๅบซ๏ผš PostgreSQL + SQLAlchemy
  • ่ณ‡ๆ–™่™•็†๏ผš pandas, numpy
  • ่ฆ–่ฆบๅŒ–๏ผš Plotly, Matplotlib
  • ๆธฌ่ฉฆ๏ผš pytest
  • ้ƒจ็ฝฒ๏ผš Docker + Docker Compose

๐Ÿ‘ฅ ๅฆ‚ไฝ•ๅƒ่ˆ‡

้–‹็™ผ่€…

  1. ้–ฑ่ฎ€ๆ–‡ไปถ

  2. ้ธๆ“‡้šŽๆฎต

    • Phase 1: ๆ”นๅ–„ Java ็จ‹ๅผ็ขผ๏ผˆ้œ€่ฆ Java ็ถ“้ฉ—๏ผ‰
    • Phase 3: Python ่งฃ็ขผๅ™จ๏ผˆ้œ€่ฆ Python + ไบŒ้€ฒไฝ่™•็†๏ผ‰
    • Phase 7: Web UI๏ผˆ้œ€่ฆๅ‰็ซฏ็ถ“้ฉ—๏ผ‰
  3. ้–‹ๅง‹่ฒข็ป

    • Fork ๅฐˆๆกˆ
    • ้ธๆ“‡ไธ€ๅ€‹ Issue
    • ๆไบค Pull Request

็ฎก็†่€…

  1. ๅฏฉ้–ฑ่ฆๅŠƒ

  2. ๆฑบ็ญ–ๆ‰นๅ‡†

    • ็ขบ่ช่ณ‡ๆบ้…็ฝฎ
    • ๆ‰นๅ‡†้ ็ฎ—
    • ๆŒ‡ๆดพๅœ˜้šŠ
  3. ็›ฃๆŽง้€ฒๅบฆ

    • ๅฎšๆœŸๅฏฉๆŸฅ้‡Œ็จ‹็ข‘
    • ้ขจ้šช็ฎก็†
    • ๅ“่ณชๆŠŠ้—œ

๐Ÿ“ˆ ๆˆๅŠŸๆŒ‡ๆจ™๏ผˆKPIs๏ผ‰

ๆŠ€่ก“ๆŒ‡ๆจ™

  • ็จ‹ๅผ็ขผ่ฆ†่“‹็އ โ‰ฅ 80%๏ผˆๆ ธๅฟƒๆจก็ต„ โ‰ฅ 95%๏ผ‰
  • ๅฐ็…ง้ฉ—่ญ‰้€š้Ž็އ = 100%
  • API ๅ›žๆ‡‰ๆ™‚้–“ < 200ms๏ผˆP95๏ผ‰
  • ่งฃ็ขผ้€Ÿๅบฆ โ‰ฅ Java ็‰ˆๆœฌ

ๅ“่ณชๆŒ‡ๆจ™

  • Bug ๅฏ†ๅบฆ < 0.5 bugs/KLOC
  • ็จ‹ๅผ็ขผ้‡่ค‡็އ < 3%
  • ๅพช็’ฐ่ค‡้›œๅบฆ < 10

ๆฅญๅ‹™ๆŒ‡ๆจ™

  • ไฝฟ็”จ่€…ๆปฟๆ„ๅบฆ โ‰ฅ 4.0/5.0
  • ็ณป็ตฑๅฏ็”จๆ€ง โ‰ฅ 99.5%
  • ๅนณๅ‡ๆ•…้šœไฟฎๅพฉๆ™‚้–“ < 2 ๅฐๆ™‚

๐Ÿ“ž ่ฏ็ตก่ณ‡่จŠ

ๅฐˆๆกˆ่ฒ ่ฒฌไบบ

ๅฆ‚ไฝ•ๆๅ•

  1. ๅปบ็ซ‹ GitHub Issue
  2. ไฝฟ็”จ้ฉ็•ถ็š„ๆจ™็ฑค๏ผˆbug / feature / question๏ผ‰
  3. ๆไพ›่ฉณ็ดฐ็š„ๆ่ฟฐๅ’ŒไธŠไธ‹ๆ–‡

ๅฆ‚ไฝ•่ฒข็ป

  1. Fork ๅฐˆๆกˆ
  2. ๅปบ็ซ‹ๅŠŸ่ƒฝๅˆ†ๆ”ฏ (git checkout -b feature/AmazingFeature)
  3. ๆไบค่ฎŠๆ›ด (git commit -m 'Add some AmazingFeature')
  4. ๆŽจ้€ๅˆฐๅˆ†ๆ”ฏ (git push origin feature/AmazingFeature)
  5. ๅปบ็ซ‹ Pull Request

๐Ÿ“„ ๆŽˆๆฌŠ

ๆœฌๅฐˆๆกˆ็‚บๅฐˆๆœ‰่ปŸ้ซ”๏ผŒ็‰ˆๆฌŠๆ‰€ๆœ‰ใ€‚


๐Ÿ™ ่‡ด่ฌ

  • ๅŽŸๅง‹้–‹็™ผๅœ˜้šŠ๏ผš MiTAC Inc๏ผˆ็ฅž้€š้›ป่…ฆ๏ผŒ2004-2012๏ผ‰
  • ๅฐˆๆกˆๅˆ†ๆž่ˆ‡้‡ๆง‹่ฆๅŠƒ๏ผš Lawliet (2025)
  • ๆŠ€่ก“ๆ”ฏๆด๏ผš GitHub Copilot

๐Ÿ“š ็›ธ้—œ่ณ‡ๆบ

่ฆๆ ผๆ–‡ไปถ

  • ATPRU-LOGF-001 RU Log File Data Format v1.8
  • Interface Specification, ATPCU - MMI 3NSS003791D0106 v3.2
  • Recording Unit (RU) Requirement Specification 3NSS004830D0200 v1.2

ๆŠ€่ก“ๅƒ่€ƒ


Last Updated: 2025-10-29
Version: 1.0
Status: Planning Complete, Ready to Start ๐Ÿš€


่ฎ“ๆˆ‘ๅ€‘ไธ€่ตทๆ‰“้€ ๆ›ดๅฅฝ็š„ ATP ๅˆ†ๆž็ณป็ตฑ๏ผ

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages