# Printer Integration ## Overview This functionality adds support for ASM printers, allowing the printer to send verification requests for durables or consumables. Depending on the configuration, these requests can be handled by MES or bypassed and accepted unconditionally. ## How to Configure ### Relevant Artifacts The table below describes the artifacts used by this integration: | Name | Type | Is Mandatory | Data Type | Description | | :------------------------------------- | :--------- | :----------: | :-------- | :------------------------------------------------ | | IoTMetadataDefinition | SmartTable | Yes | | Holds the required keys used by this integration | | IoTDEKHandleScreen | DEE | No | | Handles screen requests | | IoTDEKHandleSqueegee | DEE | No | | Handles squeegee requests | | IoTDEKHandleSolder | DEE | No | | Handles solder paste requests | | /IoT/ASM/SolderPasteFeederType/ | Config | Yes | String | Sets the `ConsumableFeedType` property for the feeder used to hold the solder paste | | ConsumableFeedType | LookupTable| Yes | | Holds the available values for the feeder's `ConsumableFeedType` property | Due to differences in printer technologies and naming conventions for tools and materials, the following mapping is used: - Screen is managed by the `IoTDEKHandleScreen` DEE. - PasteCartridge, PrintMedium, PrintMediumCartridge, and ProFlowCassete are managed by the `IoTDEKHandleSolder` DEE. - SqueegeeBladeFront, SqueegeeBladeRear, SqueegeeHolderFront, and SqueegeeHolderRear are managed by the `IoTDEKHandleSqueegee` DEE. To enable printer support, configure the extension and any other relevant keys as described below: ### IoTMetadataDefinition Area Level Configuration Set the following keys at **Area** level: | Name | Type | Possible Values | Default Value | Description | | ----------------------------------------- | ------ | ------------------------------------------------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | OIB_PrinterControl_Disabled | String | `true`
`false` | `true` | Enables or disables the extension. | | OIB_PrinterControl_EnableMode | String | `None`
`OnePerEnterprise`
`OnePerSite`
`OnePerLine` | `None` | Determines how Traceability instances are activated:
`None` - No instance is used
`OnePerEnterprise` - One instance for all lines (enterprise level)
`OnePerSite` - One instance for all lines (site level)
`OnePerLine` - One instance per line (use this option) | ### IoTMetadataDefinition Resource Level Configuration Set the following keys at **Resource** level: - `usePrinterConsumables`: Contains a case-insensitive list of consumables to be validated by MES, separated by commas or semicolons. If a received request is not included in this list, ConnectIoT automatically returns a successful response. Valid items are: PasteCartridge, PrintMedium, PrintMediumCartridge, ProFlowCassete, CleanerPaper, CleanerSolvent, VortexCassete and Stinger. - `usePrinterDurables`: Contains a case-insensitive list of tools to be validated by MES, separated by commas or semicolons. If a received request is not included in this list, ConnectIoT automatically returns a successful response. Valid items are: Screen, SqueegeeBladeFront, SqueegeeBladeRear, SqueegeeHolderFront, SqueegeeHolderRear, Tooling, BoardClampFront, BoardClampRear, ProFlowHead, ProFLowCrossbarPlunger and Spatula. ## How to Use - Configure the extension keys at area level: `OIB_PrinterControl_Disabled` and `OIB_PrinterControl_EnableMode`. - Configure the durables and consumables keys at resource level: `usePrinterConsumables` and `usePrinterDurables`. - Configure the station and line names for the printer in the same way as for any P&P machine. - For solder paste handling: - Set the MES configuration key `/IoT/ASM/SolderPasteFeederType/` to the required type (for example, `SolderFeeder`). - Create a feeder and set its `ConsumableFeedType` property to the value specified by the `/IoT/ASM/SolderPasteFeederType/` configuration key. If necessary, add this value to the `ConsumableFeedType` lookup table. - Attach the feeder to the printer resource. The next time the DEE is invoked for solder paste, the material will be attached to this feeder. - For durables handling: - No MES configuration is required. ## Implementation Details - At the OIB driver level, a PrinterControl message is received and forwarded to the OIB Controller. - Messages of type `PrinterControl.Event.VerifyPrinterToolRequest` are routed to the PrinterTool automation flow. - Messages of type `PrinterControl.Event.VerifyPrinterMaterialRequest` are routed to the PrinterConsumables automation flow. - The resource configuration is retrieved from `IoTMetadataDefinition`. - Each automation flow parses its messages based on the value of `VerificationItemId` and calls the corresponding DEE.