Click or drag to resize

CFX Namespace

Root CFX Topic. All CFX endpoints must implement this topic.
Classes
 ClassDescription
Public classAreYouThereRequest Allows any CFX endpoint to determine if another particular CFX endpoint is present on a CFX network. The response sends basic information about the endpoint, including its CFX Handle, and network hostname / address.
{
  "CFXHandle": "SMTPlus.Model_21232.SN23123"
}
Public classAreYouThereResponse Allows any CFX endpoint to determine if another particular CFX endpoint is present on a CFX network. The response sends basic information about the endpoint, including its CFX Handle, and network hostname / address.
{
  "Result": {
    "Result": "Success",
    "ResultCode": 0,
    "Message": null
  },
  "CFXHandle": "SMTPlus.Model_21232.SN23123",
  "RequestNetworkUri": "amqp://host33/",
  "RequestTargetAddress": "/queue/SN23123"
}
Public classCFXEnvelope The CFXEnvelope class is the outer envelope or container in which all CFX messages are enclosed for transmission. Common properties, such as a globally unique identifier (ID) and the timestamp for the message (TimeStamp), are defined by this container class and are included with all CFX message transmissions.
{
   "MessageName": "CFX.EndpointConnected",
   "Version": "1.7",
   "TimeStamp": "2018-03-26T16:52:25.3769532-04:00",
   "UniqueID": "f3b2c8ec-50b7-4c63-9cb3-2ed57c01880f",
   "Source": null,
   "Target": null,
   "RequestID": null,
   "MessageBody": {
     "CFXHandle": "SMTPlus.Model_21232.SN23123",
     "RequestNetworkUri": "amqp://host33/",
     "RequestTargetAddress": "/queue/SN23123"
    }
}
Public classCFXMessage Abstract base class for all CFX Messages. Contains no data members. Provides for the serialization and deserialization of messages to and from JSON format.
Public classEndpointConnected Sent when an Endpoint joins a CFX network after it has been established. Provides the same information as the response to the AreYouThereRequest message. Need not be used for short-term machine to machine connection, where for example only a simple request / response message is being exchanged.
{
  "CFXHandle": "SMTPlus.Model_21232.SN23123",
  "RequestNetworkUri": "amqp://host33/",
  "RequestTargetAddress": "/queue/SN23123"
}
Public classEndpointShuttingDown Sent when an endpoint is about to shut down and disconnect from a CFX network
{
  "CFXHandle": "SMTPlus.Model_21232.SN23123"
}
Public classGetEndpointInformationRequest Requests detailed information about a single endpoint, as specified by its CFX Handle. The response includes information regarding the endpoint’s capabilities (CFX topic and message support), as well as a generic model of its physical layout (zones, lanes, etc).
{
  "CFXHandle": "SMTPlus.Model_21232.SN23123"
}
Public classGetEndpointInformationResponse Allows any CFX endpoint to request the capabilities of a specified single endpoint. The response includes information about the endpoint, including its CFX Handle, and network hostname / address. The endpoint information structure is a dynamic structure, and can vary based on the type of endpoint.

Generic example:

{
  "Result": {
    "Result": "Success",
    "ResultCode": 0,
    "Message": null
  },
  "EndpointInformation": {
    "CFXHandle": "SMTPlus.Model_21232.SN23123",
    "CFXVersion": "1.0",
    "RequestNetworkUri": "amqp://host55:5688/",
    "RequestTargetAddress": "/queue/SN23123",
    "UniqueIdentifier": "UID1111111111111111",
    "FriendlyName": "SMD Printer 23123",
    "Vendor": "SMT Plus",
    "ModelNumber": "Model_11111",
    "SerialNumber": "SNSN23123",
    "SoftwareVersion": "18.5.4",
    "FirmwareVersion": "1.6.13",
    "OperatingSystem": "UbuntuLinux",
    "OperatingSystemPlatform" : "Platform64bit",
    "OperatingSystemVersion" : "18.04.4",
    "SupportedPCBDimensions": {
      "MinimumLength": 10.0,
      "MaximumLength": 1000.0,
      "MinimumWidth": 10.0,
      "MaximumWidth": 1000.0,
      "MinimumHeight": 0.0,
      "MaximumHeight": 50.0,
      "MinimumWeight": 0.0,
      "MaximumWeight": 1000.0,
      "MinimumThickness": 0.5,
      "MaximumThickness": 10.0
    },
    "Stages": [
      {
        "Stage": {
          "StageSequence": 1,
          "StageName": "INBOUND BUFFER",
          "StageType": "Buffer"
        }
      },
      {
        "Stage": {
          "StageSequence": 2,
          "StageName": "WORK STAGE 1",
          "StageType": "Work"
        }
      },
      {
        "Stage": {
          "StageSequence": 3,
          "StageName": "OUTBOUND BUFFER",
          "StageType": "Buffer"
        }
      }
    ],
    "NumberOfLanes": 1,
    "HermesInformation": {
      "Enabled": true,
      "Version": "1.0"
    },
    "OperatingRequirements": {
      "MinimumHumidity": 0.0,
      "MaximumHumidity": 0.8,
      "MinimumTemperature": -1.0,
      "MaximumTemperature": 40.0
    },
    "SupportedTopics": [
      {
        "TopicName": "CFX.Production",
        "TopicSupportType": "PublisherConsumer",
        "SupportedMessages": []
      },
      {
        "TopicName": "CFX.Production.Application",
        "TopicSupportType": "Publisher",
        "SupportedMessages": []
      },
      {
        "TopicName": "CFX.ResourcePerformance",
        "TopicSupportType": "Publisher",
        "SupportedMessages": []
      }
    ],
    "SleepStates": [
        {
            "SleepName": "Awake",            
            "PowerSaving": 0.0,
            "WakeupTime": "00:00:00"
        },
        {
            "SleepName": "Shallow",            
            "PowerSaving": 10.0,
            "WakeupTime": "00:00:30"
        },
        {
            "SleepName": "Sleep",            
            "PowerSaving": 60.0,
            "WakeupTime": "00:02:00"
        },
        {
            "SleepName": "Hibernate",            
            "PowerSaving": 95.0,
            "WakeupTime": "00:10:00"
        }
    ]
  }
}

Example of SMT Placement Machine type endpoint:

{
  "Result": {
    "Result": "Success",
    "ResultCode": 0,
    "Message": null
  },
  "EndpointInformation": {
    "$type": "CFX.Structures.SMTPlacement.SMTPlacementEndpoint, CFX",
    "NominalPlacementCPH": 10000.0,
    "NominalUnitsPerHour": 120.0,
    "SupportedPCBDimensions": {
      "MinimumLength": 10.0,
      "MaximumLength": 1000.0,
      "MinimumWidth": 10.0,
      "MaximumWidth": 1000.0,
      "MinimumHeight": 0.0,
      "MaximumHeight": 50.0,
      "MinimumWeight": 0.0,
      "MaximumWeight": 1000.0,
      "MinimumThickness": 0.5,
      "MaximumThickness": 10.0
    },
    "Lanes": [
      {
        "LaneNumber": null,
        "LaneName": "LANE1",
        "SupportedPCBDimensions": null
      },
      {
        "LaneNumber": null,
        "LaneName": "LANE2",
        "SupportedPCBDimensions": null
      }
    ],
    "Heads": [
      {
        "SMTHeadType": "Pulsar",
        "NumberOfNozzleLocations": 6,
        "PlacementAccuracy": 0.001,
        "Head": {
          "HeadId": "HD212343",
          "HeadSequence": 1,
          "HeadName": "HEAD1"
        }
      },
      {
        "SMTHeadType": "Pulsar",
        "NumberOfNozzleLocations": 6,
        "PlacementAccuracy": 0.001,
        "Head": {
          "HeadId": "HD212344",
          "HeadSequence": 2,
          "HeadName": "HEAD2"
        }
      }
    ],
    "PlacementConstraints": {
      "MinumumComponentBodySizeX": 0.0,
      "MaximumComponentBodySizeX": 0.0,
      "MinumumComponentBodySizeY": 0.0,
      "MaximumComponentBodySizeY": 0.0,
      "MinumumComponentHeight": 0.0,
      "MaximumComponentHeight": 0.0,
      "MinimumLeadWidth": 0.0,
      "MinimumBGAPitch": 0.0,
      "MinimumSOICPitch": 0.0,
      "MinimumMountingPressure": 0.0,
      "MaximumMountingPressure": 0.0
    },
    "CFXHandle": "SMTPlus.Model_21232.SN23123",
    "CFXVersion": "1.0",
    "RequestNetworkUri": "amqp://host33:5688/",
    "RequestTargetAddress": "/queue/SN23123",
    "UniqueIdentifier": "UID564545645645656564",
    "FriendlyName": "SMD Placer 23123",
    "Vendor": "SMT Plus",
    "ModelNumber": "Model_21232",
    "SerialNumber": "SN23123",
    "SoftwareVersion": "14.1.3",
    "FirmwareVersion": "1.5.22",
    "OperatingSystem": "Windows10",
    "OperatingSystemPlatform" : "Platform64bit",
    "OperatingSystemVersion" : "1809",
    "Stages": [
      {
        "$type": "CFX.Structures.SMTPlacement.SMTStageInformation, CFX",
        "NumberOfFeederStations": 0,
        "Stage": {
          "StageSequence": 1,
          "StageName": "BUFFERSTAGE1",
          "StageType": "Buffer"
        }
      },
      {
        "$type": "CFX.Structures.SMTPlacement.SMTStageInformation, CFX",
        "NumberOfFeederStations": 100,
        "Stage": {
          "StageSequence": 2,
          "StageName": "WORKSTAGE1",
          "StageType": "Work"
        }
      },
      {
        "$type": "CFX.Structures.SMTPlacement.SMTStageInformation, CFX",
        "NumberOfFeederStations": 100,
        "Stage": {
          "StageSequence": 3,
          "StageName": "WORKSTAGE2",
          "StageType": "Work"
        }
      }
    ],
    "NumberOfLanes": 1,
    "HermesInformation": {
      "Enabled": true,
      "Version": "1.0"
    },
    "OperatingRequirements": {
      "MinimumHumidity": 0.0,
      "MaximumHumidity": 0.8,
      "MinimumTemperature": -1.0,
      "MaximumTemperature": 40.0
    },
    "SupportedTopics": [
      {
        "TopicName": "CFX.Production",
        "TopicSupportType": "PublisherConsumer",
        "SupportedMessages": []
      },
      {
        "TopicName": "CFX.Production.Assembly",
        "TopicSupportType": "Publisher",
        "SupportedMessages": []
      },
      {
        "TopicName": "CFX.ResourcePerformance",
        "TopicSupportType": "Publisher",
        "SupportedMessages": []
      }
    ]
  }
}
Public classHeartbeat All endpoints are obligated to publish a Heartbeast message on all Publish type no less than once every 5 minutes. The AmqpCFXEndpoint class automatically performs this function for you when using the CFX SDK. You can adjust the frequency of the Heartbeat using the HeartbeatFrequency to any value between 1 second and 5 minutes. By default, the CFX SDK sends a Heartbeat once every 1 minute.
{
    "CFXHandle": "SMTPlus.Model_21232.SN23123",
    "HeartbeatFrequency": "00:01:00"
}
Public classNotSupportedResponse Allows a CFX endpoint to indicate to the sender of a request that it is not able to answer to this particular request There can be several reasons : - Unknown request/response message : appeared in a more recent version of CFX than the one used by the endpoint - Unknown request/response message : totally unknown request (should never append) - This request/response message is not implemented in the endpoint because it is not applicable or not implemented yet
{
  "RequestResult": {
    "Result": "Failed",
    "ResultCode": 0,
    "Message": "Unknown message"
  }
}
///
{
  "RequestResult": {
    "Result": "Failed",
    "ResultCode": 0,
    "Message": "Not implemented message"
  }
}
Public classWhoIsThereRequest Allows any CFX endpoint to discover all of the other endpoints participating in this CFX network, and their capabilities. All other CFX endpoints matching the specified criteria must then respond to this broadcast. The response includes the endpoint's identity (CFX Handle), as well as the information needed to contact the endpoint.
{
  "SupportedTopicQueryType": "All",
  "SupportedTopics": [
    {
      "TopicName": "CFX.Production",
      "TopicSupportType": "Publisher",
      "SupportedMessages": []
    },
    {
      "TopicName": "CFX.Production.Appplication",
      "TopicSupportType": "Publisher",
      "SupportedMessages": []
    }
  ]
}
Public classWhoIsThereResponse Allows any CFX endpoint to discover all of the other endpoints participating in this CFX network, and their capabilities. All other CFX endpoints must then respond to this broadcast, providing information about themselves. The response provides basic information about the endpoint, including its CFX Handle and network hostname / address.
{
  "Result": {
    "Result": "Success",
    "ResultCode": 0,
    "Message": null
  },
  "CFXHandle": "SMTPlus.Model_21232.SN23123",
  "RequestNetworkUri": "amqp://host33/",
  "RequestTargetAddress": "/queue/SN23123"
}