μ€λΉ 곡μ λ©λͺ¨λ¦¬ λ°μ΄ν°λ₯Ό λ©νλ°μ΄ν° κΈ°λ°μΌλ‘ νμ±νμ¬ μΉ λΈλΌμ°μ μμ μκ°ννλ νλ‘μ νΈμ λλ€.
μ€λΉλ§λ€ λ°μ΄ν° ꡬ쑰μ λ©λͺ¨λ¦¬ μ£Όμκ° λ¬λΌ, κ°κ° μ μ© λͺ¨λν°λ§ λꡬλ₯Ό κ°λ°ν΄μΌ νμ΅λλ€. κ³΅ν΅ λ‘μ§μΌλ‘ μ½μ μ μμ΄ μ μ§λ³΄μ λΉμ©κ³Ό κ°λ° μκ°μ΄ μ¦κ°νλ λ¬Έμ κ° μμμ΅λλ€.
곡μ λ©λͺ¨λ¦¬μ μμ μ£Όμμ λ©νλ°μ΄ν° CSVλ₯Ό κ³΅ν΅ λ°©μμΌλ‘ μ²λ¦¬νμ¬, νλμ λκ΅¬λ‘ λͺ¨λ μ€λΉ λ°μ΄ν°λ₯Ό μ½κ³ μκ°νν©λλ€.
Windows OpenFileMappingW λ‘ κ³΅μ λ©λͺ¨λ¦¬λ₯Ό μ΄κ³ , MapViewOfFile λ‘ μμ ν¬μΈν°λ₯Ό νλν λ€
κ³΅ν΅ νμ± μμ§(parseShm)μ μ λ¬ν©λλ€.
곡μ λ©λͺ¨λ¦¬ μ΄κΈ° β λ©λͺ¨λ¦¬ λ§€ν β μμ ν¬μΈν° νλ β parseShm μ λ¬ β λ μ½λ μν
λ©νλ°μ΄ν°μ μ μλ νμ μ 보λ₯Ό κΈ°μ€μΌλ‘ ν¬μΈν°λ₯Ό μ΄λνλ©° κ° νλλ₯Ό ν΄μν©λλ€.
*reinterpret_cast<const uint16_t*>(ptr) // UINT16
*reinterpret_cast<const double*>(ptr) // DOUBLE
*reinterpret_cast<const float*>(ptr) // FLOAT
cursor += field.size; // λ€μ νλλ‘ μ΄λsemiconductor_shm_viewer/
βββ src/
β βββ main.cpp # μ§μ
μ
β βββ viewer.cpp/h # CSV κΈ°λ° ν°λ―Έλ λ·°μ΄
β βββ shm_parser.cpp/h # κ³΅ν΅ νμ± λ‘μ§ (ν¬μΈν° μ΄λ + νμ
μΊμ€ν
)
β βββ field.cpp/h # νλ νμ
μ μ
β βββ csv.cpp/h # CSV νμ±
β βββ wasm_bindings.cpp # WebAssembly λ°μΈλ©
βββ web/
β βββ index.html
β βββ app.js
β βββ styles.css
β βββ viewer.js / viewer.wasm # C++ β WASM μ»΄νμΌ κ²°κ³Ό
β βββ guide/ # μ¬μ© κ°μ΄λ μ΄λ―Έμ§
β βββ process/ # λ¬Έμ /ν΄κ²°/λ‘μ§ μ΄λ―Έμ§
βββ data/
β βββ *_metadata.csv # νλ μ μ (name, type, size)
β βββ *_output.csv # μ€λΉ μΆλ ₯ λ°μ΄ν°
βββ build_wasm.sh # WASM λΉλ μ€ν¬λ¦½νΈ
βββ shm_demo/
βββ shm_reader.cpp # 곡μ λ©λͺ¨λ¦¬ μ½κΈ° λ°λͺ¨ (Windows)
g++ -std=c++17 src/csv.cpp src/field.cpp src/shm_parser.cpp src/viewer.cpp src/main.cpp -o shm_viewer
./shm_viewerpython3 -m http.server 4173λΈλΌμ°μ μμ μ μν©λλ€.
http://localhost:4173/web/
bash build_wasm.shETCH / PHOTO / TRANSFER μ€ μ€λΉλ₯Ό μ ννλ©΄ ν΄λΉ λ°μ΄ν°κ° λ‘λλ©λλ€. TESTλ₯Ό μ ννλ©΄ μ§μ CSVλ₯Ό μ λ‘λν μ μμ΅λλ€.
TEST νμ μ ννλ©΄ μ¬μ΄λλ° νλ¨μ CSV μ§μ μ λ‘λ μΉμ μ΄ νμ±νλ©λλ€.
name, type, size νμμ λ©νλ°μ΄ν° CSVλ₯Ό μ νν©λλ€.
name,type,size
equipmentId,UINT16,2
chuckTemp,DOUBLE,8μ€μ λ°μ΄ν° CSVλ₯Ό μ νν λ€ μ μ© λ²νΌμ λλ¦ λλ€. ν¬λ§·μ΄ λ§μ§ μμΌλ©΄ μ€λ₯ λ©μμ§κ° νμλκ³ μ μ©λμ§ μμ΅λλ€.
μλ¨ λμ보λμμ μ£Όμ μ§ν μΆμ΄λ₯Ό νμΈνκ³ , νλ¨ ν μ΄λΈμμ μ 체 λ μ½λλ₯Ό μ‘°νν©λλ€. μ»¬λΌ ν€λλ₯Ό ν΄λ¦νλ©΄ μ λ ¬λ©λλ€.
| μ»¬λΌ | μ€λͺ | μμ |
|---|---|---|
| name | νλ μ΄λ¦ | chuckTemp |
| type | λ°μ΄ν° νμ | UINT8 UINT16 UINT32 INT8 INT16 INT32 FLOAT DOUBLE CHAR_ARRAY |
| size | λ°μ΄νΈ ν¬κΈ° | 8 |