OpenPDC to OpenPDC communication

Yes, there are two ways to facilitate this.


The first way is to keep the metadata, but cut off the data flow. This will stop the real-time data from PMUD while still making it possible to browse to the PMUD device and see its measurements. Normally, if you don’t want the data, you probably don’t want the metadata either, but this can be useful if you’re frequently changing the data stream to receive only the data that is relevant to the task at hand. To do this, you would modify the OutputMeasurements parameter in the connection string. For example…

Connection String:
interface=0.0.0.0; compression=false; autoConnect=true; securityMode=None; server=172.21.4.212:6165; internal=False; receiveInternalMetadata=True; receiveExternalMetadata=False; outputMeasurements={FILTER ActiveMeasurements WHERE Protocol = ‘GatewayTransport’ AND Device NOT IN (‘PDC1!PMUD’, ‘PDC1!PMUE’) }

You can also change the query to specify only the list of devices from which you want to receive data.

Connection String:
interface=0.0.0.0; compression=false; autoConnect=true; securityMode=None; server=172.21.4.212:6165; internal=False; receiveInternalMetadata=True; receiveExternalMetadata=False; outputMeasurements={FILTER ActiveMeasurements WHERE Protocol = ‘GatewayTransport’ AND Device IN (‘PDC1!PMUA’, ‘PDC1!PMUB’, ‘PDC1!PMUC’) }


The second way tells the server not to send the metadata across. The subscriber will be effectively unaware that the device exists. Its data won’t be transmitted to the subscriber, and you won’t be able to browse to it in the openPDC Manager on the subscriber system. For this method, you need to add a metadataFilters property to the connection string.

Connection String:
interface=0.0.0.0; compression=false; autoConnect=true; securityMode=None; server=172.21.4.212:6165; internal=False; receiveInternalMetadata=True; receiveExternalMetadata=False; outputMeasurements={FILTER ActiveMeasurements WHERE Protocol = ‘GatewayTransport’ }; metadataFilters={ FILTER DeviceDetail WHERE Acronym NOT IN (‘PMUD’, ‘PMUE’) }

Likewise, this syntax can be modified to specify only the devices you would like to receive data from.

Connection String:
interface=0.0.0.0; compression=false; autoConnect=true; securityMode=None; server=172.21.4.212:6165; internal=False; receiveInternalMetadata=True; receiveExternalMetadata=False; outputMeasurements={FILTER ActiveMeasurements WHERE Protocol = ‘GatewayTransport’ }; metadataFilters={ FILTER DeviceDetail WHERE Acronym IN (‘PMUA’, ‘PMUB’, ‘PMUC’) }


Note that using the first method, I specified device acronyms as they appear in the subscriber (PDC1!PMUA). Using the second method, I specified device acronyms as they appear in the publisher (PMUA). This difference was intentional because the MetadataFilters parameter gets transmitted to the publisher before being processed whereas the OutputMeasurements parameter is directly processed by the subscriber.