Compare commits
	
		
			3 Commits
		
	
	
		
			WriteAndRe
			...
			MethodRele
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9e7793ea5f | |||
| c9370e53db | |||
| 2692cbfa14 | 
							
								
								
									
										86
									
								
								myClient.c
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								myClient.c
									
									
									
									
									
								
							| @@ -234,12 +234,13 @@ void readTest(long ConnectionHdl,u16 NodeHdlCount,long *NodeHdls,UA_Value *varia | |||||||
|         UA_ReadRequest request; |         UA_ReadRequest request; | ||||||
|         UA_ReadRequest_init(&request); |         UA_ReadRequest_init(&request); | ||||||
|         request.nodesToRead = &item[0]; |         request.nodesToRead = &item[0]; | ||||||
|         request.nodesToReadSize = NodeHdlCount; |         request.nodesToReadSize = 1; | ||||||
|         UA_ReadResponse response = UA_Client_Service_read(c, request); |         UA_ReadResponse response = UA_Client_Service_read(c, request); | ||||||
|         retval = response.responseHeader.serviceResult; |         retval = response.responseHeader.serviceResult; | ||||||
|         if(retval == UA_STATUSCODE_GOOD) |         if(retval == UA_STATUSCODE_GOOD) | ||||||
|         { |         { | ||||||
|             printf("------------#3---------------\n"); |             printf("------------#3---------------\n"); | ||||||
|  |             printf("%d\n",response.resultsSize); | ||||||
|             if(response.resultsSize==NodeHdlCount) |             if(response.resultsSize==NodeHdlCount) | ||||||
|             { |             { | ||||||
|                 printf("------------#4---------------\n"); |                 printf("------------#4---------------\n"); | ||||||
| @@ -247,12 +248,6 @@ void readTest(long ConnectionHdl,u16 NodeHdlCount,long *NodeHdls,UA_Value *varia | |||||||
|                 { |                 { | ||||||
|                     ErrorIDs[i]=response.results[i].status; |                     ErrorIDs[i]=response.results[i].status; | ||||||
|                 } |                 } | ||||||
|                 for (int i = 0; i < NodeHdlCount; i++) |  | ||||||
|                 { |  | ||||||
|                     printf("%d",ErrorIDs[i]); |  | ||||||
|                     printf("\n"); |  | ||||||
|                 } |  | ||||||
|                  |  | ||||||
|                 retval = 0 ; |                 retval = 0 ; | ||||||
|                 for(i=0;i<NodeHdlCount;i++) |                 for(i=0;i<NodeHdlCount;i++) | ||||||
|                 { |                 { | ||||||
| @@ -323,6 +318,83 @@ void writeTest(long ConnectionHdl,u16 NodeHdlCount,long *NodeHdls,UA_Value *vari | |||||||
| 	return retval; | 	return retval; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | u32 SubscriptionCreate(long ConnectionHdl,bool PublishingEnable,u16 Priority,long *SubscriptionHdl,TIME *PublishingInterval){ | ||||||
|  | 	UA_Client *c = (UA_Client*)ConnectionHdl; | ||||||
|  | 	UA_CreateSubscriptionRequest request = UA_CreateSubscriptionRequest_default(); | ||||||
|  | 	request.requestedPublishingInterval=*PublishingInterval; | ||||||
|  | 	request.publishingEnabled=PublishingEnable; | ||||||
|  | 	request.priority=Priority; | ||||||
|  | 	UA_CreateSubscriptionResponse *response=malloc(sizeof(UA_CreateSubscriptionResponse)); | ||||||
|  | 	*response = UA_Client_Subscriptions_create(c,request,NULL,NULL,NULL); | ||||||
|  | 	u32 retval=response[0].responseHeader.serviceResult; | ||||||
|  | 	if(retval!=UA_STATUSCODE_GOOD){ | ||||||
|  | 		UA_CreateSubscriptionResponse_clear(&response[0]); | ||||||
|  | 		return retval; | ||||||
|  | 	} | ||||||
|  | 	printf("response[0].subscripstionId is %x\n",response[0].subscriptionId); | ||||||
|  | 	*SubscriptionHdl=(long *)response[0].subscriptionId; | ||||||
|  | 	UA_CreateSubscriptionResponse_clear(&response[0]); | ||||||
|  | 	return retval; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | u32 UA_SubscriptionDelete(long ConnectionHdl,long SubscriptionHdl){ | ||||||
|  | 	UA_Client *c = (UA_Client*)ConnectionHdl; | ||||||
|  | 	u32 retval=UA_Client_Subscriptions_deleteSingle(c,SubscriptionHdl); | ||||||
|  | 	return retval; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | u32 SubscriptionHdlzu2[100]; | ||||||
|  | u32 MonItemHdlzu[100]; | ||||||
|  | UAMonitoredVariables MonVlaue[100]; | ||||||
|  | int MontNum=0; | ||||||
|  | static void handler_DataChanged(UA_Client *client, UA_UInt32 subId, | ||||||
|  |                                     void *subContext, UA_UInt32 monId, | ||||||
|  |                                     void *monContext, UA_DataValue *value) | ||||||
|  | { | ||||||
|  |     UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_CLIENT, "Received Notification"); | ||||||
|  |  | ||||||
|  |     UA_NodeId *ptr = (UA_NodeId*)monContext; | ||||||
|  | 	SubscriptionHdlzu2[MontNum]=subId; | ||||||
|  | 	MonItemHdlzu[MontNum]=monId; | ||||||
|  | 	MonVlaue[MontNum].Values.data=value->value.data; | ||||||
|  | 	MonVlaue[MontNum].Values.type=value->value.type->typeId.identifier.numeric; | ||||||
|  | 	UA_DateTime now = UA_DateTime_nowMonotonic(); | ||||||
|  | 	MonVlaue[MontNum].TimeStamps=now; | ||||||
|  | 	MonVlaue[MontNum].NewValuesCount=1; | ||||||
|  | 	//MonVlaue[MontNum].NodeQualityIDs[0]=0; | ||||||
|  |     //UA_Int32 currentValue = *(UA_Int32*)(value->value.data); | ||||||
|  |  | ||||||
|  | 	MontNum++; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | u32 MonitoredItemAddList(long ConnectionHdl,long SubscriptionHdl,u16 NodeHdlCount, | ||||||
|  | 							long *NodeHdls,UAMonitoringSyncMode SyncMode, | ||||||
|  | 							UANodeAdditionalInfo *NodeAddInfos,u32 *MonitoredItemHdls,u32 ErrorIDs[]){ | ||||||
|  | 	UA_Client *c = (UA_Client*)ConnectionHdl; | ||||||
|  | 	u32 retval=0; | ||||||
|  | 	if(NodeHdlCount>MAX_ELEMENTS_MONITORLIST){ | ||||||
|  | 		retval=0xA0000002; | ||||||
|  | 		return retval; | ||||||
|  | 	} | ||||||
|  | 	if(SyncMode==UAMS_ControllerSync){ | ||||||
|  | 		for(int i=0;i<NodeHdlCount;i++){ | ||||||
|  | 			UA_NodeId *NodeID=(UA_NodeId*)NodeHdls[i]; | ||||||
|  | 			UA_MonitoredItemCreateRequest monRequest=UA_MonitoredItemCreateRequest_default(*NodeID); | ||||||
|  | 			monRequest.itemToMonitor.attributeId = NodeAddInfos[i].AttributeID; | ||||||
|  | 			UA_MonitoredItemCreateResult monResponse= | ||||||
|  | 			UA_Client_MonitoredItems_createDataChange(c,SubscriptionHdl,UA_TIMESTAMPSTORETURN_BOTH, | ||||||
|  | 														monRequest,NodeID,handler_DataChanged,NULL); | ||||||
|  | 		if(monResponse.statusCode!=UA_STATUSCODE_GOOD){ | ||||||
|  | 			retval=monResponse.statusCode; | ||||||
|  | 		} | ||||||
|  | 		ErrorIDs[i]=monResponse.statusCode; | ||||||
|  | 		MonitoredItemHdls[i]=monResponse.monitoredItemId; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return retval; | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
| int main(int argc, char *argv[]) { | int main(int argc, char *argv[]) { | ||||||
| 	 | 	 | ||||||
|     // long connecthdl; |     // long connecthdl; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user