# Setup IPC-CFX ## Overview This feature is responsible for handling the connection setup between our Automation and the Equipment. ## How To Configure To configure the connection between our Automation Driver and the Broker a set of keys must be set in the IoTMetadataDefinition Smart Table. ### Relevant Artifacts The table below describes the properties for this entity type: | Name | Type | Is Mandatory | Data Type | Description | | :-------------------- | :--------- | :----------: | :-------- | :----------------------------------------------- | | IoTMetadataDefinition | SmartTable | Yes | | Metadata configuration for equipment integration | ### IoTMetadataDefinition Resource Level Configuration At the **Resource** level, there are several configuration we can make to set our connection with the AMQP broker and with the Equipment. | Resource | Resource Type | Area | Name | Value | Description | | ---------------------- | ------------- | ---- | ------------------------------------ | -------------------------- | --------------------------------------------------------------------------- | | *MES IPC-CFX Resource* | | | ipccfx_netsdkversion | .NET SDK version | Version of the .NET SDK being used | | *MES IPC-CFX Resource* | | | ipccfx_driverhandle | Network handler identifier | Identifier for the automation network handler | | *MES IPC-CFX Resource* | | | ipccfx_driverendpoint | Network address | Address for the automation network | | *MES IPC-CFX Resource* | | | ipccfx_driveraddress | Driver address | Address for the network driver | | *MES IPC-CFX Resource* | | | ipccfx_driverusername | Driver username | Username for the driver authentication | | *MES IPC-CFX Resource* | | | ipccfx_driverpassword | Driver password | Password for the driver authentication | | *MES IPC-CFX Resource* | | | ipccfx_brokerendpoint | Broker address | Address of the message broker | | *MES IPC-CFX Resource* | | | ipccfx_brokerexchange | Broker exchange path | Exchange path used in the broker | | *MES IPC-CFX Resource* | | | ipccfx_brokerqueue | Broker queue | Queue name used in the broker | | *MES IPC-CFX Resource* | | | ipccfx_brokerusername | Broker username | Username for broker authentication | | *MES IPC-CFX Resource* | | | ipccfx_brokerpassword | Broker password | Password for broker authentication | | *MES IPC-CFX Resource* | | | ipccfx_targethandle | Target handler identifier | Identifier for the target network handler | | *MES IPC-CFX Resource* | | | ipccfx_targetendpoint | Target network address | Address of the target automation network | | *MES IPC-CFX Resource* | | | ipccfx_targetaddress | Target exchange path | Exchange used by the target network | | *MES IPC-CFX Resource* | | | ipccfx_targetusername | Authentication username | Username for authentication | | *MES IPC-CFX Resource* | | | ipccfx_targetpassword | Authentication password | Password for authentication | | *MES IPC-CFX Resource* | | | ipccfx_certificatesrootfolder | Certificates folder path | Root folder for certificates | | *MES IPC-CFX Resource* | | | ipccfx_certificate | Certificate file | Certificate used for secure communication | | *MES IPC-CFX Resource* | | | ipccfx_privatekey | Private key file | Private key for encryption/authentication | | *MES IPC-CFX Resource* | | | ipccfx_connectionreconnectinterval | Reconnect interval | Interval for reconnecting after disconnection | | *MES IPC-CFX Resource* | | | ipccfx_connectionrequesttimeout | Request timeout | Timeout for connection requests | | *MES IPC-CFX Resource* | | | ipccfx_uselowlevellogging | Logging flag | Enable detailed low-level logging | | *MES IPC-CFX Resource* | | | ipccfx_eventsexpiration | Event expiration time | Time in seconds before an event is considered expired | | *MES IPC-CFX Resource* | | | ipccfx_onrequestreceivedtimeoutreply | Timeout reply behavior | Internal time to wait for a reply to an external request, by the controller | | *MES IPC-CFX Resource* | | | ipccfx_logmessagesfromothersources | External logging flag | Log messages from external sources | | *MES IPC-CFX Resource* | | | ipccfx_messagestoignore | Ignored messages list | Messages to be ignored during processing | | *MES IPC-CFX Resource* | | | ipccfx_connectingtimeout | Connecting timeout | Timeout for connection establishment | | *MES IPC-CFX Resource* | | | ipccfx_setuptimeout | Setup timeout | Timeout for setup completion | | *MES IPC-CFX Resource* | | | ipccfx_intervalbeforereconnect | Reconnect delay | Delay before attempting reconnection | | *MES IPC-CFX Resource* | | | ipccfx_heartbeatinterval | Heartbeat interval | Interval between heartbeat signals | !!! Info "For more information check IPC-CFX driver documentation" ??? Example "Configuration Example" With this configuration we can receive messages published in the broker, send commands to the equipment and receive requests from equipment: | Resource | ResourceType | Area | Name | Value | | ---------------------- | ------------ | ---- | --------------------- | ----------------------- | | *MES IPC-CFX Resource* | | | ipccfx_driverhandle | CMF.SPI.MachineHandler | | *MES IPC-CFX Resource* | | | ipccfx_driverendpoint | amqp://127.0.0.1:5674 | | *MES IPC-CFX Resource* | | | ipccfx_driveraddress | /CMF/driverExchange | | *MES IPC-CFX Resource* | | | ipccfx_brokerendpoint | amqp://127.0.0.1:5672 | | *MES IPC-CFX Resource* | | | ipccfx_brokerexchange | /exchange/testExchange | | *MES IPC-CFX Resource* | | | ipccfx_targethandle | SMTA.SPI.MachineHandler | | *MES IPC-CFX Resource* | | | ipccfx_targetendpoint | amqp://127.0.0.1:5673 | | *MES IPC-CFX Resource* | | | ipccfx_targetaddress | /SMTA/machineExchange | | *MES IPC-CFX Resource* | | | ipccfx_brokerqueue | /Queue/CmResource | --- ## How To Use On Automation startup we will retrieve the information on `IoTMetadataDefinition` related to the linked Resource and set the retrieved configuration parameters as connection values. !!! Warning "Every time you change these values you must restart the Automation Manager." ## Implementation Details During **Equipment Setup** we will resolve `IoTMetadataDefinition` and check which parameters we should configure. The Resource Name will be stored in persistency for use in the other workflows.