AIC-EEC API
AIC-EEC Module Library
ไลบรารี Hardware Abstraction Layer และ UI helpers สำหรับ Embedded Systems and IoT Development, ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยบูรพา นี่คือเวอร์ชัน PC Simulator — API ตรงกับเวอร์ชัน PSoC Edge E84 ทุกประการ โดยใช้ mock implementation แทนการเข้าถึงฮาร์ดแวร์จริง
รศ.วิรุฬห์ ศรีบริรักษ์ ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยบูรพา
โมดูลทั้งหมด
Framework (โครงสร้างพื้นฐาน)
aic-eec.h/c
UI components กลาง — footer, header, logo, theme, container
aic_layout.h/c
ตัวช่วยจัด layout แบบ Flexbox — row, column, card, gauge, progress bar
aic_event.h/c
ระบบ Event Bus แบบ publish-subscribe — sensor/button/system events
aic_log.h/c
ระบบ Logging — แบ่ง level (Error/Warn/Info/Debug/Verbose), output ทาง printf + LVGL
Hardware Abstraction (Mock — จำลองฮาร์ดแวร์)
gpio.h/c
ควบคุม LED (RGB), อ่านปุ่มกด, ปรับความสว่าง PWM — เก็บค่าในหน่วยความจำ
sensors.h/c
ADC (5 channels), IMU (BMI270), อุณหภูมิ, CAPSENSE — ข้อมูลจำลอง
Signal Processing (ประมวลผลสัญญาณ)
ma_filter.h
Moving average filter (header-only, ค่าเริ่มต้น window = 3 samples)
tilt.h/c
Complementary filter — คำนวณ roll/pitch จาก accelerometer + gyroscope
scope.h/c
สร้างสัญญาณ (sine, square, triangle, sawtooth), FFT
ตัวอย่างการใช้งาน
GPIO — ควบคุม LED และปุ่มกด
LED ที่มี: AIC_LED_RED, AIC_LED_GREEN, AIC_LED_BLUE ปุ่มที่มี: AIC_BTN_USER (SW2), AIC_BTN_USER2 (SW4)
Sensors — เซ็นเซอร์
ADC channels: AIC_ADC_CH0 (Pot), CH1, CH2, CH3, AIC_ADC_TEMP
Layout — จัด UI ด้วย LVGL
Event Bus — ระบบ Event
กลุ่ม Event ที่สำคัญ:
Sensor:
AIC_EVENT_IMU_UPDATE,AIC_EVENT_ADC_UPDATE,AIC_EVENT_TEMP_UPDATEInput:
AIC_EVENT_BUTTON_PRESS,AIC_EVENT_BUTTON_RELEASESystem:
AIC_EVENT_IPC_CONNECTED,AIC_EVENT_ERRORCustom:
AIC_EVENT_CUSTOM_1ถึงAIC_EVENT_CUSTOM_5
Logging — ระบบบันทึกข้อความ
เปรียบเทียบ PC Simulator กับ PSoC Edge E84
API
เหมือนกันทุกประการ
เหมือนกันทุกประการ
GPIO
เก็บค่าในหน่วยความจำ
ควบคุม GPIO pin จริง
ADC
ค่าจำลอง
SAR ADC จริง
IMU
สร้างข้อมูล sine wave
อ่านจาก BMI270 ผ่าน shared memory
CAPSENSE
stub (คืนค่า false เสมอ)
อ่านจาก PSoC 4000T ผ่าน I2C
Event Bus
circular buffer (single-thread)
FreeRTOS queue (multi-thread)
Logging
printf ไปที่ terminal
printf + ส่ง IPC ไปยัง CM33
ฟังก์ชันเฉพาะ PC Simulator
ฟังก์ชันเหล่านี้ใช้ได้เฉพาะบน PC สำหรับจำลองการทดสอบ:
วิธี Build (PC Simulator)
ชุดสี (กำหนดใน aic_layout.h)
AIC_COLOR_BG_DARK
#16213e
พื้นหลังหน้าจอ
AIC_COLOR_BG_CARD
#1f4068
พื้นหลังการ์ด
AIC_COLOR_PRIMARY
#00d4ff
สีหลัก
AIC_COLOR_SECONDARY
#ff6b6b
สีรอง
AIC_COLOR_SUCCESS
#4ade80
สถานะสำเร็จ
AIC_COLOR_WARNING
#fbbf24
สถานะเตือน
AIC_COLOR_ERROR
#ef4444
สถานะข้อผิดพลาด
AIC_COLOR_TEXT
#ffffff
ข้อความปกติ
AIC_COLOR_TEXT_DIM
#94a3b8
ข้อความจางๆ
การย้ายโค้ดจาก PC ไปบอร์ดจริง
เนื่องจาก API เหมือนกัน 100% การย้ายโค้ดทำได้ง่าย:
คัดลอกโค้ด จาก PC Simulator ไปใส่ในโปรเจค PSoC Edge
เปลี่ยน include path —
"lvgl/lvgl.h"เป็น"lvgl.h"(ถ้าจำเป็น)ลบฟังก์ชัน sim — ลบ
aic_gpio_sim_set_button(),aic_sensors_sim_tick()ฯลฯBuild และทดสอบ บนบอร์ดจริง
ไม่ต้องเปลี่ยนชื่อฟังก์ชัน, ชนิดข้อมูล, หรือ parameter ใดๆ ทั้งสิ้น
Last updated