快速入門 5分鐘設計 SMART DISPLAY UI 使用 PPTX Quick Start: Design SMART DISPLAY UI with PPTX in 5 Mins

STEP 1 : 設定 PPTX 尺寸對應 Display Resolution STEP 1: Set PPTX Size to Match Display Resolution

PowerPoint 是用 96 DPI (Pixel Per Inch) 來定義尺寸寬度。 PowerPoint uses 96 DPI (Pixels Per Inch) to define dimensions.

當我們的顯示器為 10.1” 1280x800 Pixel 時,對應的設定如下: For a 10.1" 1280x800 Pixel display, the settings are:

  • 對應的寬度 (Inch) = 1280 / 96 = 13.33 (inch) = 13.33 x 2.54 = 33.87 (cm) Width (Inch) = 1280 / 96 = 13.33 inch = 13.33 x 2.54 = 33.87 (cm)
  • 對應的高度 (Inch) = 800 / 96 = 8.33 (inch) = 8.33 x 2.54 = 21.16 (cm) Height (Inch) = 800 / 96 = 8.33 inch = 8.33 x 2.54 = 21.16 (cm)

👉 設計版面設定: 寬度 33.86 公分,高度 21.16 公分。 Slide Size Setting: Width 33.86 cm, Height 21.16 cm.

📐 PPT 尺寸計算器 📐 PPT Size Calculator

X
PPT 寬度設定:Set PPT Width: 33.87 cm
PPT 高度設定:Set PPT Height: 21.17 cm

STEP 2 : 如何加入 UI Layer 轉跳 STEP 2: How to Add UI Layer Jumps

使用 PowerPoint 中的動作設定來進行頁面切換: Use PowerPoint's Action settings for page transitions:

選擇物件 ➔ 插入 ➔ 動作 ➔ 選擇「跳到投影片xxx」。 Select Object ➔ Insert ➔ Action ➔ Hyperlink to Slide...

STEP 3 : 如何加入 UI Layer 轉跳時的過場特效 STEP 3: How to Add Transition Effects

利用 PowerPoint 內建的切換功能製作動態轉場: Use PowerPoint's built-in transitions:

選擇上方選單 「切換」 ➔ 選擇 「推入」「擦去」 ➔ 設定「效果選項」(上下左右) ➔ 設定「期間」/ 過場時間單位(秒/10)。 Go to Transitions ➔ Select Push or Wipe ➔ Set Effect Options (Direction) ➔ Set Duration.

STEP 4 : 轉檔與實機運行 STEP 4: Conversion & Device Execution

  1. 經過上述的設定後,將存檔後的 PPTX 上傳到轉檔的網站: After the above settings, upload the saved PPTX to the converter website:
    🔗 http://converter.ampire.com.tw/
  2. 系統將您的 PowerPoint 設計直接轉換為適用於 Smart Display 的嵌入式格式。 The system directly converts your design into an embedded format suitable for Smart Displays.
  3. 將檔案複製到 USB DISK 中,插入我們的 SMART DISPLAY 運行。 Copy the files to a USB disk and insert it into the SMART DISPLAY to run.
  4. 完成!Done! 您就能夠看到初步的 UI 框架,包含 Layer 轉跳與動態轉場特效。 You will now see the initial UI framework, including layer jumps and transitions.

👉 請點擊上方導覽列,查詢並複製各項 UI 元件的 Alt Text 設計語法! Click the navigation bar above to view and copy the Alt Text syntax for each UI component!

系統參數設定 (全域設定) System Parameters (Global Settings)

💡 設定位置:Setting Location:

請將全域的系統參數寫在 PowerPoint 第一頁投影片的「備忘錄」(Notes) 區域中。 Please write the global system parameters in the "Notes" pane of the FIRST slide in PowerPoint.

a. CAN Bus 通訊速率 (CAN_BPS)a. CAN Bus Baud Rate (CAN_BPS)

固定寫法:[CAN_BPS=數值]
若未填寫或填寫無效數值,系統預設為 500000。系統支援以下傳輸速率:
Format: [CAN_BPS=value].
If omitted or invalid, the default is 500000. Supported baud rates:

  • [CAN_BPS=1000000]
  • [CAN_BPS=500000] ⬅ (預設值)⬅ (Default)
  • [CAN_BPS=250000]
  • [CAN_BPS=125000]
  • [CAN_BPS=100000]
  • [CAN_BPS=50000]
  • [CAN_BPS=20000]

b. 預設螢幕亮度 (DEFAULT_BRIGHTNESS)b. Default Brightness (DEFAULT_BRIGHTNESS)

固定寫法:[DEFAULT_BRIGHTNESS=數值]
用戶可設定範圍為 5 (最暗) 到 100 (最亮)。
Format: [DEFAULT_BRIGHTNESS=value].
User can set range from 5 (darkest) to 100 (brightest).

  • 若數值大於 100,系統將強制設定為 100。If value > 100, system sets it to 100.
  • 若數值小於 5,系統將強制設定為 5(防止螢幕過暗被誤認為故障)。If value < 5, system sets it to 5 (prevents appearing broken).
  • 若完全未填寫,系統預設值為 100 (最亮)。If omitted, default is 100 (brightest).

範例代碼 (直接複製到第一頁備忘錄)Example Code (Copy to Slide 1 Notes)

[CAN_BPS=500000]
[DEFAULT_BRIGHTNESS=100]
設定位置示意圖Location Diagram
Slide 1 備忘錄 (Notes) 區域 [CAN_BPS=500000]

▲ 將參數設定寫在第一張投影片下方的備忘錄中 ▲ Write settings in the Notes pane under Slide 1

@Text (數值與狀態文字)(Numeric & Status Text)

一般數值文字Standard Numeric Text

🎨 物件準備步驟:Object Preparation:
  1. 在 PowerPoint 插入一個文字方塊。Insert a text box in PowerPoint.
  2. 輸入預設文字 (例如 "200.0 bar") 來佔位子,確保空間夠大。Enter placeholder text (e.g. "200.0 bar") to reserve enough space.
  3. 字型建議使用:Noto Sans TC BlackRecommended font: Noto Sans TC Black.
⚠️ 以下紅色參數為 DBC Suggestion 中沒有的,請依需求手動加入修改。 The red parameters below are NOT generated in DBC Suggestions. Modify manually as needed.
Parameter說明DescriptionExample
Mul / Add (Option) Math : Display = (Raw x Mul) + Add。
如果是用 DBC 通常不用寫。如需調整換算用此方式換算。
(Option) Math: Display = (Raw x Mul) + Add.
Usually not needed with DBC. Use for custom calculations.
Mul=0.5, Add=16
Suffix (Option) Unit : 顯示在數值後的文字。
如果 DBC 單位不是你要的 (例如 degC),可用此覆寫。
(Option) Unit: Text appended after the value.
Overrides DBC unit if needed (e.g., degC to ℃).
Suffix=℃
@Text, Tag=DBC_Group_Pressure, Mul=0.1, Suffix=bar
預覽效果Preview
20.0 bar

狀態文字 (依數值改變文字/顏色) Status Text (Change Text & Color by Value)

💡 說明:Description:
當 DBC 使用數值代表狀態 (如 0=OFF, 1=Heating, 2=Ready) 或檔位 (0=P, 1=R, 2=N, 3=D) 時使用。
系統會根據收到的 Value 來變更文字內容及對應顏色。
Used when DBC values represent states (e.g., 0=OFF, 1=Heating) or gears (0=P, 1=R).
The system updates text and color automatically based on the Value.
⚠️ 狀態規則必須手動定義,DBC 建議檔不會自動生成 Rules。 Rules must be manually defined; DBC Suggestions do not auto-generate them.
Parameter說明DescriptionExample
Rules { Range : Text : Color | ... }| 分隔。Color 可用 HEX (#0b03fc) 或 RGB (11, 3, 252) { Range : Text : Color | ... } separated by |. Color accepts HEX or RGB. 0-0: OFF : #0b03fc
@Text, Tag=DBC_Machine_State,
Rules={
0-0: OFF : #0b03fc |
1-1: Heating : #fc4903 |
2-2: Ready : #03fc77 |
3-3: Brewing : #942c03 |
4-4: Steam_Mode : #f0f3f7
}
互動模擬 (內容與顏色)Interactive Demo
Ready

數值變色文字 (僅依數值改變顏色) Value Color Text (Change Color Only)

💡 說明:Description:
當只需要改變數值的顯示顏色,而不改變數值內容本身時使用 (維持數值顯示)。
例如:水量低於 50% 顯示綠色,51-80% 顯示黃色,81-100% 顯示紅色。
Used to change display color based on value ranges without modifying the text itself.
e.g., <50% Green, 51-80% Yellow, >80% Red.
⚠️ 顏色規則必須手動定義,DBC 建議檔不會自動生成 ColorRules。 ColorRules must be defined manually; DBC Suggestions do not auto-generate them.
Parameter說明DescriptionExample
ColorRules { Range:Color | ... }| 分隔。Color 支援 HEX 或 RGB { Range:Color | ... } separated by |. Supports HEX or RGB. 0-50:0,255,0
@Text, Tag=DBC_FreshWater, Mul=1.0, Add=0, Suffix= % ,ColorRules={0-50:0,255,0 | 51-80:255,255,0 | 81-100:255,0,0}
變色模擬 (僅改色)Color Demo
30 %

@ProgressBar (進度條)(Progress Bar)

🎨 圖片準備步驟:Image Prep Steps:
  1. 畫一張 0% 的圖 (當作底圖)。Draw a 0% image (as background).
  2. 畫一張 100% 的圖 (當作滿水位圖)。Draw a 100% image (as full level).
  3. 把這兩張圖疊在一起 (100% 在上面),然後群組 (Group) 起來。Stack them (100% on top) and Group them.
⚠️ 請確認最大/最小值是否符合 UI 需求。Ensure Min/Max values match your UI needs.
Parameter說明DescriptionExample
Max 最大值。一般由 DBC 取得。若沒寫預設為 100。Maximum value. Usually from DBC. Defaults to 100. Max=200
Min 最小值。一般由 DBC 取得。若沒寫預設為 0。Minimum value. Usually from DBC. Defaults to 0. Min=0
@ProgressBar, Tag=DBC_Group_Pressure, Min=0, Max=200, Factor=1
預覽效果Preview

@TrackBar (滑動設定條)(Slider)

🎨 圖片準備步驟:Image Prep Steps:
由下到上疊三張圖並群組:Stack 3 images from bottom to top and Group:
  1. 背景圖 (Background) 放最底層。Background at the bottom.
  2. 100% 填滿圖 (Fill) 放中間層。100% Fill in the middle.
  3. 滑塊/按鈕 (Thumb) 放最上層。Thumb at the top.
⚠️ 控制範圍需依實際需求調整。Adjust the control range as needed.
Parameter說明DescriptionExample
Max最大值。Maximum value.Max=1050
Min最小值。Minimum value.Min=800
@TrackBar, Tag=DBCTX_Target_Temp, Min=800, Max=1050, Factor=1
滑動模擬Slider Demo

@Toggle (切換按鈕)(Toggle Button)

🎨 圖片準備步驟:Image Prep Steps:
  1. 畫一張 OFF 的按鈕圖 (放最下層)。Draw an OFF state image (bottom layer).
  2. 畫一張 ON 的按鈕圖 (放最上層)。Draw an ON state image (top layer).
  3. 兩個疊在一起,群組 (Group) 起來。Stack them and Group.
⚠️ 定義預設狀態非常重要!Defining the default state is very important!
Parameter說明DescriptionExample
Def 0: Toggle OFF 或 1: Toggle ON。
沒有寫預設是 0 (OFF)。
0: Toggle OFF or 1: Toggle ON.
Defaults to 0 (OFF).
Def=0
@Toggle, Tag=DBC_Brew_Switch, GenTx=1, Min=0, Max=2, Factor=1, Def=0
互動試玩Interactive Demo
STOP
點擊按鈕切換Click to Toggle

@Meter (儀表指針)(Gauge Needle)

🎨 圖片準備步驟:Image Prep Steps:
  1. 準備 圓盤背景圖 (下層)。Prepare Gauge Background (bottom layer).
  2. 準備 指針圖 (上層)。Prepare Needle Image (top layer).
  3. 重要技巧:畫一個正圓形對準指針的旋轉中心,群組前把這個正圓改成透明的,這樣指針才會繞著正確的圓心轉!Important Tip: Draw a perfect circle centered on the pivot, make it transparent before grouping to ensure correct rotation!
⚠️ DBC 不會包含 UI 的角度設計,必須手動加入!DBC does NOT contain UI angles; add them manually!
Parameter說明DescriptionExample
Def指針初始位置。沒寫預設為 0。Initial position. Defaults to 0.Def=0
Max指針的最大值。一般由 DBC 取得。Maximum value. Usually from DBC.Max=1300
Min指針的最小值。一般由 DBC 取得。Minimum value. Usually from DBC.Min=0
StartAngleUI Meter 底圖指針 起始角度。Starting angle.StartAngle=-135
EndAngleUI Meter 底圖指針 終點角度。Ending angle.EndAngle=135
@Meter, Tag=DBC_Boiler_Act_Temp, Factor=1, Min=0, Max=1300, StartAngle=-135, EndAngle=135, Def=0
指針模擬Needle Demo

@CircleMask (圓形遮罩)(Ring Progress)

🎨 圖片準備步驟:Image Prep Steps:
  1. 準備 背景圖 (放在 Z 軸最下層)。Prepare Background (bottom layer).
  2. 準備 100% 的圖 (放在 Z 軸上層)。Prepare 100% Fill (top layer).
  3. 群組 (Group) 這兩張圖。Group these two images.
⚠️ 起始角度需手動定義,影響環狀長出的位置。 Starting angle must be manually defined.
Parameter說明DescriptionExample
RotateAngle 指定 0% 開始的角度 (預設為 0度)。
例如 -90 表示從 12 點鐘方向開始。
Sets the angle for 0% (Default is 0°).
e.g., -90 means starting from 12 o'clock.
RotateAngle=-90
@CircleMask, Tag=DBC_Group_Pressure, Min=0, Max=200, Factor=1, RotateAngle=-90
環狀進度條模擬Ring Progress Demo
0%
拖動調整數值Drag to adjust

@PopupBtn (微調按鈕)(Adjustment Button)

🎨 圖片準備步驟:Image Prep Steps:
  1. 準備 PopupBtn背景圖 放最下層。Prepare Background image (bottom layer).
  2. 準備 PopupBtn按下的狀態圖 疊在上方。Prepare Pressed State image (top layer).
  3. 將兩張圖群組。Group the two images.
⚠️ DBC Suggestion 只給 CAN 參數,動畫與增減量需全手動。 DBC Suggestions only provide CAN parameters; animations and increments must be added manually.
Parameter說明DescriptionExample
TagDef預設初始值。若沒寫預設為0。Default initial value. Defaults to 0.TagDef=100
Inc按下時變大特效。30表示變大30%。Enlarge effect when pressed. 30 means 30% larger.Inc=30
Frame動畫影格數 (60Hz下 30 Frame = 0.5秒)。Animation frames (30 frames = 0.5s at 60Hz).Frame=30
TagInc每次按下去的變化量 (例如 +5 或 -5)。Increment step (e.g., +5 or -5).TagInc=-5

減少按鈕 (-)Minus Button (-)

@PopupBtn, Tag=BTN_Pre_Infusion_Time_Minus, Target=DBCTX_Pre_Infusion_Time, TagInc=-5, TagDef=100, Inc=30, Frame=30

增加按鈕 (+)Plus Button (+)

@PopupBtn, Tag=BTN_Pre_Infusion_Time_Plus, Target=DBCTX_Pre_Infusion_Time, TagInc=5, TagDef=100, Inc=30, Frame=30
操作模擬Operation Demo
-
5.0 sec
+

@DigitalClock & 時間調整介面& Time Setup

純顯示設定Display Only Settings

在 PPT 上用文字寫上 YYYY-MM-DDHH:mm:ss,然後加入 Alt Text: Type YYYY-MM-DD or HH:mm:ss in a PPT text box, then apply Alt Text:

@DigitalClock, Format=Date
@DigitalClock, Format=Time, Def=24H
時鐘預覽Clock Preview
YYYY-MM-DD
HH:mm:ss

時間調整設定 (重要系統變數!)Time Adjustment Settings (Important!)

⚠️ 以下的 Tag (如 VAR_Edit_Year) 是系統內建特殊變數,絕對不能拼錯! The Tags below (e.g., VAR_Edit_Year) are built-in variables. Do NOT misspell them!
功能Function 文字顯示 (Text)Text Display 增加按鈕 (+) PopupBtnPlus Button (+) 減少按鈕 (-) PopupBtnMinus Button (-)
年 (YYYY)Year (YYYY) @Text, Tag=VAR_Edit_Year, Def=2026 @PopupBtn, Tag=VAR_Edit_Year_Plus, Target=VAR_Edit_Year, TagDef=2026, TagMax=2300, TagMin=1990, TagInc=1, Inc=30, Frame=5 @PopupBtn, Tag=VAR_Edit_Year_Minus, Target=VAR_Edit_Year, TagDef=2026, TagMax=2300, TagMin=1990, TagInc=-1, Inc=30, Frame=5
月 (MM)Month (MM) @Text, Tag=VAR_Edit_Month, Def=6 @PopupBtn, Tag=VAR_Edit_Month_Plus, Target=VAR_Edit_Month, TagDef=6, TagMax=12, TagMin=1, TagInc=1, Inc=30, Frame=5 @PopupBtn, Tag=VAR_Edit_Month_Minus, Target=VAR_Edit_Month, TagDef=6, TagMax=12, TagMin=1, TagInc=-1, Inc=30, Frame=5
日 (DD)Day (DD) @Text, Tag=VAR_Edit_Day, Def=15 @PopupBtn, Tag=VAR_Edit_Day_Plus, Target=VAR_Edit_Day, TagDef=15, TagMax=31, TagMin=1, TagInc=1, Inc=30, Frame=5 @PopupBtn, Tag=VAR_Edit_Day_Minus, Target=VAR_Edit_Day, TagDef=15, TagMax=31, TagMin=1, TagInc=-1, Inc=30, Frame=5
時 (HH)Hour (HH) @Text, Tag=VAR_Edit_Hour, Def=12 @PopupBtn, Tag=VAR_Edit_Hour_Plus, Target=VAR_Edit_Hour, TagDef=12, TagMax=23, TagMin=0, TagInc=1, Frame=24, Inc=30, Frame=5 @PopupBtn, Tag=VAR_Edit_Hour_Minus, Target=VAR_Edit_Hour, TagDef=12, TagMax=23, TagMin=0, TagInc=-1, Frame=24, Inc=30, Frame=5
分 (mm)Minute (mm) @Text, Tag=VAR_Edit_Min, Def=30 @PopupBtn, Tag=VAR_Edit_Min_Plus, Target=VAR_Edit_Min, TagDef=30, TagMax=59, TagMin=0, TagInc=1, Inc=30, Frame=5 @PopupBtn, Tag=VAR_Edit_Min_Minus, Target=VAR_Edit_Min, TagDef=30, TagMax=59, TagMin=0, TagInc=-1, Inc=30, Frame=5

數值換算機制 (Algo)Math Conversion (Algo)

💡 使用場景:Use Case:

當系統中有一個設定總時間的變數(例如:Tag=DBCTX_Set_Duration 為總分鐘數),如果要將其拆分成「小時」與「分鐘」兩個獨立的文字方塊來顯示時,就需要使用 Algo 參數進行數學換算。 When the system has a total time variable (e.g., total minutes), and you need to split it into "Hours" and "Minutes" in separate text boxes, use the Algo parameter.

⚠️ 換算參數必須手動加入,DBC Suggestion 通常不會包含 Algo 設定。 Conversion parameters must be added manually. DBC Suggestions usually do not include Algo.
Parameter說明DescriptionExample
Algo=Div 取商數 (Division)。用來計算小時 (除以60)。 Division quotient. Used for calculating hours (divided by 60). Algo=Div, Param=60
Algo=Mod 取餘數 (Modulo)。用來計算分鐘 (除以60的餘數)。 Modulo remainder. Used for calculating minutes (remainder of 60). Algo=Mod, Param=60

小時 (hr.) 顯示設定Hour (hr.) Display Settings

@Text, Tag=DBCTX_Set_Duration, Algo=Div, Param=60, Min=00, Max=24, Def=00

分鐘 (mins) 顯示設定Minute (mins) Display Settings

@Text, Tag=DBCTX_Set_Duration, Algo=Mod, Param=60, Min=00, Max=59, Def=00
換算模擬Conversion Demo
Total charging time
02
hr.
30
mins

CAN Log 診斷顯示Diagnostic Display

在 PowerPoint 上加入文字方塊並預留足夠空間,填入以下 Alt Text。 Add a text box in PowerPoint, reserve enough space, and enter the following Alt Text.

發送紀錄 (TX)Transmit Log (TX)

@Text, Tag=VAR_CAN_LOG_TX

接收紀錄 (RX)Receive Log (RX)

@Text, Tag=VAR_CAN_LOG_RX

背光亮度 (Backlight)Backlight Brightness

使用 TrackBar 來控制螢幕亮度,綁定內部系統變數 VAR_Backlight Use a TrackBar to control screen brightness, bound to the internal system variable VAR_Backlight.
@TrackBar, Tag=VAR_Backlight, Min=5, Max=100, Def=100
亮度模擬Brightness Demo
Display

影片播放 (@Video)@Video Player

影片格式要求:Video Format Requirements:
  • 格式: H.264 解碼器Format: H.264 Codec
  • 參考影格 (Reference Frame): 必須為 1Reference Frame: Must be exactly 1
  • 最大解析度: 1280x720Max Resolution: 1280x720
參數說明:Parameter Description:
  • Src: 影片檔案路徑 (必填,後續固定使用 D:/,例如 D:/video.mp4)。Src: Video file path (Required, fix to D:/, e.g., D:/video.mp4).
  • Visible: 0 為隱藏,1 為顯示。Visible: 0 for hidden, 1 for visible.
  • Playing: 1 表示載入後自動播放。Playing: 1 means auto-play on load.
  • repeat: 1 表示無限循環重複播放。repeat: 1 means infinite loop playback.

基本範例 (預設隱藏,需透過其他 UI 觸發)Basic Example (Hidden by default, triggered by UI)

@Video, Tag=Video_Play_SW, Src=D:/AMPIRE_V3.mp4, Visible=0

自動重複播放範例Auto-Repeat Playback Example

@Video, Tag=Video_Play_SW, Src=D:/AMPIRE_V3.mp4, Visible=1, Playing=1, repeat=1
播放器模擬Player Demo
MP4 Video Player

@Sprite (圖片數字字型)(Image Number Font)

🎨 資源準備步驟:Resource Preparation Steps:
  1. 準備 0~9 的圖片數字,在 PPT 中由左至右排列。(基礎 10 張圖)Prepare number images 0~9, arranged left to right in PPT. (Base 10 images)
  2. 前導零隱藏 (Optional):若不希望顯示 067 而顯示 67,請加入第 11 張「相同大小的空白透明圖」。Hide Leading Zero (Optional): To hide leading zeros, add an 11th "blank transparent image".
  3. 負數支援 (Optional):若需顯示負數,請加入第 12 張「負號 (-)」圖。Negative Support (Optional): To support negative numbers, add a 12th "minus (-)" image.
  4. 小數點:請直接在 PPT 繪製靜態小數點,絕對不要放進群組中。Decimal Point: Draw a static decimal point directly in PPT. Do NOT include it in the sprite group.
  5. 將圖群組並放置於非顯示區域,設定 Alt Text:
    @SpriteSource, Name=DigiFont_Red
    Group and place off-slide, set Alt Text:
    @SpriteSource, Name=DigiFont_Red
⚠️ 浮點數誤差聲明 (Float Precision Limits):
對接真實設備時,HEX 轉 Float 的微小落差是 100% 會發生的硬體極限!單精度 float (32-bit) 在 IEEE 754 標準下,只有 23 bits 的尾數,有效數字約 6~7 位。
例如:當磅秤傳來 30000.002 (已達 8 位有效數字),在二進位中無法精確表示,會變成最接近的近似值 30000.001953125...。不同設備底層運算差異必然會導致最後一位小數浮動,請理解此技術限制。
⚠️ Float Precision Limits:
Minor discrepancies in HEX to Float conversion are inevitable hardware limitations! Under IEEE 754, a 32-bit single-precision float has a 23-bit mantissa (approx. 6-7 significant digits).
For example, 30000.002 cannot be exactly represented in binary and becomes approximately 30000.001953125.... Slight variations between different devices' processing architectures are entirely normal.

A. 整數設定 (algo=digital)A. Integer Config (algo=digital)

Parameter說明DescriptionExample
algo 指定為 digital (整數提取)。Set to digital (integer extraction). algo=digital
param 位數:10000(萬), 1000(千), 100(百), 10(十), 1(個) Digit place: 10000(10Ks), 1000(Ks), 100(Hundreds), 10(Tens), 1(Ones) param=10000

萬位數 (param=10000):Ten-Thousands Place (param=10000):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital, Param=10000

千位數 (param=1000):Thousands Place (param=1000):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital, Param=1000

百位數 (param=100):Hundreds Place (param=100):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital, Param=100

十位數 (param=10):Tens Place (param=10):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital, Param=10

個位數 (param=1):Ones Place (param=1):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital, Param=1

B. 小數/負數設定 (algo=digital_float)B. Float/Negative Config (algo=digital_float)

Parameter說明DescriptionExample
algo 指定為 digital_float (浮點數提取,需 12 張圖)。Set to digital_float (requires 12 images). algo=digital_float
param 小數點後為 0.1(小數後1位), 0.01(小數後2位), 0.001(小數後3位) Float multiplier:
0.1 (1st dec), 0.01 (2nd dec), 0.001 (3rd dec)
param=0.1

小數後 1 位 (param=0.1):1st Decimal Place (param=0.1):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital_float, Param=0.1

小數後 2 位 (param=0.01):2nd Decimal Place (param=0.01):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital_float, Param=0.01

小數後 3 位 (param=0.001):3rd Decimal Place (param=0.001):

@Sprite, Tag=MB_Net_Weight, Min=-9999, Max=99999, Factor=1, Source=DigiFont_Red, algo=digital_float, Param=0.001
自訂字體模擬Custom Font Demo
-
9
9
9
4
.
9
9
9

由多張獨立圖片 (含空白與負號) 拼成的浮點數值 Float value composed of separate images (including minus sign)

@PopupRadio (單選組合按鈕)(Radio Button Group)

🎨 圖片準備步驟 (針對每一個選項):Image Prep Steps (For each option):
  1. 準備 背景圖 放最下層。Prepare Background image (bottom layer).
  2. 準備 按下的狀態圖 (高亮) 疊在上方。Prepare Pressed State image (highlighted, top layer).
  3. 將兩張圖群組。Group the two images.

應用場景:多個開關但只有單選 (如:空調風量 High / Med / Low)。 Use Case: Multiple switches but single selection (e.g., Fan Speed High/Med/Low).

⚠️ 必須手動設定 Group 讓系統知道它們是同一組互斥按鈕。 Manually set the Group parameter to group mutually exclusive buttons.
Parameter說明DescriptionExample
Group 群組名稱,同名稱的 Radio 會互斥 (單選)。 Group name. Radio buttons sharing this name are mutually exclusive. Group=Fan_Speed_Level
Value 此按鈕代表的數值。 The value this button represents. Value=3
Inc 點擊時的放大特效 (-20 表示變小20%)。 Zoom effect on click (-20 means shrink 20%). Inc=-20
Frame 特效動畫長度。 Animation duration in frames. Frame=15

選項 High (Value=3):Option High (Value=3):

@PopupRadio, Group=Fan_Speed_Level, Tag=DBCTX_Fan_Speed_Level, Value=3, Inc=-20, Frame=15

選項 Med (Value=2):Option Med (Value=2):

@PopupRadio, Group=Fan_Speed_Level, Tag=DBCTX_Fan_Speed_Level, Value=2, Inc=-20, Frame=15

選項 Low (Value=1):Option Low (Value=1):

@PopupRadio, Group=Fan_Speed_Level, Tag=DBCTX_Fan_Speed_Level, Value=1, Inc=-20, Frame=15
單選互動模擬Radio Interaction Demo
HIGH (3)
MED (2)
LOW (1)

Timer (計時器與動態特效)(Timer & Effects)

1. Timer 的模式 (TimerMode) 1. Timer Modes

  • TimerMode=Bounce : 呼吸燈模式 (最小遞增到最大,再遞減到最小)。TimerMode=Bounce : Breathing light mode (increments to max, then decrements to min).
  • TimerMode=Loop : 循環模式 (最小遞增到最大,然後重置)。TimerMode=Loop : Loop mode (increments to max, then resets to min).

2. 控制參數 2. Control Parameters

Parameter說明Description
TimerInterval單位毫秒 (ms)。Unit in milliseconds (ms).
TimerStep每次變化的增量。Increment step value.
TimerMin起始最小值。Starting minimum value.
TimerMax起始最大值。Starting maximum value.
TimerPriority優先等級。當有多個按鈕改變相同變數時會有優先等級的問題。數值越高,優先等級越高。Priority level. Used when multiple buttons alter the same variable. Higher value = higher priority.
TimerControl_Tag此 Timer 在系統中的變數名稱 (用來控制開/關)。The variable name controlling this Timer (used to toggle ON/OFF).
TimerOutput_Tag要改變的目標系統變數名稱。The target system variable name to be modified by the Timer.

3. 使用情境範例:燈光場景控制 3. Use Case: Light Scene Control

情境說明:
有一組 PopupRadio 按鈕用來決定燈光的亮度,並透過一個單一的 Toggle 按鈕來控制這組 PopupRadio 所對應的 Timer 變數是否打開。
Scenario:
A set of PopupRadio buttons determines the light brightness. A single Toggle button controls whether the corresponding Timer variable for these radio buttons is ON or OFF.

左上:控制整組 Timer 變數是否打開的按鈕Top-Left: Main Toggle to enable the Timer

@Toggle, Tag=VAR_BL_Timer, Def=0

右上:設定成 30% 亮度 (Movie)Top-Right: Set to 30% Brightness (Movie)

@PopupRadio, Group=Light_Scene, Tag=VAR_Movie_SW, Value=1, Inc=-20, Frame=15, Def=0, TimerInterval=100, TimerMode=Bounce, TimerStep=1, TimerMin=30, TimerMax=30, TimerPriority=110, TimerControl_Tag=VAR_BL_Timer, TimerOutput_Tag=VAR_Backlight

左下:設定成 90% 亮度 (Read)Bottom-Left: Set to 90% Brightness (Read)

@PopupRadio, Group=Light_Scene, Tag=VAR_READ_SW, Value=3, Inc=-20, Frame=15, Def=0, TimerInterval=100, TimerMode=Bounce, TimerStep=1, TimerMin=90, TimerMax=90, TimerPriority=120, TimerControl_Tag=VAR_BL_Timer, TimerOutput_Tag=VAR_Backlight

右下:設定成 5-100% 呼吸燈模式 (Party)Bottom-Right: 5-100% Breathing Mode (Party)

@PopupRadio, Group=Light_Scene, Tag=VAR_Party_SW, Value=2, Inc=-20, Frame=15, Def=0, TimerInterval=50, TimerMode=Bounce, TimerStep=1, TimerMin=5, TimerMax=100, TimerPriority=100, TimerControl_Tag=VAR_BL_Timer, TimerOutput_Tag=VAR_Backlight
介面佈局示意Layout Concept
TIMER ON/OFF
MOVIE (30%)
R
READ (90%)
R
PARTY (5-100%)
R

Tab Containers (容器分頁)(Multi-page Navigation)

💡 功能說明:Overview:

Tab Container 是一個核心架構功能,能讓 UI 設計師在單一螢幕的固定視窗範圍內,實現複雜的多頁面導航。透過設定 @CONTAINER_PLACEHOLDER@CONTAINER_PAGE,系統可以自動替換內容並加上專業的動態過場特效——完全不需寫任何程式碼。 The Tab Container is a core architectural feature that enables complex multi-page navigation within a fixed viewport on a single screen. By utilizing the @CONTAINER_PLACEHOLDER and @CONTAINER_PAGE tags, the system dynamically swaps content slides with professional transition effects—all without writing embedded code.

階段 1:視覺排版 (Visual Composition)Phase 1: Visual Composition

定義視窗範圍: 在主頁面 (Page 1) 建立一個矩形作為切換區的「舞台」。
準備子頁面內容: 準備其他要切換進來的內容頁 (Page 2, 3...)。提示:請直接複製主頁面,以確保內容所在的 X/Y 座標完全一致對齊!
Define Viewport: Create a primary slide and use a Rectangle to define the switching area (the "Stage").
Prepare Content: Prepare subsequent slides. Pro Tip: Copy Page 1 to ensure the content containers are in the exact same X/Y position.

階段 2:主頁面佔位符設定 (Placeholder Assignment)Phase 2: Placeholder Assignment

選取主頁面的邊界矩形,使用 PPT Add-in 點擊 "Set Placeholder (Main Page)"。系統會賦予一個唯一的 ID。 Select the boundary rectangle on Page 1. Click "Set Placeholder (Main Page)" in the Add-in. It receives a unique ID.

@CONTAINER_PLACEHOLDER, ID=MainContentArea

階段 3:子頁面內容標記 (Content Tagging)Phase 3: Content Tagging

在子頁面選取剛剛定義好範圍的物件,點擊 "Set Tab Page (Sub-page)"。在此您可以設定一個目標名稱 (TargetID) 以及進場/退場的特效。 On sub-slides, select the boundary object and click "Set Tab Page (Sub-page)". Here you define a TargetID and select transition effects.

@CONTAINER_PAGE, TargetID=Tab1_Layer, ShowEffect=ScrollRight, HidingEffect=ScrollRight

階段 4:按鈕觸發綁定 (Interaction Binding)Phase 4: Interaction Binding

最後,選取主頁面上的選單按鈕,利用 Add-in 的 "Bind to Selected Tab" 工具,將按鈕與剛才設定好的子頁面 (TargetContainer) 連接起來。 Finally, select a menu button on Page 1. Use the "Bind to Selected Tab" tool to link the button to the TargetID you defined.

@PopupRadio, Group=TabMenu, Value=1, TargetContainer=Tab1_Layer

轉場特效參考 (Transition Effects)Transition Effects Reference

分類Category 關鍵字參數 (Keywords)Keywords 說明Description
Basic None, Fade, Scale 無、淡入淡出、縮放Standard visibility and scaling transitions.
Scrolling ScrollLeft, ScrollUp, ScrollRight, ScrollDown 內容從指定方向滑入/滑出Content slides in/out from specified direction.
Wiping WipeLeft, WipeUp, WipeRight, WipeDown 內容漸進式擦除顯示Progressive unveiling of the content.
Hybrid ScrollRightWithFade, ScaleWithFade 結合位移與不透明度的混合變化Combines movement with opacity changes.
容器切換模擬Container Demo
Content Layer
CAN Bus Settings
Content Layer
ModBus Settings
CAN Bus
ModBus
點擊按鈕觀看 "Scroll" 切換特效Click buttons to preview Scroll effect

@ScaleCoverFlow (滑動輪播容器)(Carousel Container)

💡 功能說明:Overview:

這是一個進階的輪播容器元件。讓多個子元件 (按鈕、圖片) 以水平或垂直方式並排顯示,支援手勢滑動 (Swipe) 切換。系統會自動計算中心放大與兩側縮小的數學特效與 Z-Order,無需撰寫程式碼。 An advanced container widget featuring premium dynamic transition effects. Displays multiple child components side-by-side with swipe gesture support. Automatically handles math calculations for center magnification and side scaling.

階段 1:物件準備 (Asset Preparation)Phase 1: Asset Preparation

在投影片的非顯示區域 (外側灰色工作區),準備好所有要輪播的子元件 (例如 7 個咖啡種類按鈕)。
提示:為了確保最佳的視覺縮放,請確定所有子元件的長寬比例完全一致。
Prepare all child components to be animated in the non-display area (gray workspace).
Pro Tip: Ensure all child components have perfectly identical dimensions/aspect ratios.

階段 2:生成容器 (Container Generation)Phase 2: Container Generation

選取灰色工作區中的「其中一個」子元件,開啟 Add-in 面板,點擊 SCF_H (水平輪播)SCF_V (垂直輪播)
系統會在畫面上自動生成一個 紅色虛線框 (顯示範圍) 與一個 綠色虛線框 (來源框)
Select exactly "one" child component, open Add-in, click SCF_H (Horizontal) or SCF_V (Vertical).
The system generates a Red Frame (Viewport) and a Green Frame (Source).

階段 3:空間配置與排序 (Spatial Config)Phase 3: Spatial Configuration

⚠️ 排序規則 (重要!):Sorting Rule (Important!):
綠色來源框永遠是「橫向」的。系統嚴格依照綠框內的物件 「由左至右」 的物理 X 座標,來決定輪播載入的先後順序!請手動拉長綠框並將所有子元件拖入其中。 The Green Source Frame is always horizontal. The system evaluates items strictly from left to right based on physical X-coordinates within the green frame to determine the loading sequence!

紅框限制:將紅框移至 UI 正確顯示位置。若為水平輪播 (SCF_H),請勿調整紅框高度 (將對齊上邊緣)。若為垂直 (SCF_V),請勿調整紅框寬度 (將對齊左邊緣)。 Red Frame Constraints: Move to desired layout position. For SCF_H, do NOT adjust height. For SCF_V, do NOT adjust width.

階段 4:進階參數調整 (Advanced Parameters)Phase 4: Advanced Parameters

您可以在紅框的 Alt Text 中手動加入以下參數來微調物理特效: Manually append these parameters to the Red Frame's Alt Text to fine-tune physics:

Parameter說明DescriptionExample
Factor (預設:50) 控制兩側物件縮小的比例與拖曳阻力。(Default:50) Controls spatial scaling ratio and movement dampening. Factor=65
TotalFrame (預設:10) 滑動轉場的動畫影格數。數值越大越流暢,越小越即時。(Default:10) Animation frames for transition. Higher = smoother, Lower = snappier. TotalFrame=12
@ScaleCoverFlow, ID=CF_MAIN, ShowBackground=False, Factor=65, TotalFrame=12
3D 輪播模擬3D Carousel Demo
Americano
Hot Milk
Cappuccino
Latte
Espresso
拖曳模擬滑動 (Swipe)Drag to simulate Swipe

@Animation (動態平移轉場動畫)(Dynamic Translation Animation)

💡 功能說明:Overview:

提供自動計算位移、物理內插的動畫容器。設計師只需定義「起點」與「終點」的狀態與位置,系統就會自動運算平滑的線性平移 (Translation) 轉場效果(注意:實際效果為水平/垂直平移,並不會發生旋轉或滾動)。 A container handling complex math/physics for UI transitions. Define "Start" and "End" positions/states, and the system automatically calculates smooth linear translation displacement (Note: it translates linearly without any rolling or rotation).

階段 1:物件準備 (Asset Preparation)Phase 1: Asset Preparation

在 PPT 中準備兩組物件集合 (可包含多個 Widget):左邊為起始狀態,右邊為複製過去並修改外觀的終點狀態 Prepare two object collections: Left is the Starting State, Right is the duplicated and modified Destination State.

階段 2:設定動畫參數 (ANIM Configuration)Phase 2: ANIM Configuration

右鍵點擊起始狀態群組,在 Add-in 面板點擊 "ANIM",設定以下參數: Right-click the starting collection, click "ANIM" in Add-in, and configure:

Parameter說明Description
TotalFrame動畫總影格數 (預設:30)。決定動畫長短與平滑度。Total frames (Default: 30). Determines duration/smoothness.
MoveType移動物理特性 (Linear / EaseIn / EaseOut)。Movement physics (Linear / EaseIn / EaseOut).
Playing(True / False) 是否在載入時自動播放。Auto-play on load (True / False).
Repeat / Cycling是否重複播放 / 循環播放。Repeat playback / Continuous looping.

階段 3 & 4:自動生成框與定位 (Auto-Generated Frames)Phase 3 & 4: Auto-Generated Frames

⚠️ 危險警告:Crucial Note:
系統會生成 4 個虛線框。絕對不可以手動改變這些框的大小! 只能移動位置,否則會導致硬體渲染異常。 4 dashed frames are generated. Do NOT manually resize these frames! Modifying their size causes abnormal rendering. Only move them.
  • 藍框 (Blue): 起點來源 (將起點物件放入)。Starting Source (Place start objects here). @AnimSourceStart
  • 紫框 (Purple): 終點來源 (將終點物件放入)。Destination Source (Place end objects here). @AnimSourceEnd
  • 綠框 (Green): 動畫起點 (移到畫面實際起點)。Animation Start Position on screen. @AnimPosStart
  • 紅框 (Red): 動畫終點 (移到畫面實際終點)。Animation End Position on screen. @AnimPosEnd
平移動畫模擬Translation Demo
Blue
Source
Start
Purple
Source
End
Green
Pos
Start
Red
Pos
End
UI Object

@NavigationBar (手勢滑動導航列)(Swipe Navigation Bar)

💡 功能說明:Overview:

這是一個進階的導航列元件,整合了背景容器、CoverFlow 輪播與彈出按鈕。支援從螢幕邊緣滑動 (Edge Swipe) 來動態隱藏/顯示導航列,非常適合打造現代化的智慧顯示介面。 An advanced navigation bar widget integrating a background container, CoverFlow carousel, and PopupRadio buttons. It supports screen edge swipe gestures for dynamic hide/show states.

🔗 Watch Video Demo / 觀看影片示範

階段 1:圖示準備與自動命名Phase 1: Asset Prep & Naming

準備好您所有的選單圖示 (例如 10 個圖示群組)。將這 10 個群組選取後,點擊 Add-in 上的 "Set Navigation Bar Page (Item)"。
工具會自動產生 淺藍色外框 (Asset Frame),並為圖示加上帶有 @PopupRadio 的標籤。
Prepare all menu icons. Select them and click "Set Navigation Bar Page (Item)" in the Add-in.
The tool generates a Light Blue Asset Frame and assigns @PopupRadio tags to the icons.

階段 2:視窗範圍配置 (CoverFlow Mapping)Phase 2: Viewport Config

編譯器會自動生成一個 寶藍色虛線框 (Royal Blue CoverFlow Viewport Box)
請將這個寶藍色框拖拉到 UI 畫面上,這個框代表導航列圖示實際輪播顯示的範圍。
The compiler auto-generates a Royal Blue CoverFlow Viewport Box.
Drag this box onto the UI layout to define the actual display area for the carousel.

階段 3:手勢滑動範圍綁定Phase 3: Gesture Mapping

編譯器同時會生成兩個關鍵的外框:
1. 橘色框 B (Base Container):定義導航列展開後的最大背景範圍 (例如放在螢幕左側)。
2. 深藍色框 A (Active Hitbox):定義觸控感應的範圍。使用者在此區域滑動即可呼叫出導航列。
Two key frames are also generated:
1. Orange Box B (Base Container): The max expanded background area.
2. Dark Blue Box A (Active Hitbox): The swipe detection boundary.

階段 4:多頁面同步部署Phase 4: Multi-page Deployment

⚠️ 重要步驟:Critical Step:
將剛才建立好的所有外框與圖示 (淺藍、寶藍、橘、深藍框及內容) 全部選取,按 Ctrl+C 複製。
接著切換到您的第二頁、第三頁等所有需要導航列的投影片,按 Ctrl+V 貼上。
系統會自動處理跨頁的同步!
Select the entire integrated stack, press Ctrl+C. Navigate to subsequent slides and press Ctrl+V. The system maps shared variables to ensure seamless multi-page touch navigation!

系統生成的 Alt Text 範例 (供參考)Auto-Generated Tags Reference

/* 淺藍框內的按鈕 (自動產生) *//* Buttons inside Light Blue Frame */
@PopupRadio, Group=NavBar_Menu, Tag=Target_Page_Var...
/* 寶藍色視窗框 (自動產生) *//* Royal Blue Viewport Box */
@ScaleCoverFlow, ID=NavBar_Carousel...
/* 橘色/深藍色控制框 (自動產生) *//* Orange/Dark Blue Hitbox */
@NavigationBar, Target=NavBar_Carousel...
邊緣手勢模擬Edge Swipe Demo
滑動區 Box AHitbox A
Box B
Viewport
Opt 1
Opt 2
Opt 3
Main Content Area
Layer 1