配合ASA單板電腦應用程式撰寫時對於矩陣及資料結構內容的監控以及除錯需求, C4MLib有一組HMI函式群,能夠協助ASA_M128程式 斡旋,同步,並送收矩陣或資料結構的內容。
而在PC端的軟體ASADataAgent的HMI頁功能,則提供了 對話匡(Dialogue)功能來顯示及輸入斡旋訊息,同時提供了內容緩衝區(content Buffer) 功能來送收與顯示矩陣及資料結構內容。
ASA電腦C4MLib的矩陣及資料結構內容交換函式
C4MLib函式庫提供了一組HMI函式群,函式群除了有printf(), scanf()可供ASA上的應用程式呼叫來達成與PC對話協調之外,C4MLib函式庫另外還提供了矩陣送收函式HMI_snput_matrix(), HMI_snget_matrix()來斡旋送收內容,同步雙方步調後送收矩陣內容。 提供了 資料結構內容送收函式HMI_snput_struct(), HMI_snget_struct()來斡旋送收內容,同步雙方步調後送收資料結構的內容
發送協調訊息
char printf(char *MassageString_p);
簡介:ASA單板能夠透過呼叫本函式,要求PC端ASADataAgent的HMI送出,或接收,指定名稱,形態,以及格式之矩陣內容。或則回應,先前PC端送來送收矩陣內容的要求。
傳址參數:
MassageString_p:可以是命令字串或則是回應字串,
• 命令字串:由命令代碼,名稱,格式共同組成之斡旋訊息字串。
例如 要求PC送出8位元整數3乘7矩陣:~PM,i8,3x7\n
又如 要求PC送兩欄資料結構,第一欄8位元正整數5個,第二欄16位元整數1個:~PS, ui8_5,i16_1
• 回應字串:僅由回應碼組成。
◦ 回應代碼:
▪ ~BZ:忙錄中,矩陣內容尚未備妥,正在準備中,請稍待,備妥後會再主動通知PC 執行送收。
▪ ~ACK:己備妥,後續馬上配合執行送收。
等待接收協調訊息
char scanf( “%c”, char *MassageString_p);
簡介:ASA單板能夠透過呼叫本函式,進入等待接收PC串列埠送來,PC主動要求ASA單板配合送收矩陣的訊息,或則 對於先前ASA單板送出斡旋訊息之回應。
傳址參數:
*MassageString_p:同printf()之MassageString_p
接收矩陣資料函式
char HMI_snget_matrix(char Type, char Dim1, char Dim2, void *Data_p);
簡介:整合prinf()、scanf(),先送出欲同步交換資料訊息並達成同步後,以HMI_get_matrix(),HMI接收矩陣資料。
輸入參數:
Type:欲交換資料之資料型態編號,詳見下方資料型態對應編號表。
Dim1:欲交換矩陣資料維度1大小。
Dim2:欲交換矩陣資料維度2大小。
Data_p:欲存放交換資料的起始記憶體位置。
回傳:
0:成功無誤。
1:資料型態不支援,請檢察料格式字串是否正確。
2:通訊錯誤,請檢查雙方程式流程是否對應。
3:同步失敗
發送矩陣資料函式
char HMI_snput_matrix(char Type, char Dim1, char Dim2, void *Data_p);
簡介:整合prinf()、scanf(),先送出欲同步交換資料訊息並達成同步後,以HMI_put_matrix(),透過串列埠發送矩陣資料給HMI。
輸入參數:
輸入參數:
Type:欲交換資料矩陣元素型態代碼。
Dim1:欲交換矩陣資料維度1大小。
Dim2:欲交換矩陣資料維度2大小。
Data_p:欲存放交換資料的起始記憶體位置。
回傳:
0:成功無誤。
1:資料型態編號不支援,請檢察Type是否正確。
2:通訊錯誤,請檢查雙方程式流程是否對應。
3:同步失敗。
接收資料結構函式
char HMI_snget_struct(char *FormatString, int Bytes, void *Data_p);
簡介:整合,prinf(), scanf(),先送出欲同步交換資料訊息並達成同步後,以HMI_get_struct()透過串列埠接收從HMI來之資料結構。
輸入參數:
FormatString:結構化資料的格式字串,欄位型態1_數目,欄位型態2_數目,...,欄位型態_數目 其中元素型態代碼詳見下型態代碼表介紹。
例如:i8_3,ui16_10,f32_10
Bytes:結構化資料的位元組大小。
Data_p:愈存放交換資料的起始記憶體位置。
回傳:
0:成功無誤。
1:資料大小錯誤。
2:格式字串錯誤,請檢察雙方格式字串是否相同。
3:同步失敗,請檢察HMI方是否也是使用同步版函式。
4:通訊錯誤,請檢查雙方程式流程是否對應。
發送資料結構函式
char HMI_snput_struct(char *FormatString, int Bytes, void *Data_p);
簡介:整合,prinf(), scanf(),先送出欲同步交換資料訊息並達成同步後,以HMI_put_struct(), 透過串列埠發送資料結構給HMI,。
輸入參數:
FormatString:結構化資料的格式字串,欄位型態1_數目,欄位型態2_數目,...,欄位型態_數目 其中元素型態代碼詳見下型態代碼表介紹。
例如:i8_3,ui16_10,f32_10
Bytes:結構化資料位元組大小。
Data_p:結構化資料的起始記憶體位置。
回傳:
0:成功無誤。
1:資料大小錯誤。
3:同步失敗,請檢察HMI方是否也是使用同步版函式。
4:通訊錯誤,請檢察雙方程式流程是否對應。