OPC-UA Interface Guide (SMM)

Smart Media Manager OPC API

Smart Media Manager v6.1.0.2450, Copyright (c) 2023 Hybrid Software. All rights reserved.

Overview

The Smart Media Manager allows the user to create and modify Smart Media Definitions (SMDs).

When the Open Platform Communications (OPC) server in Smart Media Manager is enabled an OPC node tree is published. The nodes in this tree represent grouped areas of state and functionality.

Default address: opc.tcp://localhost:26755/smm

Certificates

Communication between OPC UA clients and servers require both parties to possess their own application certificate. To enable further communication each party must trust the opposing certificate. This trust can be established automatically, programmatically or manually depending on the application's configuration or implementation. The application certificate can be found in %programdata%\Hybrid Software\Smart Media Manager\App Certificates\certs should you need to copy it to the Trusted Peer Certificate folder. In this release it will be a Self Signed Certificate.

OPC Methods

Any methods listed in this documentation will include details about their required parameters (if any), and return value.

In the event of an error please see the application log file for more information.

OPC Methods

Many published OPC method nodes return a String value indicating their success or error state. In all such cases a check for Success indicates success, and any other value indicates an error.

Return Value

Description

Success

The request completed successfully.

ItemNotFound

The specified item was not found.

FailedToExportSmd

The SMD failed to export.

FailedToUpdateSmd

The SMD in SPC failed to update.

NoActiveProject

There is no active project.

RequiresEndUserMode

The request requires SMM to be in end user mode.

FailedToExecute

The request failed to execute.

RequiresMediaLoaded

The request requires media to be loaded.

Any methods returning data (for example JSON or comma-separated values) will be explicitly documented. Callers should validate returned data format to determine success (otherwise one of the above errors may be returned).

Any methods listed in this documentation include details about required parameters (if any) and return values.

In the event of an error, please see the Smart Media Manager log file for more information.

OPC Client Library

The following documentation provides guidance on using the Traeger Industry Components GmbH OPC client library for software developers working with Smart Media Manager.

Configuring Custom Message Sizes

The default maximum message sizes used by OPC clients to communicate to the server are sufficient for most use cases. However, to ensure transfer of larger data packets it may be necessary to configure the OPC client with custom values.

For example:

C#
	Client = new OpcClient();
	Client.Transport.MaxArrayLength = 1024 * 1024 * 50;
	Client.Transport.MaxBufferSize = 1024 * 1024 * 50;
	Client.Transport.MaxMessageSize = 1024 * 1024 * 50;
	Client.Transport.MaxStringLength = 1024 * 1024 * 50;

See here for more information.

Adjusting Communication Timeouts

OPC clients regularly verify the responsiveness of the connection to the OPC server. However, in certain circumstances where the system is under heavy load, maintaining a responsive connection might not always be possible. To mitigate potential issues under such conditions, it is recommended to increase the default communication timeouts.

The example below demonstrates how to adjust the default values:

C#
	var defaultTimeOut = (int)TimeSpan.FromMinutes(10).TotalMilliseconds;
	Client = new OpcClient
	{
	    // Don't auto-disconnect - Dispose the client to explicitly disconnect.
	    DisconnectTimeout = int.MaxValue,
	    KeepAlive = { Interval = defaultTimeOut },
	    SessionTimeout = defaultTimeOut,
	    OperationTimeout = defaultTimeOut,
	    ReconnectTimeout = defaultTimeOut
	};

Please note that the provided examples serve as illustrations, and it's important to tailor the configuration to your specific requirements.

SmartMediaManagerSet

The top-level set containing all available OPC nodes.

Immediately underneath this root-level node are a categorized collection of sub-nodes, each encapsulating a different area of behavior.

Section Name

Description

App

General Information about the app (E.g. Version number, Product name, etc.).

DropLevelMixing

Controls to handle drop level mixing in SMM

InlineTargets

Controls to handle inline targets in SMM

Linearization

Controls to handle linearization in SMM

MediaSetup

Controls to change the values in the media setup pane in SMM

PrintFlat

Controls to create PrintFlat calibrations.

RIPSetup

Controls to change the values in the RIP Setup pane in SMM

SpotSetup

Controls to change the values in the spot override pane in SMM

TotalInkLimit

Controls to handle total ink limit in SMM

App

General Information about the app (E.g. Version number, Product name, etc.).

Properties

Name

Type

Writable

Description

CompanyName

String

No

Gets the company name.

LicenseLevel

String

No

This setting is based on the application license.

This setting determines the application's available feature set.

MediaName

String

Yes

The name of the application's current media.

MediaNamesOnController

Null

No

The list of media names that are available to load from the controller.

MediaValid

Boolean

No

Indicates whether the currently loaded application media is fully loaded.

ProductName

String

No

Gets the product name.

ServerModeLocked

Boolean

Yes

Whether to lock the minimized status of the application UI when running in server mode.

OPC clients can use this to prevent the application UI from being visible.

VersionNumber

String

No

Gets the application version number.

Methods

Name

Returns

Description

ConnectToController(String serverUrl)

String

Connects the application to the controller at the specified OPC UA server URL.

DisconnectFromController()

String

Disconnects the application from its current controller.

Exit()

String

Exit the application.

ExportMediaToConfiguration(String sdcFilename)

String

Export the application media to a device configuration.

GetMediaNamesOnController()

String

Populates the list of media names from the controller.

ImportMediaFromConfiguration(String sdcFilename, String mediaName)

String

Import media from device configuration into the application.

LoadMedia(String smdFilename)

String

Load media from an SMD into the application.

LoadMediaFromController(String mediaName)

String

Load media from controller into the application.

LogError(String clientId, String message)

void

Allows an OPC client to write an error message into the application log.

LogInfo(String clientId, String message)

void

Allows an OPC client to write an information message into the application log.

LogWarning(String clientId, String message)

void

Allows an OPC client to write a warning message into the application log.

SaveMedia(String smdFilename)

String

Save an SMD based on the settings provided in SMM.

SaveMediaToController()

String

Save the application media to the controller.

Files

Name

Description

LogFile

Allows read-only access to the application log file.

NOTE OPC File nodes contain functions which allow access to file content:

  • Open(int fileAccess) - Open the file with the specified fileAccess (1:read, 2:write), returning an integer file handle.

  • Read(int fileHandle, int length) - Read data from an open file handle, returning an array of bytes.

  • Write(int fileHandle, byte[] buffer) - Write/append data to an open file handle.

  • Close(int fileHandle) - Close the file handle after use.

For more information see the OPC documentation.

Preferences

Application preferences

Properties

Name

Type

Writable

Description

AllLengthUnits

String[]

Yes

List of all length units supported by SMM.

AllScanners

String[]

No

List of all scanners known to SMM.

AutoPrint

Boolean

Yes

Whether the target will be automatically pushed from the Waiting Queue to the Print Queue in SPC.

DeltaETolerance

Double

Yes

DeltaE tolerance for showing color as out of gamut.

LengthUnits

String

Yes

The selected unit to be used in SMM graphics interface.

SelectedScanner

String

Yes

The selected scanner to use to scan targets.

TargetCopyCount

Int32

Yes

Number of targets to print. Must be greater than 0.

TargetHeightMm

Double

Yes

Target height in mm.

TargetWidthMm

Double

Yes

Target width in mm.

TestMode

Boolean

Yes

Whether to running PrintFlat calibration process in test mode.

UseDeltaE76

Boolean

Yes

Whether to use Delta E76 or Delta E2000 measurement.

UseSolidLineForCuttingLines

Boolean

Yes

Whether to use solid line to draw cutting lines for PrintFlat targets.

WakeupBarHeightMm

Double

Yes

The height of wake up bar drawn in PrintFlat target in mm.

DropLevelMixing

Controls to handle drop level mixing in SMM

Properties

Name

Type

Writable

Description

AllDropLevelMixingInlineTargets

String[]

No

List of all drop level mixing inline targets.

Methods

Name

Returns

Description

PrintDropLevelMixingTarget(String target)

String

Send standard drop level target or predefined inline target to SPC to print.

PrintInkLimitTarget(String target)

String

Send standard ink limit target or imported inline target to SPC to print.

PrintPinningTarget()

String

Send standard pinning target to SPC to print.

InlineTargets

Controls to handle inline targets in SMM

Properties

Name

Type

Writable

Description

AllInlineTargets

String[]

No

List of all inline targets.

Methods

Name

Returns

Description

ImportInlineTarget(String chartFilePath)

String

Import a ColorAnt chart and convert to an inline target.

PrintInlineTarget(String inlineTarget)

String

Send the inline target to the waiting queue of SPC.

RemoveInlineTarget(String inlineTarget)

String

Remove the inline target.

Linearization

Controls to handle linearization in SMM

Methods

Name

Returns

Description

PrintLinearizationTarget(String target)

String

Send standard pre-linearization target or imported inline target to SPC to print.

MediaSetup

Controls to change the values in the media setup pane in SMM

Properties

Name

Type

Writable

Description

AddWhiteBacking

Boolean

Yes

Whether to add white backing to the target.

AllBitPerPixels

Int32[]

No

List of all bits per pixels.

AllResolutions

String[]

No

List of all resolutions.

AllScreens

String[]

No

List of all screens.

BackingColor

String

Yes

The backing color for the media.

Valid values can be obtained from BackingColors.

BackingColors

String[]

No

The available backing colors.

Description

String

Yes

The description for the media.

Device

String

No

The device name.

Manufacturer

String

No

The device manufacturer.

MediaGroup

Int32

Yes

The media group used to group similar media together.

Valid values can be obtained from MediaGroups.

MediaGroups

Int32[]

No

The available media groups.

MediaName

String

Yes

The name of the media.

MediaWidthMm

Double

Yes

The media width in mm.

Valid values can be obtained from MediaWidthsMm.

MediaWidthsMm

Double[]

No

The available media widths in mm.

Model

String

No

The device model.

ProcessColorSpace

String

Yes

The selected process color space.

Valid values can be obtained from ProcessColorSpaces.

ProcessColorSpaces

String[]

No

The supported process color spaces for the current media.

SelectedBitsPerPixel

Int32

Yes

The selected BitsPerPixel.

Valid values can be obtained from AllBitPerPixels.

SelectedResolution

String

Yes

The selected resolution.

Valid values can be obtained from AllResolutions.

SelectedScreen

String

Yes

The selected screen.

Valid values can be obtained from AllScreens.

SpotColors

Spot colors for the current media.

Properties

Name

Type

Writable

Description

IsActive

Boolean

Yes

Whether the spot color is active.

IsMeasured

Boolean

Yes

Whether the spot color is color managed.

Name

String

No

The spot color name.

PrintFlat

Controls to create PrintFlat calibrations.

Properties

Name

Type

Writable

Description

AllColorants

String[]

No

List of all colorants known to SMM.

AllImageDevices

String[]

No

List of all image devices that can be used by PrintFlat.

CalibrationFiles

String[]

Yes

List of calibration files to be imported.

The files must be in Tiff format and have the same number of entries as Colorants.
The order must be in line with the order of colorants in Colorants.

Colorants

String[]

Yes

List of colorants to be calibrated.

Valid values can be obtained from AllColorants.

CopiesPerTarget

Int32

Yes

Number of targets to print. Must be greater than 0.

ImageDevice

String

Yes

The selected image device (scanner or camera) to capture printed targets.

Valid values can be obtained from AllImageDevices.

ImageFolder

String

Yes

The folder in which scans or camera images are saved for PrintFlat.

The folder should contain all images for PrintFlat targets for the current configuration.
The images must be in RGB Tiff format.

Methods

Name

Returns

Description

CreateCalibration()

String

Create calibration from the images in the ImageFolder.

ImportCalibration()

String

Import calibrations from the CalibrationFiles entries into media.

RIPSetup

Controls to change the values in the RIP Setup pane in SMM

Properties

Name

Type

Writable

Description

CmykDeviceLinkOption

String

Yes

The selected option for generating the CMYK device link profile.

CmykImagesIntentOverride

String

Yes

This intent overrides all CMYK images. This setting will also apply to gray images when 'Color manage gray as CMYK' is checked.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric

ColorManageGrayAsCmyk

Boolean

Yes

Whether to process gray with CMYK color management.

DeviceEmulationIccProfile

String

No

Name of the media's device emulation ICC profile.

EmulateAnotherPrinter

Boolean

Yes

Whether the device emulation ICC profile will be used.

GrayDeviceLinkOption

String

Yes

The selected option for generating the Gray device link profile.

InputCmykIccProfile

String

No

Name of the media's input CMYK ICC profile.

InputGrayIccProfile

String

No

Name of the media's input Gray ICC profile.

InputRgbIccProfile

String

No

Name of the media's input RGB ICC profile.

KeepTextBlack

Boolean

Yes

Whether to keep text black.

MainRenderingIntent

String

Yes

This is the default rendering intent. The rendering intents in the document will override it.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric

OptimizeFinePaths

Boolean

Yes

Whether to optimize the fine paths.

OutputIccProfile

String

No

Name of the media's output ICC profile.

OverrideColorManagementInPdf

Boolean

Yes

Whether to override the color management specified in the PDF.

Preserve100Black

Boolean

Yes

Whether to preserve 100% black.

RgbDeviceLinkOption

String

Yes

The selected option for generating the RGB device link profile.

RgbImagesIntentOverride

String

Yes

This intent overrides all RGB images.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric

Use16BitOutput

Boolean

Yes

Whether to use 16 bit output.

Methods

Name

Returns

Description

CreateCmykDeviceLinkProfile()

String

Create CMYK device link profile.

NOTE This will use the CMYK input profile and the output profile to create a new device link profile.

CreateGrayDeviceLinkProfile()

String

Create Gray device link profile.

NOTE This will use the Gray input profile and the output profile to create a new device link profile.

CreateRgbDeviceLinkProfile()

String

Create RGB device link profile.

NOTE This will use the RGB input profile and the output profile to create a new device link profile.

SetDeviceEmulationIccProfile(String iccFileName)

String

Install an ICC profile into the media.

NOTE

iccFileName must specify a file path accessible to the OPC server.

SetInputCmykIccProfile(String iccFileName)

String

Install an ICC profile into the media.

NOTE

iccFileName must specify a file path accessible to the OPC server.

SetInputGrayIccProfile(String iccFileName)

String

Install an ICC profile into the media.

NOTE

iccFileName must specify a file path accessible to the OPC server.

SetInputRgbIccProfile(String iccFileName)

String

Install an ICC profile into the media.

NOTE

iccFileName must specify a file path accessible to the OPC server.

SetOutputIccProfile(String iccFileName)

String

Install an ICC profile into the media.

NOTE

iccFileName must specify a file path accessible to the OPC server.

SpotSetup

Controls to change the values in the spot override pane in SMM

Properties

Name

Type

Writable

Description

IgnoredSpots

String[]

No

List of all the ignored spot colors currently loaded in the SMD.

PrintBars

String[]

No

List of active print bars.

SpotAliases

String[]

No

List of all the aliased spot colors currently loaded in the SMD. Each entry is formatted as '='.

SpotColors

String[]

Yes

List of all the spot colors currently loaded in the SMD.

Methods

Name

Returns

Description

AddCmykovSpotColor(String spotColorName, Float c, Float m, Float y, Float k, Float o, Float v)

String

Add a spot color to the spot color list from CMYKOV values.

AddCmykSpotColor(String spotColorName, Float c, Float m, Float y, Float k)

String

Add a spot color to the spot color list from CMYK values.

AddIgnoredSpot(String spotName)

String

Add a spot color to the ignored spots list.

AddLabSpotColor(String spotColorName, Float l, Float a, Float b)

String

Add a spot color to the spot color list from Lab values.

AddSpotAlias(String spotAlias, String processColor)

String

Add a spot color to the aliased spots list.

ClearIgnoredSpots()

String

Remove all spot colors from the ignored spots list.

ClearSpotAliases()

String

Remove all spot colors from the aliased spots list.

ClearSpotColorList()

String

Remove all the spot colors ftom the spot color list.

ExportTcb(String tcbFilePath)

String

Export the list of spot colors as a tcb file.

ImportTcb(String tcbFilePath)

String

Import the list of spot colors from a tcb, tcbx or cxf file.

RemoveIgnoredSpot(String spotName)

String

Remove a spot color from the ignored spots list.

RemoveSpotAlias(String spotAlias)

String

Remove a spot color from the aliased spots list.

RemoveSpotColor(String spotColorName)

String

Remove the spot color from the spot color list.

TotalInkLimit

Controls to handle total ink limit in SMM

Properties

Name

Type

Writable

Description

AllTotalInkLimitProfiles

String[]

No

List of total ink limit profiles.

SelectedTotalInkLimitProfile

String

Yes

The selected total ink limit profile.

Valid values can be obtained from AllTotalInkLimitProfiles.

Methods

Name

Returns

Description

PrintTotalInkLimitTarget()

String

Send standard total ink limit target to SPC to print.