GetServerTagPrefix
Mô tả TagPrefix
Để máy khách WinCC trong hệ thống phân tán có thể truy cập vào các thẻ của máy chủ liên quan, tên thẻ phải được mở rộng để bao gồm tiền tố máy chủ.

Một con trỏ kiểu “char” tới tiền tố máy chủ, tiền tố thẻ và tiền tố cửa sổ được trả về trong mỗi trường hợp.
Người dùng không được phép thay đổi bộ nhớ (bao gồm cả strcat) hoặc giải phóng bộ nhớ.
Chỉ có thể sử dụng trong tập lệnh C.
Cú pháp
void GetServerTagPrefix (char** ppszServerPrefix, char** ppszTagPrefix, char** ppszWindowPrefix);
Giá trị trả về
ppszServerPrefix
Con trỏ đến một con trỏ tham chiếu đến tiền tố máy chủ
ppszTagPrefix
Con trỏ đến một con trỏ tham chiếu đến tiền tố thẻ
ppszWindowPrefix
Con trỏ đến một con trỏ tham chiếu đến tiền tố cửa sổ
Ví dụ
Mã chương trình sau đây sẽ truy xuất tiền tố máy chủ, tiền tố thẻ và tiền tố cửa sổ để kiểm tra tính hợp lệ của chúng. Nếu xảy ra lỗi, một văn bản sẽ được xuất ra và hàm sẽ thoát. Nếu kiểm tra thành công, một tên thẻ sẽ được tạo và trả về. Quá trình xử lý được thực hiện như sau:
- Khai báo con trỏ pszServerPrefix, pszTagPrefix và pszWindowPrefix cho ba tiền tố
- Khởi tạo các thẻ nServerPrefixLen, nTagPrefixLen và nTagLenChúng đóng vai trò là bộ đệm cho độ dài chuỗi của các tiền tố cần đọc ra.
- Khởi tạo thẻ myTagName
- Đọc tiền tố máy chủ, tiền tố thẻ và tiền tố cửa sổ
- Phân biệt trường hợp: Tiền tố máy chủ
- Không có tiền tố máy chủ nào được trả về: một văn bản được xuất ra và hàm được thoát.
- Tiền tố máy chủ được trả về: Chiều dài của nó được xác định và lưu trong thẻ nServerPrefixLen.
- Nếu tiền tố thẻ được trả về, độ dài của nó sẽ được xác định và lưu trong thẻ nTagPrefixLen.
- Xác định độ dài của tên thẻ và lưu trong thẻ nTagLen.
- Phân biệt trường hợp: Độ dài cho phép của tên thẻ
- Độ dài cho phép vượt quá: một văn bản được xuất ra và chức năng được thoát.
- Độ dài cho phép không vượt quá: Tên thẻ bắt buộc cho môi trường máy khách được biên dịch.
| { char* pszServerPrefix; char* pszTagPrefix; char* pszWindowPrefix; int nServerPrefixLen = 0; int nTagPrefixLen = 0; int nTagLen = 0; char myTagName[MAX_DM_VAR_NAME+1]; //Initialize the return valuememset(myTagName,0,MAX_DM_VAR_NAME + 1); //Get the serverprefix the tagprefix and the windowprefixGetServerTagPrefix(&pszServerPrefix, &pszTagPrefix, &pszWindowPrefix); //If a serverprefix exists if (pszServerPrefix) { //Get the length of the string nServerPrefixLen = strlen(pszServerPrefix);} Else{ printf(“No server prefix was returned.”); return;} //If a tagprefix existsif (pszTagPrefix) { //Get the length of the string nTagPrefixLen = strlen(pszTagPrefix);} //Get the length of the tagnTagLen = strlen(“TagName”); //Check if the lenght of the //ServerPrefix+TagPrefix+VarName + the double points < MAX_DM_VAR_NAME) if (nServerPrefixLen + nTagPrefixLen + nTagLen+2 < MAX_DM_VAR_NAME) { sprintf(myTagName,”%s::%s%s”,pszServerPrefix,pszTagPrefix,”TagName”); //User defined code where the //user can do something with the returnvalue …} Else{ printf(“The resulting string is too long.”); return;}} |






