### ValidateStationSetupResponse JSON Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Materials_Storage_ValidateStationSetupResponse.htm This JSON object represents a successful response to a station setup validation request, indicating that the setup is OK. ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "SETUP OK" } } ``` -------------------------------- ### GetRequiredSetupResponse Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production.htm JSON response detailing the setup requirements for an active recipe, including material and tool specifications for each position. ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "OK" }, "RecipeName": "RECIPE4455", "RecipeRevision": "C", "Lane": "1", "Stage": "1", "SetupRequirements": { "Lane": "1", "Stage": "1", "SetupName": "COMMONSETUP45", "MaterialSetupRequirements": [ { "Position": "B1.F.45", "PartNumber": "IPN1123", "ApprovedAlternateParts": [ "IPN2343", "IPN3432" ], "ApprovedManufacturerParts": [ "MOT4329", "SAM5566" ] }, { "Position": "B1.F.47", "PartNumber": "IPN1124", "ApprovedAlternateParts": [ "IPN3344", "IPN3376" ], "ApprovedManufacturerParts": [ "JP55443", "TX554323" ] } ] } } ``` -------------------------------- ### StartTime Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_ResourcePerformance_THTInsertion_ComponentsInserted_StartTime.htm Gets or sets the start time of the sample period for components inserted. ```APIDOC ## StartTime Property ### Description Represents the start of the sample period for components inserted. ### Property Value Type: DateTime ### Syntax ```csharp public DateTime StartTime { get; set; } ``` ```vb Public Property StartTime As DateTime Get Set ``` ``` -------------------------------- ### ComponentsPlaced.StartTime Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_ResourcePerformance_SMTPlacement_ComponentsPlaced_StartTime.htm Gets or sets the start time of the sample period for component placement data. ```APIDOC ## ComponentsPlaced.StartTime Property ### Description Gets or sets the start of the sample period. ### Property Value Type: DateTime ### Syntax ```csharp public DateTime StartTime { get; set; } ``` ```vb Public Property StartTime As DateTime Get Set ``` ``` -------------------------------- ### SMT Placement Machine Tool Usage Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production_Assembly.htm This JSON example illustrates the data sent by a process endpoint when SMT placement tools are used during an assembly operation. It includes details about the unit, tool specifics, and installed components. ```json { "TransactionId": "8561b98b-21ba-47e6-810d-0917b58a4415", "UsedTools": [ { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 1, "Tool": { "$type": "CFX.Structures.SMTPlacement.SMTNozzle, CFX", "HeadId": "HEAD1", "HeadNozzleNumber": 2, "NozzleType": "409A", "UniqueIdentifier": "UID234213421", "Name": "Nozzle45" }, "UsageCycles": 3, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" } ] }, { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 2, "Tool": { "$type": "CFX.Structures.SMTPlacement.SMTNozzle, CFX", "HeadId": "HEAD2", "HeadNozzleNumber": 3, "NozzleType": "409A", "UniqueIdentifier": "UID234223422", "Name": "Nozzle47" }, "UsageCycles": 3, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6413886-04:00" } ] } ] } ``` -------------------------------- ### MaterialsInstalled Message Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production_Assembly.htm Sent when materials are installed on a production unit. Includes unit details, material information, carrier location, and installed components. ```json { "TransactionId": "7e712504-4d65-499f-9dcb-1974e20bae59", "InstalledMaterials": [ { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 1, "QuantityInstalled": 3.0, "Material": { "UniqueIdentifier": "MAT4566556456", "InternalPartNumber": "IPN47788", "Quantity": 887.0 }, "CarrierLocation": { "LocationIdentifier": "UID384234893", "LocationName": "SLOT45", "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": "123334", "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Adjustable", "UniqueIdentifier": "1233334", "Name": "TAPEFEEDER8mm1233334" } }, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" } ] }, { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 2, "QuantityInstalled": 3.0, "Material": { "UniqueIdentifier": "MAT4566556456", "InternalPartNumber": "IPN47788", "Quantity": 887.0 }, "CarrierLocation": { "LocationIdentifier": "UID384234893", "LocationName": "SLOT45", "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": "123334", "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Adjustable", "UniqueIdentifier": "1233334", "Name": "TAPEFEEDER8mm1233334" } }, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" } ] } ] } ``` -------------------------------- ### GetRequiredSetupResponse Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Production_GetRequiredSetupResponse.htm An example of the JSON response structure for GetRequiredSetupResponse. ```APIDOC ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "OK" }, "RecipeName": "RECIPE4455", "RecipeRevision": "C", "Lane": "1", "Stage": "1", "SetupRequirements": { "Lane": "1", "Stage": "1", "SetupName": "COMMONSETUP45", "MaterialSetupRequirements": [ { "Position": "B1.F.45", "PartNumber": "IPN1123", "ApprovedAlternateParts": [ "IPN2343", "IPN3432" ], "ApprovedManufacturerParts": [ "MOT4329", "SAM5566" ] }, { "Position": "B1.F.47", "PartNumber": "IPN1124", "ApprovedAlternateParts": [ "IPN3344", "IPN3376" ], "ApprovedManufacturerParts": [ "JP55443", "TX554323" ] } ] } } ``` ``` -------------------------------- ### SetupRequirements JSON Structure Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Materials_Storage_ValidateStationSetupRequest.htm Example JSON structure for the SetupRequirements property, detailing lane, stage, setup name, and material-specific requirements including part numbers and approved alternatives. ```json { "SetupRequirements": { "Lane": null, "Stage": null, "SetupName": "COMMONSETUP1", "MaterialSetupRequirements": [ { "Position": "B1.F.45", "PartNumber": "IPN1123", "ApprovedAlternateParts": [ "IPN2343", "IPN3432" ], "ApprovedManufacturerParts": [ "MOT4329", "SAM5566" ] }, { "Position": "B1.F.47", "PartNumber": "IPN1124", "ApprovedAlternateParts": [ "IPN3344", "IPN3376" ], "ApprovedManufacturerParts": [ "JP55443", "TX554323" ] } ] } } ``` -------------------------------- ### Manual Operation Hammer Tool Usage Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production_Assembly.htm This JSON example shows tool usage data for a manual operation where a hammer is used. It details the unit, tool identifier, and usage cycles, with no installed components listed. ```json { "TransactionId": "8561b98b-21ba-47e6-810d-0917b58a4415", "UsedTools": [ { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 1, "Tool": { "UniqueIdentifier": "UID234228874", "Name": "Hammer 45" }, "UsageCycles": 3, "InstalledComponents": [] }, { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 2, "Tool": { "UniqueIdentifier": "UID234228874", "Name": "Hammer 45" }, "UsageCycles": 3, "InstalledComponents": [] } ] } ``` -------------------------------- ### SetupRequirements Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Materials_Storage_ValidateStationSetupRequest_SetupRequirements.htm The setup requirements to be validated. ```APIDOC ## SetupRequirements Property ### Description The setup requirements to be validated. ### Property Value - **Type**: StationSetupRequirements - **Description**: The setup requirements to be validated. ``` -------------------------------- ### ToolChanged Example (SMT Squeegee) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_ResourcePerformance_ToolChanged.htm An example of a ToolChanged message for an SMT Squeegee change. ```APIDOC ```json { "OldTool": null, "ReturnedToHolder": null, "NewTool": { "$type": "CFX.Structures.SolderPastePrinting.SMTSqueegee, CFX", "UniqueIdentifier": "UID23890430", "Name": "SQUEEGEE234324" }, "LoadedFromHolder": null } ``` ``` -------------------------------- ### ToolChanged Example (SMT Stencil) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_ResourcePerformance_ToolChanged.htm An example of a ToolChanged message for an SMT Stencil change. ```APIDOC ```json { "OldTool": null, "ReturnedToHolder": null, "NewTool": { "$type": "CFX.Structures.SolderPastePrinting.SMTStencil, CFX", "UniqueIdentifier": "UID23890430", "Name": "STENCIL234324" }, "LoadedFromHolder": null } ``` ``` -------------------------------- ### Unit Personalization Example (MAC Address) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production_Assembly.htm This JSON example demonstrates how unit personalization data, such as MAC addresses, is sent by a process endpoint. It lists the unit identifier and its associated characteristics. ```json { "TransactionId": "e5cf340c-6858-4e26-893d-deae86bc09f1", "PersonalizedUnits": [ { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 1, "Characteristics": [ { "Name": "MAC Address", "Value": "C0-15-B9-2D-0F-3B" } ] }, { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 2, "Characteristics": [ { "Name": "MAC Address", "Value": "C0-15-B9-2D-0F-3C" } ] } ] } ``` -------------------------------- ### GetRequiredSetupResponse Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production.htm Response from a process endpoint to a request for setup requirements. ```APIDOC ## GetRequiredSetupResponse ### Description Response from a process endpoint to a request to obtain the setup requirements of the active recipe. The response lists the required materials and tools, along with the locations where the materials/tools must be loaded. ### Response #### Success Response (200) - **Result** (object) - Contains the result of the operation. - **Result** (string) - The outcome of the operation (e.g., "Success"). - **ResultCode** (integer) - The code indicating the result status. - **Message** (string) - A message providing details about the result. - **RecipeName** (string) - The name of the recipe. - **RecipeRevision** (string) - The revision of the recipe. - **Lane** (string) - The lane identifier. - **Stage** (string) - The stage identifier. - **SetupRequirements** (object) - Details of the setup requirements. - **Lane** (string) - The lane identifier for setup. - **Stage** (string) - The stage identifier for setup. - **SetupName** (string) - The name of the setup. - **MaterialSetupRequirements** (array) - A list of material setup requirements. - **Position** (string) - The position where the material should be loaded. - **PartNumber** (string) - The part number of the material. - **ApprovedAlternateParts** (array) - A list of approved alternate part numbers. - **ApprovedManufacturerParts** (array) - A list of approved manufacturer part numbers. ### Response Example ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "OK" }, "RecipeName": "RECIPE4455", "RecipeRevision": "C", "Lane": "1", "Stage": "1", "SetupRequirements": { "Lane": "1", "Stage": "1", "SetupName": "COMMONSETUP45", "MaterialSetupRequirements": [ { "Position": "B1.F.45", "PartNumber": "IPN1123", "ApprovedAlternateParts": [ "IPN2343", "IPN3432" ], "ApprovedManufacturerParts": [ "MOT4329", "SAM5566" ] }, { "Position": "B1.F.47", "PartNumber": "IPN1124", "ApprovedAlternateParts": [ "IPN3344", "IPN3376" ], "ApprovedManufacturerParts": [ "JP55443", "TX554323" ] } ] } } ``` ``` -------------------------------- ### CleanSqueegeeRequest Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_ResourcePerformance_SolderPastePrinting.htm Example of a request to initiate a squeegee clean operation on a stencil printer. ```json { "CleanTypeRequested": "Deep" } ``` -------------------------------- ### CleanStencilRequest Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_ResourcePerformance_SolderPastePrinting.htm Example of a request to initiate a stencil clean operation on a stencil printer. ```json { "CleanTypeRequested": "D" } ``` -------------------------------- ### ToolChanged Example (Generic) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_ResourcePerformance_ToolChanged.htm A generic example of a ToolChanged message, illustrating the basic structure when a new tool is loaded. ```APIDOC ```json { "OldTool": null, "ReturnedToHolder": null, "NewTool": { "UniqueIdentifier": "UID23890430", "Name": "TorqueWrench_123" }, "LoadedFromHolder": { "LocationUniqueIdentifier": "UID238943243243", "LocationName": "BIN45", "BaseName": null } } ``` ``` -------------------------------- ### InstalledMaterials Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_Assembly_MaterialsInstalled_InstalledMaterials.htm A list of the specific materials which were installed. ```APIDOC ## InstalledMaterials Property ### Description A list of the specific materials which were installed. ### Property Value Type: List ### Syntax **C#** ```csharp public List InstalledMaterials { get; set; } ``` **VB** ```vb Public Property InstalledMaterials As List(Of InstalledMaterial) Get Set End Property ``` ``` -------------------------------- ### WorkStarted Message Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Production_WorkStarted.htm An example of the JSON payload for a WorkStarted message. ```APIDOC ## WorkStarted Message Example ```json { "TransactionID": "2c24590d-39c5-4039-96a5-91900cecedfa", "Lane": "1", "UnitCount": 2, "Units": [ { "UnitIdentifier": "CARRIER5566", "PositionNumber": 1, "PositionName": "CIRCUIT1", "X": 0.254, "Y": 0.556, "Rotation": 0.0, "FlipX": false, "FlipY": false }, { "UnitIdentifier": "CARRIER5566", "PositionNumber": 1, "PositionName": "CIRCUIT2", "X": 6.254, "Y": 0.556, "Rotation": 90.0, "FlipX": false, "FlipY": false } ] } ``` ``` -------------------------------- ### ToolChanged Example (SMT Nozzle) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_ResourcePerformance_ToolChanged.htm An example of a ToolChanged message specifically for an SMT Nozzle change, including type information. ```APIDOC ```json { "OldTool": null, "ReturnedToHolder": null, "NewTool": { "$type": "CFX.Structures.SMTPlacement.SMTNozzle, CFX", "HeadId": "HEAD1", "HeadNozzleNumber": 1, "NozzleType": "TYPE914", "UniqueIdentifier": "UID23890430", "Name": "NOZZLE234324" }, "LoadedFromHolder": { "LocationUniqueIdentifier": "UID238943243243", "LocationName": "HOLDER14", "BaseName": "NEST2" } } ``` ``` -------------------------------- ### MaterialsOpened Example Data Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Materials_Management_MSDManagement_MaterialsOpened.htm An example of the JSON payload for a MaterialsOpened message, detailing the properties of opened material packages. ```APIDOC ```json { "Materials": [ { "UniqueIdentifier": "MAT4566556456", "InternalPartNumber": "IPN47788", "Manufacturer": "MOTOROLA", "ManufacturerPartNumber": "MOT231234", "Vendor": "Digikey", "VendorPartNumber": "DIG23452442", "ManufacuterLotCode": "LOT2016110588", "Created": "2018-04-13T11:30:30.8326863-04:00", "ManufactureDate": "2016-11-05T00:00:00", "ReceivedDate": "2017-05-06T00:00:00", "Units": null, "InitialQuantity": 1000.0, "Quantity": 887.0, "Status": "Active", "MaterialData": { "$type": "CFX.Structures.MaterialPackageMSDData, CFX", "ExpirationDateTime": "2018-04-19T11:30:32.1657131-04:00", "OriginalExposureDateTime": "2017-05-01T08:22:12", "LastExposureDateTime": "2018-04-13T11:30:32.1657131-04:00", "RemainingExposureTime": "6.00:00:00", "MSDLevel": "MSL3", "MSDState": "Exposed" } } ] } ``` ``` -------------------------------- ### MaterialsConsumed Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Materials_Management.htm Sent by a process endpoint when materials are consumed. This example details two consumed material entries, including quantities used, spoiled, and remaining. ```json { "ConsumedMaterials": [ { "MaterialLocation": { "LocationIdentifier": "3245434554", "LocationName": "SLOT22", "MaterialPackage": { "UniqueIdentifier": "MAT238908348903", "InternalPartNumber": "IPN-1222-55555", "Quantity": 344.0 }, "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": null, "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Pitch8mm", "UniqueIdentifier": "234232432424", "Name": "FEEDER2245465" } }, "QuantityUsed": 42.0, "QuantitySpoiled": 2.0, "RemainingQuantity": 344.0 }, { "MaterialLocation": { "LocationIdentifier": "3245435784", "LocationName": "SLOT28", "MaterialPackage": { "UniqueIdentifier": "MAT238908323434", "InternalPartNumber": "IPN-1222-11111", "Quantity": 258.0 }, "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": null, "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Pitch8mm", "UniqueIdentifier": "234232432424", "Name": "FEEDER2245465" } }, "QuantityUsed": 88.0, "QuantitySpoiled": 3.0, "RemainingQuantity": 258.0 } ] } ``` -------------------------------- ### InstalledComponents Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_InstalledMaterial_InstalledComponents.htm A list of where the on the production unit the materials / parts were installed. ```APIDOC ## InstalledComponents Property ### Description A list of where the on the production unit the materials / parts were installed. ### Syntax #### C# ```csharp public List InstalledComponents { get; set; } ``` #### VB ```vb Public Property InstalledComponents As List(Of InstalledComponent) Get Set End Property ``` ### Property Value Type: List A list of `InstalledComponent` objects indicating the locations on the production unit where materials or parts were installed. ``` -------------------------------- ### RecipeName Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_GetRequiredSetupResponse_RecipeName.htm The name of the recipe associated with the required setup. ```APIDOC ## RecipeName Property ### Description The name of the recipe associated with the required setup. ### Syntax ```csharp public string RecipeName { get; set; } ``` ```vb Public Property RecipeName As String Get Set ``` ### Property Value Type: String ### See Also - [GetRequiredSetupResponse Class](T_CFX_Production_GetRequiredSetupResponse.htm) - [CFX.Production Namespace](N_CFX_Production.htm) ``` -------------------------------- ### InstalledComponent.ReferenceDesignator Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_InstalledComponent_ReferenceDesignator.htm Gets or sets the reference designator for an installed component. This property indicates the location on the production unit where the component was installed. ```APIDOC ## InstalledComponent.ReferenceDesignator Property ### Description Gets or sets the reference designator for an installed component. This property indicates the location on the production unit where the component was installed. ### Syntax **C#** ```csharp public string ReferenceDesignator { get; set; } ``` **VB** ```vb Public Property ReferenceDesignator As String Get Set End Property ``` ### Property Value Type: String ### See Also - [InstalledComponent Class](T_CFX_Structures_InstalledComponent.htm) - [CFX.Structures Namespace](N_CFX_Structures.htm) ``` -------------------------------- ### RecipeModified.Revision Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_RecipeModified_Revision.htm Gets or sets the version number of the recipe modification. Example: "2.0". ```APIDOC ## RecipeModified.Revision Property ### Description Gets or sets the version number of the recipe modification. ### Property Value Type: String ### Syntax #### C# ```csharp public string Revision { get; set; } ``` #### VB ```vb Public Property Revision As String Get Set End Property ``` ``` -------------------------------- ### MaterialsInstalled Message Structure Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Production_Assembly_MaterialsInstalled.htm This is an example of the JSON structure for a MaterialsInstalled message, detailing the materials installed on production units. ```APIDOC ## MaterialsInstalled Message Structure ### Description This is an example of the JSON structure for a MaterialsInstalled message, detailing the materials installed on production units. ### Request Body Example ```json { "TransactionId": "7e712504-4d65-499f-9dcb-1974e20bae59", "InstalledMaterials": [ { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 1, "QuantityInstalled": 3.0, "Material": { "UniqueIdentifier": "MAT4566556456", "InternalPartNumber": "IPN47788", "Quantity": 887.0 }, "CarrierLocation": { "LocationIdentifier": "UID384234893", "LocationName": "SLOT45", "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": "123334", "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Adjustable", "UniqueIdentifier": "1233334", "Name": "TAPEFEEDER8mm1233334" } }, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" } ] }, { "UnitIdentifier": "PANEL23423432", "UnitPositionNumber": 2, "QuantityInstalled": 3.0, "Material": { "UniqueIdentifier": "MAT4566556456", "InternalPartNumber": "IPN47788", "Quantity": 887.0 }, "CarrierLocation": { "LocationIdentifier": "UID384234893", "LocationName": "SLOT45", "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": "123334", "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Adjustable", "UniqueIdentifier": "1233334", "Name": "TAPEFEEDER8mm1233334" } }, "InstalledComponents": [ { "ReferenceDesignator": "R1", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R2", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" }, { "ReferenceDesignator": "R3", "InstallationTime": "2018-03-29T08:29:20.6197528-04:00" } ] } ] } ``` ``` -------------------------------- ### Open Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/Methods_T_CFX_Transport_AmqpCFXEndpoint.htm Opens the AMQP connection. Overloaded to accept different connection parameters. ```APIDOC ## Open ### Description Opens the AMQP connection. ### Method Overloaded methods available. ### Parameters Refer to the specific overload documentation for parameter details (e.g., String, Uri, X509Certificate2, IPAddress, Int32). ### Request Example (Specific examples depend on the overload used) ### Response (Specific response details depend on the overload used) ``` -------------------------------- ### SMT Placement Fault Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_ResourcePerformance_FaultOccurred.htm Details a specific fault related to SMT placement, including placement type, program step, designator, material location, nozzle information, and general fault details. ```json { "Fault": { "$type": "CFX.Structures.SMTPlacement.SMTPlacementFault, CFX", "PlacementFaultType": "PickupError", "ProgramStep": 56, "Designator": { "ReferenceDesignator": "R31", "UnitPosition": null, "PartNumber": "PN123456" }, "MaterialLocation": { "LocationIdentifier": "UID23948348324", "LocationName": "SLOT47", "MaterialPackage": { "UniqueIdentifier": "UID34280923084932849", "InternalPartNumber": "IPN456465465465", "Quantity": 854.0 }, "CarrierInformation": { "$type": "CFX.Structures.SMTPlacement.SMDTapeFeeder, CFX", "BaseUniqueIdentifier": null, "BaseName": null, "LaneNumber": 1, "Width": "Tape8mm", "Pitch": "Pitch8mm", "UniqueIdentifier": "FDR2348934-32890", "Name": "8MMFDR231" } }, "Nozzle": { "HeadId": "HEAD1", "HeadNozzleNumber": 3, "NozzleType": "TYPE914", "UniqueIdentifier": "UID2389432849", "Name": "NOZZLE3243244" }, "Cause": "MechanicalFailure", "Severity": "Error", "FaultCode": "ERROR 3943480", "FaultOccurrenceId": "2a8aca83-5889-49d7-887b-89145b6dc9b9", "Lane": "LANE1", "Stage": "STAGE2" } } ``` -------------------------------- ### QuantityInstalled Property (VB) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_InstalledMaterial_QuantityInstalled.htm Gets or sets the total quantity of parts or material installed for this particular MaterialPackage (lot). ```vb Public Property QuantityInstalled As Double Get Set ``` -------------------------------- ### QuantityInstalled Property (C#) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_InstalledMaterial_QuantityInstalled.htm Gets or sets the total quantity of parts or material installed for this particular MaterialPackage (lot). ```csharp public double QuantityInstalled { get; set; } ``` -------------------------------- ### GetRecipeResponse Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production.htm JSON response containing recipe details, including name, revision, MIME type, and base64 encoded recipe data. Includes operation result. ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": null }, "Recipe": { "Name": "RECIPE4455", "Revision": null, "MimeType": "application/octet-stream", "RecipeData": "ESKImSNVZlM=" } } ``` -------------------------------- ### Initialize and Open Secure CFX Endpoint Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/B3854407-74F1-465F-9AE8-8C40DE6CC9F4.htm This method demonstrates how to initialize a secure AmqpCFXEndpoint using TLS/SSL. It requires loading an X509 certificate and uses an 'amqps://' URI. The endpoint is configured to handle requests securely. ```csharp AmqpCFXEndpoint endpoint; string myCFXHandle = "Vendor1.Model1.Machine34"; Uri myRequestUri; public void OpenEndpointSecure() { endpoint = new AmqpCFXEndpoint(); myRequestUri = new Uri(string.Format("amqps://{0}", System.Net.Dns.GetHostName())); // Load certificate from local machine or user certificate store X509Certificate2 cert = AmqpUtilities.GetCertificate("MyCertificateName"); endpoint.OnRequestReceived += Endpoint_OnRequestReceived; endpoint.Open(myCFXHandle, myRequestUri, cert); } private CFXEnvelope Endpoint_OnRequestReceived(CFXEnvelope request) { // Process request. Return Result. if (request.MessageBody is WhoIsThereRequest) { CFXEnvelope result = CFXEnvelope.FromCFXMessage(new WhoIsThereResponse() { CFXHandle = myCFXHandle, RequestNetworkUri = myRequestUri.ToString(), RequestTargetAddress = "" }); result.Source = myCFXHandle; result.Target = request.Source; return result; } return null; } ``` -------------------------------- ### TransactionID Property Syntax (VB) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_WorkStageCompleted_TransactionID.htm This is the VB.NET syntax for the TransactionID property. It is a public Guid property with a Get and Set accessor. ```vbnet Public Property TransactionID As Guid Get Set ``` -------------------------------- ### TransactionID Property Syntax (C#) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_WorkStageCompleted_TransactionID.htm This is the C# syntax for the TransactionID property. It is a public Guid property with a get and set accessor. ```csharp public Guid TransactionID { get; set; } ``` -------------------------------- ### ToolsUsed.TransactionId Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_Assembly_ToolsUsed_TransactionId.htm The TransactionId property represents the unique identifier of the work transaction associated with this installation. It is of type Guid and can be read and set. ```APIDOC ## ToolsUsed.TransactionId Property ### Description The id of the work transaction with which this installation is associated. ### Syntax [C#] ```csharp public Guid TransactionId { get; set; } ``` [VB] ```vb Public Property TransactionId As Guid Get Set End Property ``` ### Property Value Type: Guid ``` -------------------------------- ### MaterialSetupRequirements Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_StationSetupRequirements_MaterialSetupRequirements.htm Retrieves a list of materials that need to be installed or loaded at the process endpoint. ```APIDOC ## MaterialSetupRequirements Property ### Description A list of the materials that need to be installed / loaded at the process endpoint. ### Syntax ```csharp public List MaterialSetupRequirements { get; } ``` ```vb Public ReadOnly Property MaterialSetupRequirements As List(Of MaterialSetupRequirement) Get ``` ### Property Value Type: `List` A list of the materials that need to be installed / loaded at the process endpoint. ``` -------------------------------- ### C# UniqueID Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_CFXEnvelope_UniqueID.htm This is the C# syntax for the UniqueID property. It is a public property of type Guid that can be accessed for getting and setting its value. ```csharp public Guid UniqueID { get; set; } ``` -------------------------------- ### Install CFX SDK Package Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/cfb57aac-b696-4c6c-b94b-f034b37daf26.htm Use this command in the NuGet Package Management Console to add the CFX SDK to your project. ```powershell Install-Package CFX.CFXSDK ``` -------------------------------- ### FaultOccurrenceId Property Syntax (C#) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_Fault_FaultOccurrenceId.htm This snippet shows the C# syntax for the FaultOccurrenceId property, which is a public Guid property with a get and set accessor. ```csharp public Guid FaultOccurrenceId { get; set; } ``` -------------------------------- ### VB UniqueID Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_CFXEnvelope_UniqueID.htm This is the Visual Basic syntax for the UniqueID property. It is a public property of type Guid that can be accessed for getting and setting its value. ```vb Public Property UniqueID As Guid Get Set ``` -------------------------------- ### ValidateStationSetupRequest Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Materials_Storage.htm Request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied in this request. ```APIDOC ## POST /ValidateStationSetupRequest ### Description Request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied in this request. ### Method POST ### Endpoint /ValidateStationSetupRequest ### Request Body - **SetupRequirements** (object) - Required - The setup requirements to validate against. - **Lane** (string) - Optional - The lane for the setup requirements. - **Stage** (string) - Optional - The stage for the setup requirements. - **SetupName** (string) - Required - The name of the setup. - **MaterialSetupRequirements** (array) - Required - A list of material setup requirements. - **Position** (string) - Required - The position of the material. - **PartNumber** (string) - Required - The part number of the material. - **ApprovedAlternateParts** (array) - Optional - A list of approved alternate part numbers. - **ApprovedManufacturerParts** (array) - Optional - A list of approved manufacturer part numbers. ### Request Example ```json { "SetupRequirements": { "Lane": null, "Stage": null, "SetupName": "COMMONSETUP1", "MaterialSetupRequirements": [ { "Position": "B1.F.45", "PartNumber": "IPN1123", "ApprovedAlternateParts": [ "IPN2343", "IPN3432" ], "ApprovedManufacturerParts": [ "MOT4329", "SAM5566" ] }, { "Position": "B1.F.47", "PartNumber": "IPN1124", "ApprovedAlternateParts": [ "IPN3344", "IPN3376" ], "ApprovedManufacturerParts": [ "JP55443", "TX554323" ] } ] } } ``` ### Response #### Success Response (200) - **Result** (object) - The result of the validation. - **Result** (string) - The outcome of the validation (e.g., "Success", "Failure"). - **ResultCode** (integer) - A numerical code indicating the result. - **Message** (string) - A descriptive message about the result. #### Response Example ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "SETUP OK" } } ``` ``` -------------------------------- ### InspectionStartTime Property Syntax Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_Inspection_InspectionStartTime.htm Gets or sets the nullable DateTime value indicating when the inspection started. This property is part of the Inspection class in the CFX.Structures namespace. ```csharp public Nullable InspectionStartTime { get; set; } ``` ```vb Public Property InspectionStartTime As Nullable(Of DateTime) Get Set ``` -------------------------------- ### FaultOccurrenceId Property Syntax (VB) Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_Fault_FaultOccurrenceId.htm This snippet shows the Visual Basic syntax for the FaultOccurrenceId property, which is a public Guid property with get and set accessors. ```vb Public Property FaultOccurrenceId As Guid Get Set ``` -------------------------------- ### Initialize and Open Unsecured CFX Endpoint Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/B3854407-74F1-465F-9AE8-8C40DE6CC9F4.htm Use this method to initialize an AmqpCFXEndpoint for standard communication. It requires a CFX handle and a request URI. An event handler is attached to process incoming requests. ```csharp AmqpCFXEndpoint endpoint; string myCFXHandle = "Vendor1.Model1.Machine34"; Uri myRequestUri; public void OpenEndpoint() { endpoint = new AmqpCFXEndpoint(); myRequestUri = new Uri(string.Format("amqp://{0}", System.Net.Dns.GetHostName())); endpoint.OnRequestReceived += Endpoint_OnRequestReceived; endpoint.Open(myCFXHandle, myRequestUri); } private CFXEnvelope Endpoint_OnRequestReceived(CFXEnvelope request) { // Process request. Return Result. if (request.MessageBody is WhoIsThereRequest) { CFXEnvelope result = CFXEnvelope.FromCFXMessage(new WhoIsThereResponse() { CFXHandle = myCFXHandle, RequestNetworkUri = myRequestUri.ToString(), RequestTargetAddress = "" }); result.Source = myCFXHandle; result.Target = request.Source; return result; } return null; } ``` -------------------------------- ### ActivateRecipeRequest Example Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Production.htm This JSON object represents a request to activate a specific recipe at a process endpoint. It includes the recipe name, revision, lane, and stage. ```json { "RecipeName": "RECIPE1234", "Revision": "C", "Lane": "1", "Stage": "1" } ``` -------------------------------- ### TransactionID Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Production_WorkStageCompleted_TransactionID.htm The TransactionID property represents the unique identifier for the transaction associated with the WorkStageCompleted message. It is of type Guid and can be accessed for both getting and setting its value. ```APIDOC ## TransactionID Property ### Description Related Transaction ID specified previously by WorkStarted Message. ### Syntax ```csharp public Guid TransactionID { get; set; } ``` ```vb Public Property TransactionID As Guid Get Set ``` ### Property Value Type: Guid ``` -------------------------------- ### MaterialSetupRequirement.Position Property Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/P_CFX_Structures_MaterialSetupRequirement_Position.htm The position where the required material must be installed on the Endpoint (optional). Where applicable, a dot (".") notation should be utilized to designate specific positions. Examples: MODULE1.FRONT.Pos23, STAGE2.BANK1.Pos44, etc. ```APIDOC ## MaterialSetupRequirement.Position Property ### Description The position where the required material must be installed on the Endpoint (optional). Where applicable, a dot (".") notation should be utilized to designate specific positions. Examples: MODULE1.FRONT.Pos23, STAGE2.BANK1.Pos44, etc. ### Namespace CFX.Structures ### Assembly CFXnet46 (in CFXnet46.dll) ### Syntax #### C# ```csharp public string Position { get; set; } ``` #### VB ```vb Public Property Position As String Get Set End Property ``` ### Property Value Type: String ### See Also #### Reference - [MaterialSetupRequirement Class](T_CFX_Structures_MaterialSetupRequirement.htm) - [CFX.Structures Namespace](N_CFX_Structures.htm) ``` -------------------------------- ### ValidateStationSetupResponse Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/N_CFX_Materials_Storage.htm Response to a request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied by the request. ```APIDOC ## Response for ValidateStationSetupRequest ### Description Response to a request to a process endpoint to validate that the currently loaded materials comply with the setup requirements supplied by the request. ### Response #### Success Response (200) - **Result** (object) - The result of the validation. - **Result** (string) - The outcome of the validation (e.g., "Success", "Failure"). - **ResultCode** (integer) - A numerical code indicating the result. - **Message** (string) - A descriptive message about the result. #### Response Example ```json { "Result": { "Result": "Success", "ResultCode": 0, "Message": "SETUP OK" } } ``` ``` -------------------------------- ### BlockMaterialLocationsRequest Source: https://github.com/ipcconnectedfactoryexchange/cfx/blob/master/docs/html/T_CFX_Production_BlockMaterialLocationsRequest.htm Sent to a process endpoint to block or disable a particular material setup location. This is typically used where a loaded material may become unsuitable for use, for example MSD expiry of an SMT material. ```APIDOC ## BlockMaterialLocationsRequest ### Description Sent to a process endpoint to block or disable a particular material setup location. This is typically used where a loaded material may become unsuitable for use, for example MSD expiry of an SMT material. ### Properties * **Locations** (List of Location objects) - Required - A list of locations to be blocked. ### Request Example ```json { "Locations": [ { "LocationIdentifier": "23143433", "LocationName": "SLOT45", "MaterialPackage": null, "CarrierInformation": null }, { "LocationIdentifier": "23143454", "LocationName": "SLOT46", "MaterialPackage": null, "CarrierInformation": null } ] } ``` ### Response (Success response details not provided in source) ### See Also * [CFX.Production Namespace](N_CFX_Production.htm) ```