Compare commits
	
		
			2 Commits
		
	
	
		
			Subscripti
			...
			MethodGetH
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9e7793ea5f | |||
| c9370e53db | 
							
								
								
									
										58
									
								
								myClient.c
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								myClient.c
									
									
									
									
									
								
							| @@ -337,6 +337,64 @@ u32 SubscriptionCreate(long ConnectionHdl,bool PublishingEnable,u16 Priority,lon | |||||||
| 	return retval; | 	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