###
### Generated file
###
### Generated from generate-heidenhain-input.yml
###
---
description: |

  Heidenhain DNC reference commissioning file
metadata:
  name: Heidenhain DNC
  version: 1.0.0
  icon: >-
    https://www.heidenhain.de/fileadmin/_processed_/4/4/csm_Icons_StateMonitor_4saeulen_HEIDENHAINDNC_6db6961cf2.png
  provider: Cybus
  homepage: https://www.cybus.io
parameters:
  agentId:
    type: string
    description: Agent Identification (Cybus Heidenhain Agent)
    default: my-heidenhain-agent
  machineIP:
    type: string
    default: 1.2.3.4
    description: IP Address of the machine
  cncType:
    type: string
    default: tnc640
    description: >-
      Type of the machine control (DNC Type). Allowed values: tnc640, itnc530,
      itnc426.
    enum:
      - tnc640
      - itnc530
      - tnc426
definitions:
  CYBUS_MQTT_ROOT: !sub heidenhain-dnc/${agentId}/${machineIP}
resources:
  heidenhainConnection:
    type: Cybus::Connection
    properties:
      protocol: Heidenhain
      connection:
        domain: edge.cybus
        agent: !ref agentId
        ipAddress: !ref machineIP
        cncType: !ref cncType
        plcPassword: <some-password>
        usrPassword: <some-password>
        tablePassword: <some-password>
        sysPassword: <some-password>
  getStatePolling:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getState
      subscribe:
        method: getState
        type: poll
        pollInterval: 5000
        params: []
  isConnected:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: isConnected
      read:
        method: isConnected
  getVersion:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getVersion
      read:
        method: getVersion
  getState:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getState
      read:
        method: getState
  getNcUpTime:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getNcUpTime
      read:
        method: getNcUpTime
  getMachineUpTime:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getMachineUpTime
      read:
        method: getMachineUpTime
  getSpindleRunningTime:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getSpindleRunningTime
      read:
        method: getSpindleRunningTime
  getMachineRunningTime:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getMachineRunningTime
      read:
        method: getMachineRunningTime
  getMachineState:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getMachineState
      read:
        method: getMachineState
  getAvailableInterfaces:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getAvailableInterfaces
      read:
        method: getAvailableInterfaces
  hasAutomaticInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasAutomaticInterface
      read:
        method: hasAutomaticInterface
  hasDataAccessInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasDataAccessInterface
      read:
        method: hasDataAccessInterface
  hasErrorInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasErrorInterface
      read:
        method: hasErrorInterface
  hasFileSystemInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasFileSystemInterface
      read:
        method: hasFileSystemInterface
  hasItncTableInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasItncTableInterface
      read:
        method: hasItncTableInterface
  hasProcessDataInterface:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasProcessDataInterface
      read:
        method: hasProcessDataInterface
  hasAutomaticEvents:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasAutomaticEvents
      read:
        method: hasAutomaticEvents
  hasDataAccessEvents:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasDataAccessEvents
      read:
        method: hasDataAccessEvents
  hasErrorEvents:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasErrorEvents
      read:
        method: hasErrorEvents
  hasMachineEvents:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: hasMachineEvents
      read:
        method: hasMachineEvents
  getToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getToolTableRow
      read:
        method: getToolTableRow
  setToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setToolTableRow
      read:
        method: setToolTableRow
  addLinkedToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: addLinkedToolTableRow
      read:
        method: addLinkedToolTableRow
  removeTool:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: removeTool
      read:
        method: removeTool
  removeToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: removeToolTableRow
      read:
        method: removeToolTableRow
  clearToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: clearToolTableRow
      read:
        method: clearToolTableRow
  getToolTableCell:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getToolTableCell
      read:
        method: getToolTableCell
  setToolTableCell:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setToolTableCell
      read:
        method: setToolTableCell
  getLinkedToolId:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getLinkedToolId
      read:
        method: getLinkedToolId
  linkToolToPocketTable:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: linkToolToPocketTable
      read:
        method: linkToolToPocketTable
  unlinkToolFromPocketTable:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: unlinkToolFromPocketTable
      read:
        method: unlinkToolFromPocketTable
  setLinkedToolTableRow:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setLinkedToolTableRow
      read:
        method: setLinkedToolTableRow
  getPocketTable:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getPocketTable
      read:
        method: getPocketTable
  getToolTableRowByPocketId:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getToolTableRowByPocketId
      read:
        method: getToolTableRowByPocketId
  removeToolTableRowByPocketId:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: removeToolTableRowByPocketId
      read:
        method: removeToolTableRowByPocketId
  setTool:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setTool
      read:
        method: setTool
  setAccessMode:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setAccessMode
      read:
        method: setAccessMode
  getValue:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getValue
      read:
        method: getValue
  setValue:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setValue
      read:
        method: setValue
  getPlcData:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getPlcData
      read:
        method: getPlcData
  transmitFile:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: transmitFile
      read:
        method: transmitFile
  receiveFile:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: receiveFile
      read:
        method: receiveFile
  deleteFile:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: deleteFile
      read:
        method: deleteFile
  copyFile:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: copyFile
      read:
        method: copyFile
  readDirectory:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: readDirectory
      read:
        method: readDirectory
  makeDirectory:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: makeDirectory
      read:
        method: makeDirectory
  deleteDirectory:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: deleteDirectory
      read:
        method: deleteDirectory
  deleteDirectoryRecursively:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: deleteDirectoryRecursively
      read:
        method: deleteDirectoryRecursively
  selectProgram:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: selectProgram
      read:
        method: selectProgram
  stopProgram:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: stopProgram
      read:
        method: stopProgram
  cancelProgram:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: cancelProgram
      read:
        method: cancelProgram
  setExecutionMode:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setExecutionMode
      read:
        method: setExecutionMode
  startProgram:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: startProgram
      read:
        method: startProgram
  getProgramStatus:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getProgramStatus
      read:
        method: getProgramStatus
  getDncMode:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getDncMode
      read:
        method: getDncMode
  clearControl:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: clearControl
      read:
        method: clearControl
  setOverrideFeed:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setOverrideFeed
      read:
        method: setOverrideFeed
  setOverrideSpeed:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setOverrideSpeed
      read:
        method: setOverrideSpeed
  setOverrideRapid:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setOverrideRapid
      read:
        method: setOverrideRapid
  getOverrideInfoFeed:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getOverrideInfoFeed
      read:
        method: getOverrideInfoFeed
  getOverrideInfoSpeed:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getOverrideInfoSpeed
      read:
        method: getOverrideInfoSpeed
  getOverrideInfoRapid:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getOverrideInfoRapid
      read:
        method: getOverrideInfoRapid
  getAgentVersion:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getAgentVersion
      read:
        method: getAgentVersion
  setTableMonitorInterval:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setTableMonitorInterval
      read:
        method: setTableMonitorInterval
  getTableMonitorInterval:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getTableMonitorInterval
      read:
        method: getTableMonitorInterval
  setSdkMutexTimeout:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: setSdkMutexTimeout
      read:
        method: setSdkMutexTimeout
  getSdkMutexTimeout:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: getSdkMutexTimeout
      read:
        method: getSdkMutexTimeout
  onToolTableChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onToolTableChanged
      subscribe:
        type: notify
        method: onToolTableChanged
  onToolChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onToolChanged
      subscribe:
        type: notify
        method: onToolChanged
  onStateChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onStateChanged
      subscribe:
        type: notify
        method: onStateChanged
  onDncModeChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onDncModeChanged
      subscribe:
        type: notify
        method: onDncModeChanged
  onPocketTableChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onPocketTableChanged
      subscribe:
        type: notify
        method: onPocketTableChanged
  onProgramChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onProgramChanged
      subscribe:
        type: notify
        method: onProgramChanged
  onNcProgramChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onNcProgramChanged
      subscribe:
        type: notify
        method: onNcProgramChanged
  onProgramStatusChanged:
    type: Cybus::Endpoint
    properties:
      protocol: Heidenhain
      connection: !ref heidenhainConnection
      topic: notify/onProgramStatusChanged
      subscribe:
        type: notify
        method: onProgramStatusChanged
