




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE概要設計說明書PAGE2TSHome概要設計說明書文件編號保密級別總頁數編制
評審記錄對《TSHome智能家居主機軟件第一階段概要設計說明書V1.00》的評審意見:上述問題修改驗證后,由驗證后,本文件即可發布。評審人員簽字:問題修改驗證結果:驗證人簽字:時間:年月日變更日志編號版本修改內容修改人修改日期11.00發布
目錄1 引言 11.1目的 11.2適用范圍 11.3定義 11.4參考資料 12 總體設計 22.1設計目標 22.2運行環境 22.3網絡結構 22.4總體設計思路和處理流程 22.5模塊結構設計 22.6功能需求與程序模塊的關系(可選) 22.7尚未解決的問題 23 接口設計 33.1用戶接口 33.2外部接口 33.3內部接口 34 界面總體設計 45 數據結構設計 55.1設計原則 55.2數據庫環境說明 55.3數據庫命名規則 55.4邏輯結構 55.5物理存儲 55.6數據備份和恢復 56 系統出錯處理設計[可選] 66.1出錯信息 66.2補救措施 66.3系統維護設計 67 系統安全設計 77.1數據傳輸安全性設計 77.2應用系統安全性設計 77.3數據存儲安全性設計 78 系統部署(可選) 8概要設計說明書PAGE1引言1.1目的本文檔是對TSHome智能家居主機軟件的需求規格進行詳細分析和討論后得出的概要設計說明書,旨在明確TSHome智能家居主機軟件的設計目標。通過本概要設計說明書,可以了解到TSHome智能家居主機軟件開發的技術路線、功能邊界、模塊設計等。本文檔面向的讀者是:TSHome智能家居主機軟件的開發人員及測試人員,TSHome智能家居主機軟件的通訊協議模塊概要設計說明書的評審人員。1.2適用范圍TSHome是在南京原有的智能家居技術的基礎上,利用遠程控制技術實現對家居設備遠程實時監控的控制平臺。本項目所研發的主機為該平臺的一個重要組成部分,旨在根據服務器提供的信息,與控制終端建立連接,并實現控制終端通過主機控制家居設備。。1.3定義下表列出本報告中專門術語的定義、英文縮寫詞的原詞組和意義、項目組內達成一致意見的專用詞匯,同時繼承全部的先前過程中定義過的詞匯。詞匯名稱詞匯含義備注對稱加密發收信雙方都使用相同的密鑰對數據進行加密和解密非對稱加密發收信雙方使用不同的密鑰對數據進行加密和解密RSA一種非對稱加密算法AES密碼學中的高級加密標準,又稱Rijndael加密法1.4參考資料編號資料名稱說明1《TSHome智能家居主機軟件項目立項書》2《TSHome智能家居主機軟件項目計劃書》3《TSHome智能家居主機軟件需求規格說明書》概要設計說明書PAGEPAGE104總體設計2.1設計目標讓程序有條不紊的執行2.2運行環境硬件環境硬件環境類別要求備注設備linux主機CPU>=0.5GHz內存>=256MFLASH>=256M以太網卡4個,10/100Mb/sUSB接口>=1個KNX接口>=1個232串口>=4個485串口>=2個wifi網卡1個802.11b/g軟件環境軟件環境類別要求備注操作系統Linux2.3網絡結構外網模式:內網模式2.4總體設計思路和處理流程TSHome智能家居主機軟件負責處理主機和服務器,移動終端之間的通訊,包括如下子模塊:服務器通訊處理Deamon模塊服務器通訊處理Deamon模塊負責處理主機和服務器之間的通訊,獲取通訊報文后交與協議處理模塊處理。移動終端通訊處理Deamon模塊移動終端通訊處理Deamon模塊負責處理主機和終端之間的通訊,獲取通訊報文后交與協議處理模塊處理。協議處理模塊協議處理模塊負責報文解析、拼裝生成控制命令、發送控制消息給控制處理模塊等控制處理模塊控制處理模塊包含各個控制的處理邏輯,實現通訊處理,設備控制的操作。2.5模塊結構設計2.6模塊的復用由于此項目為公司第一個嵌入式項目,故所有代碼均重新開發,未復用其他項目的模塊。2.7尚未解決的問題無
接口設計3.1外部接口3.2.1主機與控制終端通信啟動協議棧接口原型intprotocol_start()接口說明啟動協議棧:本模塊實現,一般由上層協議處理模塊調用。輸入參數void輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。停止協議棧接口原型intprotocol_end()接口說明停止協議棧:本模塊實現,主機停機/重啟時被調用,一般由上層協議處理模塊調用。輸入參數void輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。添加網關通路接口原型intprotocol_add_line(intinterface_id,intgateway_id)接口說明添加網關通路:本模塊實現,由數據庫模塊調用。參數interface_id、gateway_id分別為主機硬件接口、KNX/Wifi網關數據庫記錄的id。輸入參數新添加通路中,主機硬件口id和KNX/Wifi網關的id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。刪除通路中的網關接口原型intprotocol_delete_line(intgateway_id)接口說明刪除通路中的網關:本模塊實現,由數據庫模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。修改通路中網關的信息接口原型intprotocol_update_gateway(intgateway_id)接口說明修改網關信息:本模塊實現,由數據庫模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。連接網關通路接口原型intprotocol_connect_line(intgateway_id)接口說明連接網關:本模塊實現。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。斷開網關通路接口原型intprotocol_disconnect_line(intgateway_id)接口說明斷開網關:本模塊實現,由協議處理模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。獲取通路的連接狀態接口原型intprotocol_get_line_status(intgateway_id,bool*status)接口說明獲取通路連接狀態:本模塊實現,由協議處理模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數網關當前的連接狀態,false為未連接上,true為已連接上。返回值int,錯誤碼:0為成功,其它為失敗。回調接口,網關狀態的改變接口原型voidon_gateway_status_changed(intgateway_id,boolstatus)接口說明通知通路連接狀態的改變:協議處理模塊實現,由本模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id,網關的連接狀態:false為斷開,true為連接。輸入參數網關id,連接狀態。輸出參數無返回值voidKNX網關的自發現接口原型intprotocol_knx_search_req(intinterface_id)接口說明KNX網關的自發現:本模塊實現,一般由數據庫處理模塊調用。參數interface_id為主機硬件網口對應的id。輸入參數主機硬件口id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。)回調接口,KNX網關自發現的回調接口原型voidon_knx_search_res(intinterface_id,char*ip,intport)接口說明KNX網關自發現的回復回調:協議處理模塊實現,由本模塊調用。參數interface_id為主機硬件網口對應的id。輸入參數主機硬件口id,網關的ip地址,網關的端口號。輸出參數無返回值voidKNX數據讀寫請求接口接口原型intprotocol_knx_rw_req(knx_control_req_t*knx_data_req)接口說明數據請求:本模塊實現,由協議處理模塊調用。輸入參數knx_control_req_t類型,knx數據請求結構體。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。回調接口,KNX數據讀寫的回復接口原型voidon_knx_rw_res(knx_control_res_t*knx_data_res)接口說明KNX數據回復:協議處理模塊實現,由本模塊調用。輸入參數knx_control_res_t類型,knx數據回復結構體。輸出參數無返回值voidWifi數據讀寫請求接口接口原型intprotocol_wifi_rw_req(wifi_control_req_t*wifi_data_req)接口說明Wifi數據請求:本模塊實現,由協議處理模塊調用。輸入參數wifi_control_req_t類型,wifi數據請求結構體。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(15)回調接口,Wifi數據讀寫的回復接口原型voidon_wifi_rw_res(wifi_control_res_t*wifi_data_res)接口說明Wifi數據回復:協議處理模塊實現,由本模塊調用。輸入參數wifi_control_res_t類型,knx數據回復結構體。輸出參數無返回值void回調函數的設置接口接口原型voidprotocol_set_calls(on_gateway_status_changed,on_knx_search_res,on_knx_rw_res,on_wifi_rw_res);接口說明設置回調函數:本模塊實現。輸入參數網關狀態改變的回調函數地址,KNX網關自發現回復的回調函數地址,KNX數據回復的回調函數地址,Wifi數據回復的回調函數地址。輸出參數無返回值void3.2.2主機與server服務器通信接口原型voidexec_recvmsg_action(u_char*recv_buff,intlen);接口說明報文統一處理函數輸入參數接收到的報文buff,報文長度輸出參數無返回值無接口原型intfill_req_report(u_char*send_buff,void*req);接口說明組裝報文輸入參數報文填充數據輸出參數報文buff返回值buffer長度接口原型intparse_res_report(constu_char*recv_buff,void*res);接口說明解析報文數據輸入參數接收到的報文buff輸出參數解析后的報文數據返回值報文長度接口原型intget_ctrl_command(u_char*command,int*len);接口說明外部接口,獲取設備控制命令輸入參數輸出參數設備控制命令報文,報文長度返回值錯誤碼接口原型intask_secret_action();接口說明獲取公鑰輸入參數無輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intpass_secret_action(constchar*secret_key);接口說明傳遞對稱密鑰給服務器輸入參數密鑰串輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intlogin_server_action(constchar*username,intname_len, constchar*password,intpwd_len);接口說明登錄服務器輸入參數用戶名,用戶名長度,密碼,密碼長度輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_heartBeat(void*param);接口說明心跳線程函數,維持與服務器的鏈接輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_heartBeat(void*param);接口說明心跳線程函數,維持與服務器的鏈接輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intconfig_update_action(intsession_id,constchar*latest_time);接口說明檢查配置是否需要更新輸入參數會話id,上次配置更新時間輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intdo_config_update(constchar*download_url)接口說明下載更新輸入參數配置文件的下載地址輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intsoftware_update_action(intsession_id, intbig_version, intsamll_version, intclient_type);接口說明軟件更新請求輸入參數會話id,大版本號,小版本號,終端類型輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intdevice_ctrl_action(constchar*ctrl_msg);接口說明設備控制命令處理輸入參數控制命令報文輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intstop_host_network_action(intsession_id);接口說明請求主機斷開外網功能輸入參數會話id輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intlog_out_action(intsession_id);接口說明退出登錄輸入參數會話id輸出參數無返回值錯誤碼,0-成功,其他失敗3.2內部接口3.3.1通訊模塊與控制模塊的接口接口原型structsockaddr_ininit_sock_addr(constchar*ip,constintport);接口說明創建socket通訊地址輸入參數ip地址,端口號輸出參數無返回值structsockaddr_in類型的通訊socket地址接口原型intinit_udp_socket(constchar*ip,constintport);接口說明創建udpsocket輸入參數ip地址,端口號輸出參數無返回值Socket句柄接口原型intclose_udp_socket(intsock);接口說明關閉udpsocket輸入參數Socket句柄輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intsend_udp_data(constintsock,constchar*send_buf,intlen,intflags, conststructsockaddr*dest_addr,socklen_tdest_len);接口說明發送udp數據包輸入參數socket句柄,數據包buffer,數據包長度,消息的傳輸類型,目的地址,目的地址長度輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intrecv_udp_data(constintsock,char*recv_buf,intlen,intflags, structsockaddr*source_addr,socklen_t*source_len);接口說明接收udp數據包輸入參數socket句柄,接收數據的buffer,接收數據的buffer長度,消息的傳輸類型,數據包源地址,源地址長度輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intudp_recv_handle(void*param);接口說明接收udp數據包的線程函數輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intudp_send_handle(void*param);接口說明發送udp數據包的線程函數輸入參數void*,發送函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型inlineexternTHREAD_HANDLECREATE_THREAD(int(*pThreadFun)(void*),void*pParam);接口說明創建一個新的線程輸入參數線程執行函數的地址;線程執行函數的參數輸出參數無返回值線程句柄接口原型inlineexternvoidDETACH_THREAD(THREAD_HANDLEhThread);接口說明從主線程分離一個子線程輸入參數子線程句柄輸出參數無返回值無接口原型inlineexternvoidEND_THREAD(THREAD_HANDLEhThread);接口說明取消一個線程輸入參數線程句柄輸出參數無返回值無接口原型inlineexternvoidWAIT_THREAD(THREAD_HANDLEhThread);接口說明掛起一個線程輸入參數線程句柄輸出參數無返回值無接口原型aes_encodeat_create_key();接口說明產生生成密鑰的字符數組。輸入參數無輸出參數無返回值接收生成密鑰的字符數組。接口原型int32_tat_get_encrypt_len(constchar*base_string);接口說明獲取加密字符數組長度,用于分配加密字符數組內存空間輸入參數base_string:原文字符數組輸出參數無返回值密文字符串長度接口原型int16_tat_encrypt(constchar*base_string,u_char*s_encrypt,intlen,aes_encodeaes_encode_ins);接口說明獲取加密字符串數組輸入參數base_string:原文字符數組;aes_encode_ins:密鑰;len:原文長度輸出參數s_encrypt:加密密文;返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型int16_tat_decrypt(u_char*encrypt_string,u_char*decrypt_string,int16_tlen,aes_encodeaes_encode_ins)接口說明獲取原文字符串輸入參數encrypt_string:原文字符數組;aes_encode_ins:密鑰;len:原文長度輸出參數decrypt_string,:原文;返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型RSA*rt_create_rsa();接口說明產生隨機非對稱算法的密鑰輸入參數無輸出參數無返回值接收生成的非對稱算法密鑰接口原型RSA*rt_get_rsa_ins(constchar*n,constchar*public_key,constchar*private_key);接口說明產生非對稱算法的密鑰輸入參數n:RSA加密算法模數public_key:RSA公鑰指數private_key:RSA:私鑰指數輸出參數無返回值接收生成的非對稱算法密鑰接口原型intrt_encrypt(constchar*base,u_char*s_encode,RSA*r);接口說明獲取加密字符數組輸入參數base_string:原文字符數組r:密鑰輸出參數 base_string:密文字符數組返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型intrt_decrypt(constu_char*s_encrypt,u_char*s_decrypt,RSA*r)接口說明獲取加密字符串輸入參數s_encrypt:密文字符數組r:密鑰輸出參數 s_decrypt:原文字符數組返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型voidrt_destory_rsa_ins(RSA*r);接口說明銷毀密鑰,釋放內存輸入參數r:密鑰輸出參數無返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗3.3.2控制模塊與數據庫的接口獲取主機所有網口信息接口原型intdb_get_all_interface(list_head*head,host_interface_list_t*inter_list_ptr)接口說明數據請求:數據庫處理模塊實現,由本模塊調用。輸入參數主機硬件口鏈表頭指針和結構體空指針。輸出參數主機硬件口結構體空指針返回值int,錯誤碼:0為成功,其它為失敗。查詢所有KNX、Wifi網關通路的信息接口原型intdb_get_all_lines(list_head*head,ts_passageway_list_t*line_list)接口說明數據請求:數據庫處理模塊實現,由本模塊調用。輸入參數通路鏈表頭指針和結構體空指針。輸出參數通路結構體空指針返回值int,錯誤碼:0為成功,其它為失敗。查詢KNX設備的當前值接口原型intdb_get_knx_group_data(knx_control_res_t*knx_group_data)接口說明查詢KNX設備的當前值:數據庫操作模塊實現,由本模塊調用。輸入參數knx邏輯組數據結構體指針:knx_group_data。結構體輸入字段:home_device_id、main_addr、mid_addr、logical_addr輸出參數knx邏輯組數據結構體指針:knx_group_data結構體輸出字段:result_code、data_len、data_type、data返回值int,錯誤碼:0為成功,其它為失敗。將KNX設備的當前值寫入數據庫接口原型intdb_set_knx_group_data(knx_control_res_tknx_group_data)接口說明將KNX設備的當前值寫入數據庫:數據庫操作模塊實現,由本模塊調用。輸入參數knx邏輯組數據結構體指針:knx_group_data。結構體輸入字段:home_device_id、main_addr、mid_addr、logical_addr、data_len、data_type、data輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。查詢Wifi設備的主機口及網關信息接口原型intdb_get_wifi_interface_gateway(inthome_device_id,int*interface_id,int*gateway_id)接口說明查詢Wifi設備的主機口及網關信息:數據庫操作模塊實現,由本模塊調用。輸入參數設備home_device_id。輸出參數主機硬件口id:interface_id,網關id:gateway_id返回值int,錯誤碼:0為成功,其它為失敗。查詢紅外設備的通路接口原型intdb_get_infrared_device_info(inthome_device_id,int*interface_id,int*gateway_id,int*red_line_number)接口說明查詢紅外設備的通路:數據庫操作模塊實現,由本模塊調用,進行紅外控制時調用。輸入參數設備home_device_id。輸出參數主機硬件口id:interface_id,網關id:gateway_id,紅外設備的通路。返回值int,錯誤碼:0為成功,其它為失敗。查詢串口設備的分區、規約文件名稱接口原型intdb_get_serial_device_info(inthome_device_id,int*interface_id,int*gateway_id,int*device_area_number,char*protocol_name,int*len)接口說明查詢串口設備的分區、規約文件名稱:數據庫操作模塊實現,由本模塊調用。輸入參數設備home_device_id。輸出參數主機硬件口id,網關id,串口設備的分區,協議名稱,名稱長度。返回值int,錯誤碼:0為成功,其它為失敗。添加通路接口原型intprotocol_add_gateway_of_line(intgateway_id,char*ip,intport,ts_host_interface_tinterface)接口說明添加通路中的網關:本模塊實現,由數據庫操作模塊調用。輸入參數網關id:gateway_id,網關ip,網關端口,主機硬件口信息結構體輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。刪除通路接口原型intprotocol_add_gateway_of_line(intgateway_id)接口說明刪除通路中的網關:本模塊實現,由數據庫操作模塊調用。輸入參數網關id輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。修改通路中的網關信息接口原型intprotocol_modify_gateway_of_line(intgateway_id,char*ip,intport)接口說明修改通路中的網關信息:本模塊實現,由數據庫操作模塊調用。輸入參數網關id,網關ip,網關端口輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。 數據庫操作模塊為本模塊提供查詢所有可讀/可寫等權限邏輯組接口接口原型intdb_get_knx_groups(intgateway_id,list_head*head,knx_control_info_list_t*knx_group_list,intright)接口說明查詢給定網關下的所有具有一定權限的邏輯組,權限包括可讀、可寫和可讀可寫。輸入參數網關id:gateway_id,鏈表頭指針,knx邏輯組數據結構體鏈表空指針,邏輯組的權限right輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。 模塊設計本項目所有模塊除了通訊模塊是架構與PJSIP通訊庫,其他的都是重新開發的通信模塊服務器通訊處理Deamon模塊模塊說明該模塊負責處理主機與服務器之間的通信及數據處理,包括登錄服務器,更新配置,保持心跳,同時負責處理主機與服務器之間數據的接收與發送。模塊設計流程圖描述:啟動服務器通訊處理Deamon后,首先進行登錄操作;登錄成功后,啟動心跳線程,維持主機與服務器之間通訊連接;啟動報文接收線程,負責監聽UDP通訊端口,接收服務器發送過來的報文;接收到報文后,將報文交由協議處理模塊處理;啟動配置更新檢查線程,負責檢查服務器端配置是否有更新,如果沒有更新,該線程結束;如果有更新,則向服務器請求下載更新地址進行配置更新,更新成功后重啟主機;如果更新失敗則再次請求更新,直至更新完成;接口設計接口原型intstart_server_deamon(void*param);接口說明啟動服務器通訊處理deamon輸入參數void*,啟動deamon所需的入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_login_handle(constchar*username,intname_len, constchar*password,intpwd_len);接口說明登錄服務器輸入參數用戶名,用戶名長度,密碼,密碼長度輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_recv_handle(void*param);接口說明接收服務器發送過來的報文輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_logout_handle(intsession_id);接口說明注銷服務器輸入參數當前會話id輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_heartbeat_handle(void*param);接口說明心跳處理輸入參數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_update_handle(void*param);接口說明更新處理輸入參數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intget_server_recv_datagram(char*mes);接口說明獲取接收的報文輸入參數無輸出參數收到的報文返回值錯誤碼終端通訊處理Deamon模塊模塊說明該模塊負責處理主機與移動終端之間的通訊,監聽終端的控制請求,管理報文的接收與發送。模塊設計.2.1流程圖描述:啟動終端通訊處理Deamon后將啟動報文接收線程,監聽UDP通信端口,接收來自終端的控制請求,將接收到的報文發送至協議處理模塊處理;啟動報文發送線程,發送設備的反饋信息給終端.2.2接口設計接口原型intstart_client_deamon(void*param);接口說明啟動終端通訊處理deamon輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_recv_handle(void*param);接口說明接收客戶端發送過來的報文輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_send_handle(void*param);接口說明發送設備反饋狀態至終端輸入參數void*,設備狀態信息的結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_login_handle(constchar*usename,constchar*pwd);接口說明處理終端登錄請求輸入參數用戶名,密碼輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_logout_handle(intsession_id);接口說明處理終端注銷請求輸入參數當前會話id輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intget_client_recv_datagram(char*msg);接口說明獲取接收的報文輸入參數無輸出參數收到的報文返回值錯誤碼,0-成功,其他失敗協議處理模塊模塊說明 該模塊包括報文處理功能和命令分發功能,在該模塊進行報文解析,報文拼組,生成控制命令,分發控制命令等處理。模塊設計.2.1流程圖描述:從通訊處理Deamon獲取接收到的報文,進行報文解析,解密處理,生成控制命令,之后轉發給控制處理模塊,執行相應的操作。從控制處理模塊接收到需要發送的內容,進行報文拼組,加密處理,之后由通訊處理Deamon的UDP通訊管理模塊發送出去。.2.2接口設計接口原型voidexec_recvmsg_action(u_char*recv_buff,intlen);接口說明報文統一處理函數輸入參數接收到的報文buff,報文長度輸出參數無返回值無接口原型intfill_req_report(u_char*send_buff,void*req);接口說明組裝報文輸入參數報文填充數據輸出參數報文buff返回值buffer長度接口原型intparse_res_report(constu_char*recv_buff,void*res);接口說明解析報文數據輸入參數接收到的報文buff輸出參數解析后的報文數據返回值報文長度接口原型intget_ctrl_command(u_char*command,int*len);接口說明外部接口,獲取設備控制命令輸入參數輸出參數設備控制命令報文,報文長度返回值錯誤碼控制處理模塊模塊說明 該模塊是一組命令操作的集合,包括索要密鑰,傳遞密鑰,心跳,登錄,更新配置,p2p處理,設備操作與反饋,停止外網服務,退出登錄。接口設計接口原型intask_secret_action();接口說明獲取公鑰輸入參數無輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intpass_secret_action(constchar*secret_key);接口說明傳遞對稱密鑰給服務器輸入參數密鑰串輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intlogin_server_action(constchar*username,intname_len, constchar*password,intpwd_len);接口說明登錄服務器輸入參數用戶名,用戶名長度,密碼,密碼長度輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intserver_heartBeat(void*param);接口說明心跳線程函數,維持與服務器的鏈接輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intclient_heartBeat(void*param);接口說明心跳線程函數,維持與服務器的鏈接輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intconfig_update_action(intsession_id,constchar*latest_time);接口說明檢查配置是否需要更新輸入參數會話id,上次配置更新時間輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intdo_config_update(constchar*download_url)接口說明下載更新輸入參數配置文件的下載地址輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intsoftware_update_action(intsession_id, intbig_version, intsamll_version, intclient_type);接口說明軟件更新請求輸入參數會話id,大版本號,小版本號,終端類型輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intdevice_ctrl_action(constchar*ctrl_msg);接口說明設備控制命令處理輸入參數控制命令報文輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intstop_host_network_action(intsession_id);接口說明請求主機斷開外網功能輸入參數會話id輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intlog_out_action(intsession_id);接口說明退出登錄輸入參數會話id輸出參數無返回值錯誤碼,0-成功,其他失敗公共功能模塊UDP通訊管理模塊功能說明 UDP底層通信模塊,對udpsocket常用方法進行了封裝,方便調用。接口設計接口原型structsockaddr_ininit_sock_addr(constchar*ip,constintport);接口說明創建socket通訊地址輸入參數ip地址,端口號輸出參數無返回值structsockaddr_in類型的通訊socket地址接口原型intinit_udp_socket(constchar*ip,constintport);接口說明創建udpsocket輸入參數ip地址,端口號輸出參數無返回值Socket句柄接口原型intclose_udp_socket(intsock);接口說明關閉udpsocket輸入參數Socket句柄輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intsend_udp_data(constintsock,constchar*send_buf,intlen,intflags, conststructsockaddr*dest_addr,socklen_tdest_len);接口說明發送udp數據包輸入參數socket句柄,數據包buffer,數據包長度,消息的傳輸類型,目的地址,目的地址長度輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intrecv_udp_data(constintsock,char*recv_buf,intlen,intflags, structsockaddr*source_addr,socklen_t*source_len);接口說明接收udp數據包輸入參數socket句柄,接收數據的buffer,接收數據的buffer長度,消息的傳輸類型,數據包源地址,源地址長度輸出參數無返回值狀態碼,0-成功,其他失敗接口原型intudp_recv_handle(void*param);接口說明接收udp數據包的線程函數輸入參數void*,接收函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗接口原型intudp_send_handle(void*param);接口說明發送udp數據包的線程函數輸入參數void*,發送函數入參結構體指針輸出參數無返回值錯誤碼,0-成功,其他失敗線程管理模塊功能說明 線程管理模塊,對pthread庫的常用方法進行了封裝,方便調用。接口設計接口原型inlineexternTHREAD_HANDLECREATE_THREAD(int(*pThreadFun)(void*),void*pParam);接口說明創建一個新的線程輸入參數線程執行函數的地址;線程執行函數的參數輸出參數無返回值線程句柄接口原型inlineexternvoidDETACH_THREAD(THREAD_HANDLEhThread);接口說明從主線程分離一個子線程輸入參數子線程句柄輸出參數無返回值無接口原型inlineexternvoidEND_THREAD(THREAD_HANDLEhThread);接口說明取消一個線程輸入參數線程句柄輸出參數無返回值無接口原型inlineexternvoidWAIT_THREAD(THREAD_HANDLEhThread);接口說明掛起一個線程輸入參數線程句柄輸出參數無返回值無加密模塊對稱加密模塊模塊說明 用aes加密/解密傳輸或保存的數據。模塊設計模塊概述:在用戶登陸之前創建對稱密鑰,而后用這組密鑰進行加密和解密所需數據。流程圖詳細描述主機生成對稱加密密鑰數組,傳遞給服務器,而后和服務器之前的私密數據需要用該密鑰進行加密和解密;當主機要發送需加密的數據給服務器時,先開辟所需內存,開辟大小為大于字符數組長度的最小的預先定義的塊數(一般為16)的整數倍;而后通過生成的加解密字符串進行加密;生成加密的密文后傳輸;當主機從服務器接收到加密的數據時,先開辟所需內存,開辟內存大小等于密文字符數組;而后通過生成的加解密字符串進行解密;取得密文后進行所需操作接口說明數據類型定義對稱算計加密結構體加密密鑰結構體typedefstruct_ts_aes_encode{ AES_KEYencrypt_aes; AES_KEYdecrypt_aes; unsignedcharkey[BLOCK_SIZE];}aes_encode;接口設計接口原型aes_encodeat_create_key();接口說明產生生成密鑰的字符數組。輸入參數無輸出參數無返回值接收生成密鑰的字符數組。接口原型int32_tat_get_encrypt_len(constchar*base_string);接口說明獲取加密字符數組長度,用于分配加密字符數組內存空間輸入參數base_string:原文字符數組輸出參數無返回值密文字符串長度接口原型int16_tat_encrypt(constchar*base_string,u_char*s_encrypt,intlen,aes_encodeaes_encode_ins);接口說明獲取加密字符串數組輸入參數base_string:原文字符數組;aes_encode_ins:密鑰;len:原文長度輸出參數s_encrypt:加密密文;返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型int16_tat_decrypt(u_char*encrypt_string,u_char*decrypt_string,int16_tlen,aes_encodeaes_encode_ins)接口說明獲取原文字符串輸入參數encrypt_string:原文字符數組;aes_encode_ins:密鑰;len:原文長度輸出參數decrypt_string,:原文;返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗非對稱加密模塊模塊說明 用RSA算法加密/解密所要傳輸或保存的數據信息。模塊設計模塊概述:在用戶登陸之前創建對稱密鑰,而后用這組密鑰進行加密和解密所需數據。流程圖:詳細描述向服務器索要公鑰后保存在本地內存;加密生成對稱密鑰字符串后傳輸給服務器取得密文后進行所需操作接口設計接口原型RSA*rt_create_rsa();接口說明產生隨機非對稱算法的密鑰輸入參數無輸出參數無返回值接收生成的非對稱算法密鑰接口原型RSA*rt_get_rsa_ins(constchar*n,constchar*public_key,constchar*private_key);接口說明產生非對稱算法的密鑰輸入參數n:RSA加密算法模數public_key:RSA公鑰指數private_key:RSA:私鑰指數輸出參數無返回值接收生成的非對稱算法密鑰接口原型intrt_encrypt(constchar*base,u_char*s_encode,RSA*r);接口說明獲取加密字符數組輸入參數base_string:原文字符數組r:密鑰輸出參數 base_string:密文字符數組返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型intrt_decrypt(constu_char*s_encrypt,u_char*s_decrypt,RSA*r)接口說明獲取加密字符串輸入參數s_encrypt:密文字符數組r:密鑰輸出參數 s_decrypt:原文字符數組返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗接口原型voidrt_destory_rsa_ins(RSA*r);接口說明銷毀密鑰,釋放內存輸入參數r:密鑰輸出參數無返回值判斷是否獲取成功EXIT_SUCCESS:成功其他:失敗協議棧模塊整體框架系統框架圖KNX及Wifi通訊協議模塊,在TSHome系統中的基本結構如圖3-1所示:圖3-1KNX及Wifi通訊協議模塊結構圖KNX及Wifi通訊協議模塊,接收上層所有關于KNX、Wifi網關的相關操作,直接對接的上層模塊是協議處理模塊,間接上層可能包括客戶端、服務器以及主機Web頁面等。本模塊的職能是:一方面是為上層應用提供KNX及Wifi網關相關的操作;另一方面是保持與KNX網關、Wifi網關的連接,并實現對KNX、Wifi設備的監控、操作的功能。另外,一些與網關相關的配置操作,如:KNX、Wifi網關的添加/刪除/修改操作,也需要由本模塊作出相應的處理。協議處理模塊將其上層的應用需求進行分析,并將KNX、Wifi的相關操作通過調用本模塊接口,以執行請求并返回,如有相關的數據信息則本模塊將數值信息反饋至協議處理模塊。由于KNX協議模塊需要記錄KNX設備的當前值,KNX、Wifi網關需要記錄其連接狀態,因此,內存實時數據庫的接口有:網關狀態的讀、寫,KNX設備當前值的讀、寫。另外,在處理KNX及Wifi的其它請求時,需要多項數據庫操作,包括:KNX網關的自發現,KNX及Wifi網關的連接、斷開、設備操作、添加網關、刪除網關、修改網關信息等。模塊設計模塊與接口模塊說明KNX通訊協議模塊負責處理KNX網關及設備的相關請求,主要包括KNX網關的自發現、連接、斷開連接、數據讀寫,以及網關的添加、刪除和修改操作。它負責處理上層的KNX請求,返回處理結果,并反饋數據信息,如涉及數據庫操作,則將相關的信息記錄到數據庫。模塊設計本模塊主要用于處理KNX數據請求,包括連接、斷開、添加/刪除/修改KNX網關,以及讀/寫KNX設備。本模塊為上層協議處理模塊提供相關接口,本模塊通過查詢實時內存數據庫,來獲得設備以及通路的相關信息,通過向KNX網關發送相關的報文命令的形式進行通訊,達到對KNX設備進行監控管理的目的。與協議處理模塊間接口的定義結構體設計://(1)主機接口信息struct_host_interface{ intid;//Theidoftheinterfacewhichinhost. chardesc[64];//Thedescriptionoftheinterfacewhichinhost. inttype;//Theidtypetheinterfacewhichinhost. charinfo[64];//Theinfomationoftheinterfacewhichinhost.}typedefts_host_interface_t;//(2)主機接口信息鏈表struct_host_interface_list{ structlist_headlist;//list ts_host_interface_thost_interface;//interfaceinfo}typedefts_host_interface_list_t;//(3)網關信息struct_gateway{ intid;//gateway'sid charname[32];//gateway'sname chargatewayIP[50];//gateway'sip intgatewayPort;//gateway'sport chardescription[255];//gateway'sdesc intgetewayType;//thetypeofthegateway}typedefts_gateway_t;//(4)網關信息鏈表struct_gateway_list{ structlist_headlist;//list ts_gateway_tgateway;//thegatewayinfo}typedefts_gateway_list_t;//(5)通路信息struct_passageway{ ts_host_interface_thost_interface;//theinterfaceinfointhehost ts_gateway_list_t*gateway_list;//thegateways'infomationsoftheinterfacewhichinhost}typedefts_passageway_t;//(6)通路信息鏈表struct_passageways_list{ structlist_headlist;//list ts_passageway_tpassageway;//thepassway}typedefts_passageway_list_t;//(7)KNX控制信息typedefstruct_knx_control_info{ u_charsession_id[4];//sessionid u_chardevice_type;//devicetype u_charhome_device_id[4];//deviceuniqueidathome u_charcmd_type;//KNXcommandtype,READ/WRITE u_charmain_addr;//maingroupaddress u_charmid_addr;//middlegroupaddress u_charlogical_addr;//logicalgroupaddress u_charresult_code;//resultcode u_chardata_len;//datalength u_chardata_type;//groupdatatype,5types u_chardata[16];//groupdatavalue}knx_control_info_t;//(8)knx控制信息鏈表typedefstruct_knx_control_info_list{ structlist_headlist; knx_control_info_tknx_info;}knx_control_info_list_t;接口設計(1)啟動協議棧接口原型intprotocol_start()接口說明啟動協議棧:本模塊實現,一般由上層協議處理模塊調用。輸入參數void輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(2)停止協議棧接口原型intprotocol_end()接口說明停止協議棧:本模塊實現,主機停機/重啟時被調用,一般由上層協議處理模塊調用。輸入參數void輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(3)添加網關通路接口原型intprotocol_add_line(intinterface_id,intgateway_id)接口說明添加網關通路:本模塊實現,由數據庫模塊調用。參數interface_id、gateway_id分別為主機硬件接口、KNX/Wifi網關數據庫記錄的id。輸入參數新添加通路中,主機硬件口id和KNX/Wifi網關的id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(4)刪除通路中的網關接口原型intprotocol_delete_line(intgateway_id)接口說明刪除通路中的網關:本模塊實現,由數據庫模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(5)修改通路中網關的信息接口原型intprotocol_update_gateway(intgateway_id)接口說明修改網關信息:本模塊實現,由數據庫模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(6)連接網關通路接口原型intprotocol_connect_line(intgateway_id)接口說明連接網關:本模塊實現。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(7)斷開網關通路接口原型intprotocol_disconnect_line(intgateway_id)接口說明斷開網關:本模塊實現,由協議處理模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(8)獲取通路的連接狀態接口原型intprotocol_get_line_status(intgateway_id,bool*status)接口說明獲取通路連接狀態:本模塊實現,由協議處理模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id。輸入參數網關id。輸出參數網關當前的連接狀態,false為未連接上,true為已連接上。返回值int,錯誤碼:0為成功,其它為失敗。(9)回調接口,網關狀態的改變接口原型voidon_gateway_status_changed(intgateway_id,boolstatus)接口說明通知通路連接狀態的改變:協議處理模塊實現,由本模塊調用。參數gateway_id為KNX/Wifi網關數據庫記錄id,網關的連接狀態:false為斷開,true為連接。輸入參數網關id,連接狀態。輸出參數無返回值void(10)KNX網關的自發現接口原型intprotocol_knx_search_req(intinterface_id)接口說明KNX網關的自發現:本模塊實現,一般由數據庫處理模塊調用。參數interface_id為主機硬件網口對應的id。輸入參數主機硬件口id。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(11)回調接口,KNX網關自發現的回調接口原型voidon_knx_search_res(intinterface_id,char*ip,intport)接口說明KNX網關自發現的回復回調:協議處理模塊實現,由本模塊調用。參數interface_id為主機硬件網口對應的id。輸入參數主機硬件口id,網關的ip地址,網關的端口號。輸出參數無返回值void(12)KNX數據讀寫請求接口接口原型intprotocol_knx_rw_req(knx_control_req_t*knx_data_req)接口說明數據請求:本模塊實現,由協議處理模塊調用。輸入參數knx_control_req_t類型,knx數據請求結構體。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(13)回調接口,KNX數據讀寫的回復接口原型voidon_knx_rw_res(knx_control_res_t*knx_data_res)接口說明KNX數據回復:協議處理模塊實現,由本模塊調用。輸入參數knx_control_res_t類型,knx數據回復結構體。輸出參數無返回值void(14)Wifi數據讀寫請求接口接口原型intprotocol_wifi_rw_req(wifi_control_req_t*wifi_data_req)接口說明Wifi數據請求:本模塊實現,由協議處理模塊調用。輸入參數wifi_control_req_t類型,wifi數據請求結構體。輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(15)回調接口,Wifi數據讀寫的回復接口原型voidon_wifi_rw_res(wifi_control_res_t*wifi_data_res)接口說明Wifi數據回復:協議處理模塊實現,由本模塊調用。輸入參數wifi_control_res_t類型,knx數據回復結構體。輸出參數無返回值void(16)回調函數的設置接口接口原型voidprotocol_set_callbacks(on_gateway_status_changed,on_knx_search_res,on_knx_rw_res,on_wifi_rw_res);接口說明設置回調函數:本模塊實現。輸入參數網關狀態改變的回調函數地址,KNX網關自發現回復的回調函數地址,KNX數據回復的回調函數地址,Wifi數據回復的回調函數地址。輸出參數無返回值void與數據處理模塊間接口的定義接口設計(1)獲取主機所有網口信息接口原型intdb_get_all_interface(list_head*head,host_interface_list_t*inter_list_ptr)接口說明數據請求:數據庫處理模塊實現,由本模塊調用。輸入參數主機硬件口鏈表頭指針和結構體空指針。輸出參數主機硬件口結構體空指針返回值int,錯誤碼:0為成功,其它為失敗。(2)查詢所有KNX、Wifi網關通路的信息接口原型intdb_get_all_lines(list_head*head,ts_passageway_list_t*line_list)接口說明數據請求:數據庫處理模塊實現,由本模塊調用。輸入參數通路鏈表頭指針和結構體空指針。輸出參數通路結構體空指針返回值int,錯誤碼:0為成功,其它為失敗。(3)查詢KNX設備的當前值接口原型intdb_get_knx_group_data(knx_control_res_t*knx_group_data)接口說明查詢KNX設備的當前值:數據庫操作模塊實現,由本模塊調用。輸入參數knx邏輯組數據結構體指針:knx_group_data。結構體輸入字段:home_device_id、main_addr、mid_addr、logical_addr輸出參數knx邏輯組數據結構體指針:knx_group_data結構體輸出字段:result_code、data_len、data_type、data返回值int,錯誤碼:0為成功,其它為失敗。(4)將KNX設備的當前值寫入數據庫接口原型intdb_set_knx_group_data(knx_control_res_tknx_group_data)接口說明將KNX設備的當前值寫入數據庫:數據庫操作模塊實現,由本模塊調用。輸入參數knx邏輯組數據結構體指針:knx_group_data。結構體輸入字段:home_device_id、main_addr、mid_addr、logical_addr、data_len、data_type、data輸出參數無返回值int,錯誤碼:0為成功,其它為失敗。(5)查詢Wifi設備的主機口及網關信息接口原型intdb_get_wifi_interface_gateway(inthome_device_id,int*interface_id,int*gateway_id)接口說明查詢Wifi設備的主機口及網關信息:數據庫操作模塊實現,由本模塊調用。輸入參數設備home_device_id。輸出參數主機硬件口id:interface_id,網關id:gateway_id返回值int,錯誤碼:0為成功,其它為失敗。(6)查詢紅外設備的通路接口原型intdb_get_infrared_device_info(inthome_device_id,int*interface_id,int*gateway_id,int*red_line_number)接口說明查詢紅外設備的通路:數據庫操作模塊實現,由本模塊調用,進行紅外控制時調用。輸入參數設備home_device_id。輸出參數主機硬件口id:interface_id,網關id:gateway_id,紅外設備的通路。返回值int,錯誤碼:0為成功,其它為失敗。(7)查詢串口設備的分區、規約文件名稱接口原型intdb_get_serial_device_info(inthome_device_id,int*interface_id,int*gateway_id,int*device_area_num
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省朔州市朔城區四中學2025年初三下學期期末質量調查語文試題含解析
- 山東省菏澤市鄆城縣侯咽集鎮2024-2025學年數學四下期末質量跟蹤監視模擬試題含解析
- 響水縣2024-2025學年小升初總復習數學測試題含解析
- 內蒙集寧二中2025屆高三下學期第三次調考英語試題含解析
- 山西省太原志達中學2025年初三第六次質量檢測試題語文試題含解析
- 產品銷售代理合同協議書實例
- 房屋采購合同范本共
- 企業間租賃合同的優異典范
- Brand KPIs for pet supply online shop Zen Animal in Brazil-外文版培訓課件(2025.2)
- 小班藝術《魚眾不同》+教案
- DB11-T 2397-2025 取水供水用水排水數據庫表結構
- 多式聯運模式在跨境電商中的應用-全面剖析
- 中藥學(士)基礎知識押題密卷1
- 2025年第三屆天揚杯建筑業財稅知識競賽題庫附答案(1401-1536題)
- 土壤氡檢測方案
- 2025中考語文常考作文押題(10大主題+10篇范文)
- 2024安康市專職消防員招聘考試題目及答案
- 2024年湖北省中考滿分作文《滿樹繁花》
- 2025年江蘇省蘇州市中考模擬英語試題(二)(原卷版+解析版)
- 廈門大學·DeepSeek手冊3 -DeepSeek大模型及其企業應用實踐:企業人員的大模型寶典
- 煙草考試筆試試題及答案
評論
0/150
提交評論