Compare commits
1 Commits
MethodCall
...
main
Author | SHA1 | Date | |
---|---|---|---|
d502361b2d |
73
myClient.c
73
myClient.c
@ -503,59 +503,6 @@ u32 Browse(long ConnectionHdl,UABrowseDescription BrowseDescription,u32 Continua
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
u32 UA_MethodGetHandleList(long ConnectionHdl,u16 NodeIDCount,UANodeID *ObjectNodeIDs,UANodeID *MethodNodeIDs,long *MethodHdls,u32 ErrorIDs[]){
|
||||
UA_Client *c = (UA_Client*)ConnectionHdl;
|
||||
u32 retval=0;
|
||||
if(NodeIDCount>MAX_ELEMENTS_METHOD){
|
||||
retval=0xA0000002;
|
||||
return retval;
|
||||
}
|
||||
UA_CallRequest *request=malloc(sizeof(UA_CallRequest));
|
||||
UA_CallRequest_init(request);
|
||||
UA_CallMethodRequest *item = (UA_CallMethodRequest*)malloc(sizeof(UA_CallMethodRequest) * NodeIDCount);
|
||||
for(int i = 0;i<NodeIDCount;i++){
|
||||
|
||||
UA_CallMethodRequest_init(&item[i]);
|
||||
|
||||
switch(ObjectNodeIDs[i].IdentifierType){
|
||||
case 0:item[i].objectId=UA_NODEID_NUMERIC(ObjectNodeIDs[i].NamespaceIndex,ObjectNodeIDs[i].Identifier.data);break;
|
||||
case 1:item[i].objectId=UA_NODEID_STRING(ObjectNodeIDs[i].NamespaceIndex,ObjectNodeIDs[i].Identifier.data);break;
|
||||
case 2:item[i].objectId.identifierType=4;
|
||||
item[i].objectId.identifier.string.data=ObjectNodeIDs[i].Identifier.data;
|
||||
item[i].objectId.identifier.string.length=ObjectNodeIDs[i].Identifier.length;
|
||||
item[i].objectId.namespaceIndex=ObjectNodeIDs[i].NamespaceIndex;break;
|
||||
case 3:item[i].objectId=UA_NODEID_BYTESTRING(ObjectNodeIDs[i].NamespaceIndex,ObjectNodeIDs[i].Identifier.data);break;
|
||||
default:ErrorIDs[i]==0xA0000301;retval=ErrorIDs[i];break;
|
||||
}
|
||||
switch(MethodNodeIDs[i].IdentifierType){
|
||||
case 0:item[i].methodId=UA_NODEID_NUMERIC(MethodNodeIDs[i].NamespaceIndex,MethodNodeIDs[i].Identifier.data);break;
|
||||
case 1:item[i].methodId=UA_NODEID_STRING(MethodNodeIDs[i].NamespaceIndex,MethodNodeIDs[i].Identifier.data);break;
|
||||
case 2:item[i].methodId.identifierType=4;
|
||||
item[i].methodId.identifier.string.data=MethodNodeIDs[i].Identifier.data;
|
||||
item[i].methodId.identifier.string.length=MethodNodeIDs[i].Identifier.length;
|
||||
item[i].methodId.namespaceIndex=MethodNodeIDs[i].NamespaceIndex;break;
|
||||
case 3:item[i].methodId=UA_NODEID_BYTESTRING(MethodNodeIDs[i].NamespaceIndex,MethodNodeIDs[i].Identifier.data);break;
|
||||
default:ErrorIDs[i]==0xA0000301;retval=ErrorIDs[i];break;
|
||||
}
|
||||
//UA_CallMethodRequest_clear(&item);
|
||||
|
||||
|
||||
//UA_CallRequest_clear(request);
|
||||
|
||||
MethodHdls[i]=(long *)&item[i];
|
||||
printf("%lld\n",MethodHdls[i]);
|
||||
ErrorIDs[i]=0;
|
||||
}
|
||||
request->methodsToCall = &item;
|
||||
request->methodsToCallSize = NodeIDCount;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
// long connecthdl;
|
||||
@ -613,17 +560,21 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
UA_BrowseRequest_clear(&bReq);
|
||||
UA_BrowseResponse_clear(&bResp);
|
||||
u16 count;
|
||||
UABrowseDescription browseDes;
|
||||
browseDes.Direction = 1;
|
||||
browseDes.StartingNodeID = nodes[0];
|
||||
browseDes.ResultMask = 31;
|
||||
browseDes.IncludeSubtypes = true;
|
||||
browseDes.ReferenceTypeID.Identifier.length == NULL;
|
||||
browseDes.NodeClass = 511;
|
||||
UAReferenceDescription *browseResult = (UAReferenceDescription*)malloc(MAX_ELEMENTS_NODELIST * sizeof(UAReferenceDescription));
|
||||
u32 resultOut;
|
||||
Browse(hdl,browseDes,0,&count,browseResult,resultOut);
|
||||
|
||||
UANodeID ObjectNodeIDs[4];
|
||||
UANodeID MethodNodeIDs[1];
|
||||
long MethodHdls[4];
|
||||
u32 ErrorIDs[1];
|
||||
UA_MethodGetHandleList(hdl,4,nodes,MethodNodeIDs,MethodHdls,ErrorIDs);
|
||||
printf("1111\n");
|
||||
printf("%lld\n",MethodHdls[1]);
|
||||
|
||||
/* Clean up */
|
||||
UA_Client_disconnect(client);
|
||||
UA_Client_delete(client);
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user