Skip to content

๐Ÿš— CAN์„ ์ด์šฉํ•œ ์ปค๋„ฅํ‹ฐ๋“œ์นด ํ†ต์‹  ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌ์ถ•

Notifications You must be signed in to change notification settings

QuartzzBlue/Hexacore_MiniProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

85 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CAN์„ ์ด์šฉํ•œ ์ปค๋„ฅํ‹ฐ๋“œ์นด ํ†ต์‹  ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌ์ถ•

๋ฉ€ํ‹ฐ์บ ํผ์Šค Hexacore ํŒ€ : ๊ฐ•๋™์šฑ ๊น€์—ฐ์ฃผ ๋ฐฑ๋Œ€ํ˜„ ์ด์Šฌ ์ „๊ตญํ˜„ ์ตœ์—ฌ์ง„

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ปค๋„ฅํ‹ฐ๋“œ์นด ํ†ต์‹  ๊ตฌ์ถ• ๋ฐ ์ฐจ๋Ÿ‰ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง, ์ œ์–ด ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ

2. ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ

stack

3. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

structure structure

4. ๊ธฐ๋Šฅ ๊ตฌํ˜„

1) AdminApp

  • ์ œ์–ดํ•  PAD ์˜ ID ,PAD ์— ์—ฐ๊ฒฐ๋œ ECU ์˜ ID, ์ œ์–ด์ž (0/1) ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  • ์ œ์–ด์ž๊ฐ€ 0/1 ์ผ ๋•Œ๋งŒ SEND๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด HTTP ํ†ต์‹ ์„ ํ†ตํ•ด Web Server ์— ์ ‘์†ํ•˜๊ณ  ์ž…๋ ฅ๋ฐ›์€ Data ๋ฅผ ์ „์†กํ•œ๋‹ค.
  • 0/1 ์ด ์•„๋‹Œ ์ œ์–ด์ž๋ฅผ ์ž…๋ ฅํ•˜๊ณ  SEND ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด โ€˜์œ ํšจํ•œ Controller๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”โ€™ โ€™Toast ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค.

2) Web Server

  • Pad ๋กœ ๋ถ€ํ„ฐ Data ๋ฐ›๊ธฐ a. PAD์—์„œ HTTPํ†ต์‹ ์„ ํ†ตํ•ด ๊ฐ ECU ๋“ค์˜ Data๋ฅผ Controller ์—์„œ ๋ฐ›๋Š”๋‹ค. b. ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค Firebase Cloud Messaging ๊ธฐ๋Šฅ์„ ํ†ตํ•ด App ์œผ๋กœ ๋ฐ›์€ Data ๋ฅผ ์ „์†กํ•œ๋‹ค. c. ํ™”๋ฉด์—์„œ โ€˜Receive from Padโ€™ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Ajax ๋ฅผ ์ด์šฉํ•ด ๋ฐ›์€ ECU๋“ค์˜ Data ๋ฅผ 1์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์š”์ฒญํ•œ๋‹ค. d. success ์‹œ PAD์˜ ID, ECU์˜ ID, ECU ID ์— ๋งž๋Š” Data ๋ฅผ ํ™”๋ฉด์— display ํ•œ๋‹ค.
  • Browser/App ๋ฅผ ์ด์šฉํ•œ ECU ์ œ์–ด a. ์ž…๋ ฅ๋ฐ›์€ PAD ์˜ ID, ECU ์˜ ID, ์ œ์–ด์ž (0/1) ์„ Msg ๊ฐ์ฒด์— ๋‹ด์•„ TCP/IP ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. b. ์ž…๋ ฅ๋ฐ›์€ PAD ์˜ ID, ECU ์˜ ID, ์ œ์–ด์ž (0/1) ์„ Firebase Cloud Messaging ๊ธฐ๋Šฅ์„ ํ†ตํ•ด PAD ๋กœ ์ „์†กํ•œ๋‹ค.
  • AWS ์— Spring ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ http://13.209.113.212:8080/AdminWeb/ ๋กœ ์›น์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

3) TCP/IP Server

  • Web Server์™€ ํ†ต์‹  Web Server์—์„œ Send ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Receiver Thread ๋‚ด์—์„œ TCP/IP Socket ํ†ต์‹ ์œผ๋กœ Web Server ์™€ ์—ฐ๊ฒฐ๋œ๋‹ค. Web Server์—์„œ ๋ฐ›์€ PAD ID,ECU ID์™€ ์ œ์–ด์ž๊ฐ’์„ msg ๊ฐ์ฒด์— ๋‹ด์•„ TabServer์— ์ „์†กํ•˜๋Š” ์ „๋‹ฌ์ž์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์‚ฌ์ „์— HashMap๊ฐ์ฒด์— ๋‹ด๊ธด TabServer์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ œ์–ดํ•˜๊ณ ์žํ•˜๋Š” TabServer์˜ IP๊ฐ€ HashMap ๊ฐ์ฒด์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด msg ๊ฐ์ฒด๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • TabServer์™€์˜ ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•  ์—ฌ๋Ÿฌ๋Œ€์˜ TabServer๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. TabServer๋Š” Local Client๋“ค์—๊ฒŒ๋Š” Server์—ญํ• ์„ ํ•˜์ง€๋งŒ TCP/IP Server์—๊ฒŒ๋Š” Client ์—ญํ• ์ด ๋œ๋‹ค. ์‹ค์ œ ๊ตฌํ˜„ ์‹œ์—๋Š” TabServer์˜ ๊ฐœ์ˆ˜๋Š” ์ˆ˜์‹ญ์—์„œ ์ˆ˜๋ฐฑ๊ฐœ ์ •๋„ ๋Š˜์–ด๋‚  ๊ฒƒ์ด๋ฉฐ ํ•ด๋‹นํ•˜๋Š” TabServer์˜ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ TCP/IP Server์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. HashMap<TabServerId,ObjectOutputStream>๊ฐ์ฒด์— ๋‹ด์•„์„œ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

4) TapServer

  • PAD ๋Š” ConnectThread๋ฅผ ํ†ตํ•ด HTTPํ†ต์‹ ์œผ๋กœ WebServer์™€ ์ ‘์†ํ•œ๋‹ค.
  • PAD ๋Š” RecieverThread์—์„œ ๊ฐ ECU ๋“ค์˜ data ๋ฅผ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค HTTPํ†ต์‹ ์„ ํ†ตํ•ด WebServer๋กœ ์ „์†กํ•œ๋‹ค.
  • START๋ฅผ ๋ˆ„๋ฅด๋ฉด msg๊ฐ์ฒด์˜ txt์š”์†Œ์— 1์„ ๋‹ด์•„ IoT๋กœ ๋ณด๋‚ธ๋‹ค.
  • STOP์„ ๋ˆ„๋ฅด๋ฉด msg๊ฐ์ฒด์˜ txt์š”์†Œ์— 0์„ ๋‹ด์•„ IoT๋กœ ๋ณด๋‚ธ๋‹ค.

5) Network Client - CANํ†ต์‹ ์„ ํ™œ์šฉํ•œ ๊ธฐ๋Šฅ๋ณ„ Device๋ฅผ ์ œ์–ด

  • Pad Server์™€ CAN Networkํ†ต์‹ ์„ ๊ตฌํ˜„
  • Device์—์„œ ์ธก์ •๋œ RPM, ์Šต๋„,์˜จ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ CAN๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก
  • CAN๋„คํŠธ์›Œํฌ์—์„œ ๊ณต์œ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ Server LattePanda์—์„œ TCP/IP ํ†ต์‹ ์„ ํ†ตํ•ด์„œ Pad์—๊ฒŒ ๊ฐ’์„ ์ „์†ก
  • Pad Server์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์˜ฌ๋ผ์˜ค๋Š” ๊ฐ’์„ ํ™•์ธ
  • Pad Server์—์„œ๋Š” ์ „์ฒด Device๋ฅผ Start/Stop ๊ฐ€๋Šฅ
  • Pad Server์—์„œ๋Š” ํŠน์ • Device๋ฅผ Start/Stop ๊ฐ€๋Šฅ

์ œ์ž‘์ž


<์ฃผ์˜>

  • \Hexacore\tabserver\app\src\main\AndroidManifest.xml ํŒŒ์ผ์—
android:usesCleartextTraffic="true"

์ถ”๊ฐ€ํ•ด์•ผ ์•ˆ๋“œ๋กœ์ด๋“œ 9.0 ์ด์ƒ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • Firebase ๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„ํ‚ค๊ฐ’/๊ธฐ๊ธฐํ† ํฐ๊ฐ’ ์„ค์ • ํ•„์š”
  • App,Pad ์—์„œ Httpํ†ต์‹ ์„ ์œ„ํ•ด WebServer ์˜ IP ์„ค์ • ํ•„์š”
  • Pad ์—์„œ TCP/IP ํ†ต์‹ ์„ ์œ„ํ•ด TCP/IP Server ์˜ IP ์„ค์ • ํ•„์š”

  • git์„ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌย (git ์—ย pushย ํ•  ๋•Œ ์ฃผ์˜ํ•  ์ )โ€‹

โœ”๏ธย git bash ์ ‘์†ํ•ด์„œย git pull์„ ๋จผ์ €ํ•˜๊ธฐ

โœ”๏ธย masterย ๊ถŒํ•œ์œผ๋กœ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ธฐ โ†’ย branchย ์ƒ์„ฑํ•ด์„œย pushย ํ•˜๊ธฐ

โœ”๏ธย branchย ์ด๋ฆ„์€ ์ž์‹ ์ด ๋งก์€ ์—ญํ• ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ฆ

์˜ค๋Š˜ calendar ์ž‘์—…์„ ํ–ˆ์œผ๋ฉด, branch ์ด๋ฆ„์€ย calendar

commit message์— ๋‚ ์งœ์™€ ํ•จ๊ป˜ ์ž‘์—… ๋‚ด์šฉ ์ƒ์„ธํ•˜๊ฒŒ ๊ธฐ๋กํ•ด์ฃผ์„ธ์š”ย ๐Ÿ˜„

git branch ๋ธŒ๋žœ์น˜๋ช… โ†’ branch ์ƒ์„ฑ
git branch โ†’ ํ˜„์žฌ ์ ‘์† ๋œ branch ํ™•์ธ
git checkout ๋ธŒ๋žœ์น˜๋ช… โ†’ ํ•ด๋‹นํ•˜๋Š” branch๋กœ ์ ‘์†

git push origin ๋ธŒ๋žœ์น˜๋ช…
โ†’ ์ ‘์†๋œ `branch`๋กœ push ํ•˜๋Š” ๋ฒ• (์ €์žฅ์†Œ ์ด๋ฆ„์ธ 'origin' ๋’ค์— branch ์ด๋ฆ„ ์จ์„œ push ํ•˜๊ธฐ)

About

๐Ÿš— CAN์„ ์ด์šฉํ•œ ์ปค๋„ฅํ‹ฐ๋“œ์นด ํ†ต์‹  ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ๊ตฌ์ถ•

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages