<?xml version="1.0" encoding="UTF-8"?>
<Domain
  xmlns="http://www.soti.net/connect-definitions"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.soti.net/connect-definitions ../../../Soti.IoT.ProtocolDefinitions/Soti.IoT.ProtocolDefinitions.Parser/protocol.xsd">
  <Imports>
    <xi:include href="./base-rest-protocol.xml" parse="xml" />
  </Imports>

  <Messages>

    <Message id="BROGetPrinterState" />

    <Message id="BROPrinterState">
      <Object id="Resource">
        <Object id="Device_Information">
          <DataPointReference id="Company_Name" path="base-module#manufacturer" />
          <DataPointReference id="Model" path="base-module#model-id" />
          <DataPointReference id="Serial_Number" path="GenericDeviceState#serial-number" />
          <DataPointReference id="TPH_Resolution" path="TSC-General#Device_Information-TPH_Resolution" />
          <DataPointReference id="DRAM_Size" path="TSC-General#Device_Information-DRAM_Size" />
          <DataPointReference id="Flash_Size" path="TSC-General#Device_Information-Flash_Size" />
          <DataPointReference id="Free_DRAM_Size" path="TSC-General#Device_Information-Free_DRAM_Size" />
          <DataPointReference id="Free_Flash_Size" path="TSC-General#Device_Information-Free_Flash_Size" />
          <DataPointReference id="Firmware_Version" path="base-module#version" />
          <DataPointReference id="Wi-Fi_Version" path="TSC-General#Device_Information-Wi-Fi_Version" />
          <DataPointReference id="Bluetooth_Version" path="bluetooth-fw_versionModule#bluetooth-fw_version" />
          <DataPointReference id="Host_Name" path="TSC-General#Device_Information-Host_Name" />
          <DataPointReference id="Domain_Name" path="generic-fqdn#fqdn" />
        </Object>
        <Object id="Printer_Statistics">
          <DataPointReference id="Printer_Mileage" path="TSC-General#Printer_Statistics-Mileage" />
          <DataPointReference id="TPH_Odometer" path="TSC-General#Printer_Statistics-TPH_Odometer" />
          <DataPointReference id="TPH_Serial_Number" path="TSC-General#Printer_Statistics-TPH_Serial_Number" />
          <DataPointReference id="TPH_Cleaning" path="TSC-General#Printer_Statistics-TPH_Cleaning" />
          <DataPointReference id="Labels" path="printer_stat-total_label_countModule#printer_stat-total_label_count" />
          <DataPointReference id="Printer_Cutter_Counter" path="TSC-General#Printer_Statistics-Printer_Cutter_Counter" />
          <DataPointReference id="Cutter_Counter" path="TSC-General#Printer_Statistics-Cutter_Counter" />
          <DataPointReference id="Cutter_Serial_Number" path="TSC-General#Printer_Statistics-Cutter_Serial_Number" />
          <DataPointReference id="Ribbon_Remaining" path="TSC-General#Printer_Statistics-Ribbon_Remaining" />
          <DataPointReference id="Last_Power_On_Time" path="TSC-General#Printer_Statistics-Last_Power_On_Time" />
        </Object>
        <Object id="TPH_Care">
          <DataPointReference id="TPH_Care_Support" path="TSC-TPH-Care#TPH_Care-TPH_Care_Support" />
          <DataPointReference id="TPH_Care_Enable" path="TSC-TPH-Care#TPH_Care-TPH_Care_Enable" />
          <DataPointReference id="Unhealthy_Dot_QTY" path="TSC-TPH-Care#TPH_Care-Unhealthy_Dot_QTY" />
          <DataPointReference id="Unhealthy_Dot_Threshold" path="TSC-TPH-Care#TPH_Care-Unhealthy_Dot_Threshold" />
        </Object>
        <Object id="Smart_Battery">
          <DataPointReference id="Battery_Serial_Number" path="BatterySerialNumberModule#BatterySerialNumber" />
          <DataPointReference id="Current_Voltage" path="voltageModule#voltage" />
          <DataPointReference id="Capacity" path="BatteryCapacityModule#BatteryCapacity" />
          <DataPointReference id="Temperature" path="battery-temperatureModule#battery-temperature" />
          <DataPointReference id="Charged_Times" path="TSC-Smart-Battery#Battery-Charged_Times" />
          <DataPointReference id="Manufacture_Date" path="TSC-Smart-Battery#Battery-Manufacture_Date" />
          <DataPointReference id="Healthy_Status" path="TSC-Smart-Battery#Battery-Healthy_Status" />
        </Object>
        <Object id="Printer_State">
          <DataPointReference id="Display_Line_1" path="TSC-Printer-State#Printer_State-Display_Line_1" />
          <DataPointReference id="Display_Line_2" path="TSC-Printer-State#Printer_State-Display_Line_2" />
        </Object>
        <Object id="System_Control">
          <DataPointReference id="Display_Language" path="TSC-System#System_Control-Display_Language" />
          <DataPointReference id="LCD_Brightness" path="TSC-System#System_Control-LCD_Brightness" />
          <DataPointReference id="Paper_Low_Percent" path="TSC-System#System_Control-Paper_Low_Percent" />
          <DataPointReference id="Ribbon_Low_Warning" path="TSC-RibbonLow#System_Control-Ribbon_Low_Warning" />
          <DataPointReference id="Menu_Lock" path="TSC-MenuPassword#System_Control-Menu_Lock" />
          <DataPointReference id="My_Favorite_Menu_Lock" path="TSC-MenuPassword#System_Control-My_Favorite_Menu_Lock" />
          <DataPointReference id="Date_Format" path="TSC-System#System_Control-Date_Format" />
          <DataPointReference id="Time_Format" path="TSC-System#System_Control-Time_Format" />
          <DataPointReference id="Date" path="TSC-System#System_Control-Date" />
          <DataPointReference id="Time" path="TSC-System#System_Control-Time" />
          <DataPointReference id="Preferred_Network" path="TSC-System#System_Control-Preferred_Network" />
        </Object>
        <Object id="Serial_Port_Settings">
          <DataPointReference id="Baud_Rate" path="TSC-SerialPort#Serial_Port_Settings-Baud_Rate" />
          <DataPointReference id="Data" path="TSC-SerialPort#Serial_Port_Settings-Data" />
          <DataPointReference id="Parity" path="TSC-SerialPort#Serial_Port_Settings-Parity" />
          <DataPointReference id="Stop" path="TSC-SerialPort#Serial_Port_Settings-Stop" />
        </Object>
        <Object id="MQTT_Information">
          <DataPointReference id="Server_IP_Address" path="MQTT-Settings#mqtt_server_ip_addr" />
          <DataPointReference id="MQTT_Port" path="MQTT-Settings#mqtt_port_number" />
          <DataPointReference id="MQTT_Secured" path="TSC-General#MQTT_Information-MQTT_Secured" />
          <DataPointReference id="MQTT_Tenant_ID" path="MQTT-Settings#tenant_id" />
          <DataPointReference id="MQTT_Device_Name" path="TSC-General#MQTT_Information-MQTT_Device_Name" />
          <DataPointReference id="MQTT_Device_ID" path="TSC-General#MQTT_Information-MQTT_Device_ID" />
        </Object>
        <Object id="Installed_Modules">
          <DataPointReference id="Wi-Fi_Installed" path="TSC-General#Installed_Modules-Wi-Fi_Installed" />
          <DataPointReference id="Bluetooth_Installed" path="installed_modules-blue_installedModule#installed_modules-blue_installed" />
          <DataPointReference id="Cutter_Installed" path="TSC-General#Installed_Modules-Cutter_Installed" />
        </Object>
        <Object id="Network_Settings">
          <DataPointReference id="Print_Data_Port" path="net_settings-ascii_data_port_setModule#net_settings-ascii_data_port_set" />
          <DataPointReference id="DHCP" path="GenericNetworkIP4Lan#automatically_obtain_ip_address" />
          <DataPointReference id="IP_Address" path="GenericNetworkIP4Lan#generic-network-ipaddress" />
          <DataPointReference id="Subnet_Mask" path="GenericNetworkIP4Lan#generic-network-subnet-mask" />
          <DataPointReference id="Gateway_Address" path="GenericNetworkIP4Lan#generic-network-gateway" />
          <DataPointReference id="Primary_DNS" path="GenericNetworkIP4Lan#primary_dns_server_ip_address" />
          <DataPointReference id="Second_DNS" path="secondary_dns_server_ip_addressModule#secondary_dns_server_ip_address" />
          <DataPointReference id="MAC_Address" path="GenericNetworkIP4Lan#generic-network-mac" />
          <DataPointReference id="Ethernet_Speed" path="TSC-WiredLan#Network_Settings-Ethernet_Speed" />
        </Object>
        <Object id="Wi-Fi_Settings">
          <DataPointReference id="Wi-Fi_Print_Data_Port" path="TSC-WirelessLan#Wi-Fi_Settings-Print_Data_Port" />
          <DataPointReference id="Wi-Fi_DHCP" path="GenericNetworkIP4WLan#automatically_obtain_ip_address" />
          <DataPointReference id="Wi-Fi_IP_Address" path="GenericNetworkIP4WLan#generic-network-ipaddress" />
          <DataPointReference id="Wi-Fi_Subnet_Mask" path="GenericNetworkIP4WLan#generic-network-subnet-mask" />
          <DataPointReference id="Wi-Fi_Gateway_Address" path="GenericNetworkIP4WLan#generic-network-gateway" />
          <DataPointReference id="Wi-Fi_Primary_DNS" path="GenericNetworkIP4WLan#primary_dns_server_ip_address" />
          <DataPointReference id="Wi-Fi_Second_DNS" path="TSC-WirelessLan#Wi-Fi_Settings-Wi-Fi_Second_DNS" />
          <DataPointReference id="SSID" path="GenericWIFI#ssid" />
          <DataPointReference id="Security_Mode" path="TSC-WirelessLan#Wi-Fi_Settings-Security_Mode" />
          <DataPointReference id="WEP_Key_Index" path="TSC-WirelessLan#Wi-Fi_Settings-WEP_Key_Index" />
          <DataPointReference id="EAP_Mode" path="TSC-WirelessLan#Wi-Fi_Settings-EAP_Mode" />
          <DataPointReference id="CA_Certificate_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-CA_Certificate_Filename" />
          <DataPointReference id="Client_Certificate_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-Client_Certificate_Filename" />
          <DataPointReference id="Private_Key_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-Private_Key_Filename" />
          <DataPointReference id="EAP_Username" path="TSC-WirelessLan#Wi-Fi_Settings-EAP_Username" />
          <DataPointReference id="Wi-Fi_MAC_Address" path="GenericNetworkIP4WLan#generic-network-mac" />
        </Object>
        <Object id="Bluetooth_Settings">
          <DataPointReference id="Connect_Name" path="TSC-Bluetooth#Bluetooth_Settings-Connect_Name" />
          <DataPointReference id="PIN_Code" path="TSC-Bluetooth#Bluetooth_Settings-PIN_Code" />
          <DataPointReference id="Mode" path="TSC-Bluetooth#Bluetooth_Settings-Mode" />
          <DataPointReference id="MAC_Address" path="GenericNetworkBluetooth#bluetooth-device-address" />
        </Object>
        <Object id="Media_Settings">
          <DataPointReference id="Print_Speed" path="TSC-Media#Media_Settings-Print_Speed" />
          <DataPointReference id="Print_Density" path="TSC-Media#Media_Settings-Print_Density" />
          <DataPointReference id="Print_Direction" path="TSC-Media#Media_Settings-Print_Direction" />
          <DataPointReference id="Paper_Width" path="TSC-Media#Media_Settings-Paper_Width" />
          <DataPointReference id="Paper_Height" path="TSC-Media#Media_Settings-Paper_Height" />
          <DataPointReference id="Print_Mode" path="TSC-Media#Media_Settings-Print_Mode" />
          <DataPointReference id="Offset" path="TSC-Media#Media_Settings-Offset" />
          <DataPointReference id="Shift_X" path="TSC-Media#Media_Settings-Shift_X" />
          <DataPointReference id="Shift_Y" path="TSC-Media#Media_Settings-Shift_Y" />
          <DataPointReference id="Reference_X" path="TSC-Media#Media_Settings-Reference_X" />
          <DataPointReference id="Reference_Y" path="TSC-Media#Media_Settings-Reference_Y" />
          <DataPointReference id="Code_Page" path="TSC-Media#Media_Settings-Code_Page" />
          <DataPointReference id="Country" path="TSC-Media#Media_Settings-Country" />
        </Object>
        <Object id="Sensor_Settings">
          <DataPointReference id="Media_Sensor" path="TSC-Sensor#Sensor_Settings-Media_Sensor" />
          <DataPointReference id="Gap_Size" path="TSC-Media-Sensor-Extended#Sensor_Settings-Gap_Size" />
          <DataPointReference id="Black_Line_Size" path="TSC-Media-Sensor-Extended#Sensor_Settings-Black_Line_Size" />
          <DataPointReference id="Threshold_Detect" path="TSC-Sensor#Sensor_Settings-Threshold_Detect" />
          <DataPointReference id="Maximun_Detect_Length" path="TSC-Sensor#Sensor_Settings-Maximun_Detect_Length" />
          <DataPointReference id="Minimun_Paper" path="TSC-Sensor#Sensor_Settings-Minimun_Paper" />
          <DataPointReference id="Maximun_Gap_Mark" path="TSC-Sensor#Sensor_Settings-Maximun_Gap_Mark" />
          <DataPointReference id="Auto_Calibration" path="TSC-Sensor#Sensor_Settings-Auto_Calibration" />
        </Object>
      </Object>
    </Message>

    <Message id="BROChangePrinterSettings">
      <Object id="Resource">
        <Object id="Device_Information">
          <Segment id="Host_Name" type="string" />
        </Object>
        <Object id="TPH_Care">
          <Segment id="TPH_Care_Enable" type="boolean" />
          <Segment id="Unhealthy_Dot_Threshold" type="integer" />
        </Object>
        <Object id="System_Control">
          <Segment id="Display_Language" type="string" />
          <Segment id="LCD_Brightness" type="integer" />
          <Segment id="Paper_Low_Percent" type="integer" />
          <Segment id="Ribbon_Low_Warning" type="float" />
          <Segment id="Menu_Lock" type="boolean" />
          <Segment id="Menu_Password" type="integer" />
          <Segment id="My_Favorite_Menu_Lock" type="boolean" />
          <Segment id="My_Favorite_Menu_Password" type="integer" />
          <Segment id="Date_Format" type="string" />
          <Segment id="Time_Format" type="string" />
          <Segment id="Date" type="string" />
          <Segment id="Time" type="string" />
          <Segment id="Preferred_Network" type="string" />
        </Object>
        <Object id="Serial_Port_Settings">
          <Segment id="Baud_Rate" type="integer" />
          <Segment id="Data" type="integer" />
          <Segment id="Parity" type="string" />
          <Segment id="Stop" type="integer" />
        </Object>
        <Object id="Network_Settings">
          <Segment id="Print_Data_Port" type="integer" />
          <Segment id="DHCP" type="boolean" />
          <Segment id="IP_Address" type="ipv4" />
          <Segment id="Subnet_Mask" type="ipv4" />
          <Segment id="Gateway_Address" type="ipv4" />
          <Segment id="Primary_DNS" type="string" />
          <Segment id="Second_DNS" type="string" />
        </Object>
        <Object id="Wi-Fi_Settings">
          <Segment id="Wi-Fi_Print_Data_Port" type="integer" />
          <Segment id="Wi-Fi_DHCP" type="boolean" />
          <Segment id="Wi-Fi_IP_Address" type="ipv4" />
          <Segment id="Wi-Fi_Subnet_Mask" type="ipv4" />
          <Segment id="Wi-Fi_Gateway_Address" type="ipv4" />
          <Segment id="Wi-Fi_Primary_DNS" type="string" />
          <Segment id="Wi-Fi_Second_DNS" type="string" />
          <Segment id="SSID" type="string" />
          <Segment id="Security_Mode" type="string" />
          <Segment id="WEP_Key_Index" type="integer" />
          <Segment id="WEP_Key" type="string" />
          <Segment id="WPA_Cipher" type="string" />
          <Segment id="EAP_Mode" type="string" />
          <Segment id="CA_Certificate_Filename" type="string" />
          <Segment id="Client_Certificate_Filename" type="string" />
          <Segment id="Private_Key_Filename" type="string" />
          <Segment id="EAP_Username" type="string" />
          <Segment id="EAP_Password" type="string" />
        </Object>
        <Object id="Bluetooth_Settings">
          <Segment id="Connect_Name" type="string" />
          <Segment id="PIN_Code" type="string" />
          <Segment id="Mode" type="string" />
        </Object>
        <Object id="Media_Settings">
          <Segment id="Print_Speed" type="float" />
          <Segment id="Print_Density" type="integer" />
          <Segment id="Print_Direction" type="integer" />
          <Segment id="Paper_Width" type="float" />
          <Segment id="Paper_Height" type="float" />
          <Segment id="Print_Mode" type="string" />
          <Segment id="Offset" type="float" />
          <Segment id="Shift_X" type="float" />
          <Segment id="Shift_Y" type="float" />
          <Segment id="Reference_X" type="float" />
          <Segment id="Reference_Y" type="float" />
          <Segment id="Code_Page" type="string" />
          <Segment id="Country" type="string" />
        </Object>
        <Object id="Sensor_Settings">
          <Segment id="Media_Sensor" type="string" />
          <Segment id="Gap_Size" type="float" />
          <Segment id="Black_Line_Size" type="float" />
          <Segment id="Threshold_Detect" type="string" />
          <Segment id="Maximun_Detect_Length" type="float" />
          <Segment id="Minimun_Paper" type="float" />
          <Segment id="Maximun_Gap_Mark" type="float" />
          <Segment id="Auto_Calibration" type="string" />
        </Object>
      </Object>
    </Message>

    <Message id="BROPrinterSettings">
      <Object id="Resource">
        <Object id="Device_Information">
          <DataPointReference id="Host_Name" path="TSC-General#Device_Information-Host_Name" />
        </Object>
        <Object id="TPH_Care">
          <DataPointReference id="TPH_Care_Enable" path="TSC-TPH-Care#TPH_Care-TPH_Care_Enable" />
          <DataPointReference id="Unhealthy_Dot_Threshold" path="TSC-TPH-Care#TPH_Care-Unhealthy_Dot_Threshold" />
        </Object>
        <Object id="System_Control">
          <DataPointReference id="Display_Language" path="TSC-System#System_Control-Display_Language" />
          <DataPointReference id="LCD_Brightness" path="TSC-System#System_Control-LCD_Brightness" />
          <DataPointReference id="Paper_Low_Percent" path="TSC-System#System_Control-Paper_Low_Percent" />
          <DataPointReference id="Ribbon_Low_Warning" path="TSC-RibbonLow#System_Control-Ribbon_Low_Warning" />
          <DataPointReference id="Menu_Lock" path="TSC-MenuPassword#System_Control-Menu_Lock" />
          <DataPointReference id="My_Favorite_Menu_Lock" path="TSC-MenuPassword#System_Control-My_Favorite_Menu_Lock" />
          <DataPointReference id="Date_Format" path="TSC-System#System_Control-Date_Format" />
          <DataPointReference id="Time_Format" path="TSC-System#System_Control-Time_Format" />
          <DataPointReference id="Date" path="TSC-System#System_Control-Date" />
          <DataPointReference id="Time" path="TSC-System#System_Control-Time" />
          <DataPointReference id="Preferred_Network" path="TSC-System#System_Control-Preferred_Network" />
        </Object>
        <Object id="Serial_Port_Settings">
          <DataPointReference id="Baud_Rate" path="TSC-SerialPort#Serial_Port_Settings-Baud_Rate" />
          <DataPointReference id="Data" path="TSC-SerialPort#Serial_Port_Settings-Data" />
          <DataPointReference id="Parity" path="TSC-SerialPort#Serial_Port_Settings-Parity" />
          <DataPointReference id="Stop" path="TSC-SerialPort#Serial_Port_Settings-Stop" />
        </Object>
        <Object id="MQTT_Information">
          <DataPointReference id="Server_IP_Address" path="MQTT-Settings#mqtt_server_ip_addr" />
          <DataPointReference id="MQTT_Port" path="MQTT-Settings#mqtt_port_number" />
          <DataPointReference id="MQTT_Secured" path="TSC-General#MQTT_Information-MQTT_Secured" />
          <DataPointReference id="MQTT_Tenant_ID" path="MQTT-Settings#tenant_id" />
        </Object>
        <Object id="Network_Settings">
          <DataPointReference id="Print_Data_Port" path="net_settings-ascii_data_port_setModule#net_settings-ascii_data_port_set" />
          <DataPointReference id="DHCP" path="GenericNetworkIP4Lan#automatically_obtain_ip_address" />
          <DataPointReference id="IP_Address" path="GenericNetworkIP4Lan#generic-network-ipaddress" />
          <DataPointReference id="Subnet_Mask" path="GenericNetworkIP4Lan#generic-network-subnet-mask" />
          <DataPointReference id="Gateway_Address" path="GenericNetworkIP4Lan#generic-network-gateway" />
          <DataPointReference id="Primary_DNS" path="GenericNetworkIP4Lan#primary_dns_server_ip_address" />
          <DataPointReference id="Second_DNS" path="secondary_dns_server_ip_addressModule#secondary_dns_server_ip_address" />
        </Object>
        <Object id="Wi-Fi_Settings">
          <DataPointReference id="Wi-Fi_Print_Data_Port" path="TSC-WirelessLan#Wi-Fi_Settings-Print_Data_Port" />
          <DataPointReference id="Wi-Fi_DHCP" path="GenericNetworkIP4WLan#automatically_obtain_ip_address" />
          <DataPointReference id="Wi-Fi_IP_Address" path="GenericNetworkIP4WLan#generic-network-ipaddress" />
          <DataPointReference id="Wi-Fi_Subnet_Mask" path="GenericNetworkIP4WLan#generic-network-subnet-mask" />
          <DataPointReference id="Wi-Fi_Gateway_Address" path="GenericNetworkIP4WLan#generic-network-gateway" />
          <DataPointReference id="Wi-Fi_Primary_DNS" path="GenericNetworkIP4WLan#primary_dns_server_ip_address" />
          <DataPointReference id="Wi-Fi_Second_DNS" path="TSC-WirelessLan#Wi-Fi_Settings-Wi-Fi_Second_DNS" />
          <DataPointReference id="SSID" path="GenericWIFI#ssid" />
          <DataPointReference id="Security_Mode" path="TSC-WirelessLan#Wi-Fi_Settings-Security_Mode" />
          <DataPointReference id="WEP_Key_Index" path="TSC-WirelessLan#Wi-Fi_Settings-WEP_Key_Index" />
          <DataPointReference id="EAP_Mode" path="TSC-WirelessLan#Wi-Fi_Settings-EAP_Mode" />
          <DataPointReference id="CA_Certificate_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-CA_Certificate_Filename" />
          <DataPointReference id="Client_Certificate_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-Client_Certificate_Filename" />
          <DataPointReference id="Private_Key_Filename" path="TSC-WirelessLan#Wi-Fi_Settings-Private_Key_Filename" />
          <DataPointReference id="EAP_Username" path="TSC-WirelessLan#Wi-Fi_Settings-EAP_Username" />
        </Object>
        <Object id="Bluetooth_Settings">
          <DataPointReference id="Connect_Name" path="TSC-Bluetooth#Bluetooth_Settings-Connect_Name" />
          <DataPointReference id="PIN_Code" path="TSC-Bluetooth#Bluetooth_Settings-PIN_Code" />
          <DataPointReference id="Mode" path="TSC-Bluetooth#Bluetooth_Settings-Mode" />
        </Object>
        <Object id="Media_Settings">
          <DataPointReference id="Print_Speed" path="TSC-Media#Media_Settings-Print_Speed" />
          <DataPointReference id="Print_Density" path="TSC-Media#Media_Settings-Print_Density" />
          <DataPointReference id="Print_Direction" path="TSC-Media#Media_Settings-Print_Direction" />
          <DataPointReference id="Print_Mode" path="TSC-Media#Media_Settings-Print_Mode" />
          <DataPointReference id="Offset" path="TSC-Media#Media_Settings-Offset" />
          <DataPointReference id="Shift_X" path="TSC-Media#Media_Settings-Shift_X" />
          <DataPointReference id="Shift_Y" path="TSC-Media#Media_Settings-Shift_Y" />
          <DataPointReference id="Reference_X" path="TSC-Media#Media_Settings-Reference_X" />
          <DataPointReference id="Reference_Y" path="TSC-Media#Media_Settings-Reference_Y" />
          <DataPointReference id="Code_Page" path="TSC-Media#Media_Settings-Code_Page" />
          <DataPointReference id="Country" path="TSC-Media#Media_Settings-Country" />
        </Object>
        <Object id="Sensor_Settings">
          <DataPointReference id="Media_Sensor" path="TSC-Sensor#Sensor_Settings-Media_Sensor" />
          <DataPointReference id="Gap_Size" path="TSC-Media-Sensor-Extended#Sensor_Settings-Gap_Size" />
          <DataPointReference id="Black_Line_Size" path="TSC-Media-Sensor-Extended#Sensor_Settings-Black_Line_Size" />
          <DataPointReference id="Threshold_Detect" path="TSC-Sensor#Sensor_Settings-Threshold_Detect" />
          <DataPointReference id="Maximun_Detect_Length" path="TSC-Sensor#Sensor_Settings-Maximun_Detect_Length" />
          <DataPointReference id="Minimun_Paper" path="TSC-Sensor#Sensor_Settings-Minimun_Paper" />
          <DataPointReference id="Maximun_Gap_Mark" path="TSC-Sensor#Sensor_Settings-Maximun_Gap_Mark" />
          <DataPointReference id="Auto_Calibration" path="TSC-Sensor#Sensor_Settings-Auto_Calibration" />
        </Object>
      </Object>
    </Message>

    <Message id="BROReboot">
      <Segment id="Resource" type="string" />
    </Message>

    <Message id="BRODownloadFile">
      <Object id="Resource">
        <Segment id="downloadUri" type="uri" />
        <Segment id="contentType" type="string" />
      </Object>
    </Message>

    <Message id="BROPrintTestPage">
      <Segment id="Resource" type="string" />
    </Message>

    <Message id="BROFactoryReset" />

    <Message id="BROTextDataTransfer" />
    <Message id="BROHexDataTransfer" />
    <Message id="PrinterDataReturn">
      <Object id="Resource">
        <Segment id="Squence_Id" type="string" />
        <Segment id="Hex_Data" type="string" />
      </Object>
    </Message>

    <Message id="BRODownloadFileStoreFile">
      <Object id="Resource">
        <Segment id="file" type="filestore" />
        <Segment id="contentType" type="string" />
      </Object>
    </Message>

    <Message id="BROTPHCare">
      <Segment id="Resource" type="string" />
    </Message>

    <Message id="BROAlert">
      <Object id="Resource">
        <DataPointReference id="Id" path="TSC-Alert#Id" />
        <DataPointReference id="Description" path="TSC-Alert#Description" />
        <DataPointReference id="Type" path="TSC-Alert#Type" />
        <DataPointReference id="Priority" path="TSC-Alert#Priority" />
        <DataPointReference id="Timestamp" path="TSC-Alert#Timestamp" />
      </Object>
    </Message>

  </Messages>


  <Transactions>

    <Transaction id="BROCheckIn" semanticid="base-module#checkin">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROGetPrinterState" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterState" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeDeviceInfoSettings" semanticid="TSC-General#change-device-info">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Host Name" path="Resource/Device_Information/Host_Name" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeRibbonThreshold" semanticid="TSC-RibbonLow#change-ribbon-low-threshold">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="&quot;Ribbon Low&quot; Warning Threshold" path="Resource/System_Control/Ribbon_Low_Warning" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSystemSettings" semanticid="TSC-System#change-system_control">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Display Language" path="Resource/System_Control/Display_Language" />
            <UserAssignment actionArgName="LCD Brightness" path="Resource/System_Control/LCD_Brightness" />
            <UserAssignment actionArgName="&quot;Paper Low&quot; Warning Threshold" path="Resource/System_Control/Paper_Low_Percent" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeMenuPasswordSettings" semanticid="TSC-MenuPassword#change-menu_password">
      <Blocks>
        <Block id="1">
          <SendMessage id="TSCChangePrinterSettings">
            <UserAssignment actionArgName="Enable Menu Lock" path="Resource/System_Control/Menu_Lock" />
            <UserAssignment actionArgName="Menu Password" path="Resource/System_Control/Menu_Password" />
            <UserAssignment actionArgName="Enable My Favorite Menu Lock" path="Resource/System_Control/My_Favorite_Menu_Lock" />
            <UserAssignment actionArgName="&quot;My Favorite&quot; Menu Password" path="Resource/System_Control/My_Favorite_Menu_Password" defaultValue="0" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="TSCPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSystemDateTime" semanticid="TSC-System#change-date_time">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Date Format" path="Resource/System_Control/Date_Format" />
            <UserAssignment actionArgName="Time Format" path="Resource/System_Control/Time_Format" />
            <UserAssignment actionArgName="Date" path="Resource/System_Control/Date" />
            <UserAssignment actionArgName="Time" path="Resource/System_Control/Time" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSerialPortSettings" semanticid="TSC-SerialPort#change-serial_port">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Baud Rate" path="Resource/Serial_Port_Settings/Baud_Rate" />
            <UserAssignment actionArgName="Data Bits" path="Resource/Serial_Port_Settings/Data" />
            <UserAssignment actionArgName="Parity" path="Resource/Serial_Port_Settings/Parity" />
            <UserAssignment actionArgName="Stop Bits" path="Resource/Serial_Port_Settings/Stop" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>


    <Transaction id="BROChangeWiredLan" semanticid="TSC-WiredLan#change-net_settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Print Data Port" path="Resource/Network_Settings/Print_Data_Port" />
            <UserAssignment actionArgName="Use DHCP" path="Resource/Network_Settings/DHCP" />
            <UserAssignment actionArgName="IP Address" path="Resource/Network_Settings/IP_Address" />
            <UserAssignment actionArgName="Subnet Mask" path="Resource/Network_Settings/Subnet_Mask" />
            <UserAssignment actionArgName="Gateway Address" path="Resource/Network_Settings/Gateway_Address" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeDNS" semanticid="TSC-WiredLan#change-dns">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Primary DNS Address" path="Resource/Network_Settings/Primary_DNS" />
            <UserAssignment actionArgName="Secondary DNS Address" path="Resource/Network_Settings/Second_DNS" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>


    <Transaction id="BROChangeWirelessLanNetwork" semanticid="TSC-WirelessLan#change-wireless_lan_network">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Print Data Port" path="Resource/Wi-Fi_Settings/Wi-Fi_Print_Data_Port" />
            <UserAssignment actionArgName="Use DHCP" path="Resource/Wi-Fi_Settings/Wi-Fi_DHCP" />
            <UserAssignment actionArgName="IP Address" path="Resource/Wi-Fi_Settings/Wi-Fi_IP_Address" />
            <UserAssignment actionArgName="Subnet Mask" path="Resource/Wi-Fi_Settings/Wi-Fi_Subnet_Mask" />
            <UserAssignment actionArgName="Gateway Address" path="Resource/Wi-Fi_Settings/Wi-Fi_Gateway_Address" />
            <UserAssignment actionArgName="Wi-Fi Primary DNS" path="Resource/Wi-Fi_Settings/Wi-Fi_Primary_DNS" />
            <UserAssignment actionArgName="Wi-Fi Second DNS" path="Resource/Wi-Fi_Settings/Wi-Fi_Second_DNS" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeWifi" semanticid="TSC-WirelessLan#change-wifi">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="SSID" path="Resource/Wi-Fi_Settings/SSID" />
            <UserAssignment actionArgName="Security Mode" path="Resource/Wi-Fi_Settings/Security_Mode" />
            <UserAssignment actionArgName="WEP Key Index" path="Resource/Wi-Fi_Settings/WEP_Key_Index" />
            <UserAssignment actionArgName="WEP Key" path="Resource/Wi-Fi_Settings/WEP_Key" secret="true" />
            <UserAssignment actionArgName="WPA Cipher" path="Resource/Wi-Fi_Settings/WPA_Cipher" />
            <UserAssignment actionArgName="EAP Mode" path="Resource/Wi-Fi_Settings/EAP_Mode" />
            <UserAssignment actionArgName="EAP Username" path="Resource/Wi-Fi_Settings/EAP_Username" />
            <UserAssignment actionArgName="EAP Password" path="Resource/Wi-Fi_Settings/EAP_Password" secret="true" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeWifiCerts" semanticid="TSC-WirelessLan#change-wifi_certs">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="CA Certificate Filename" path="Resource/Wi-Fi_Settings/CA_Certificate_Filename" />
            <UserAssignment actionArgName="Client Certificate Filename" path="Resource/Wi-Fi_Settings/Client_Certificate_Filename" />
            <UserAssignment actionArgName="Private Key Filename" path="Resource/Wi-Fi_Settings/Private_Key_Filename" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeBluetoothSettings" semanticid="TSC-Bluetooth#change-blue_settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Connection Name" path="Resource/Bluetooth_Settings/Connect_Name" />
            <UserAssignment actionArgName="PIN" path="Resource/Bluetooth_Settings/PIN_Code" />
            <UserAssignment actionArgName="Mode" path="Resource/Bluetooth_Settings/Mode" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>
    <Transaction id="BROChangelabelsettings" semanticid="TSC-Media#change-label-settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="TSCChangePrinterSettings">
            <UserAssignment actionArgName="Label Width" path="Resource/Media_Settings/Paper_Width" />
            <UserAssignment actionArgName="Label Length" path="Resource/Media_Settings/Paper_Height" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="TSCPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>
    <Transaction id="BROChangeMediaPrintingSettings" semanticid="TSC-PrintSpeed#change-media_settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Darkness" path="Resource/Media_Settings/Print_Density" />
            <UserAssignment actionArgName="Print Speed" path="Resource/Media_Settings/Print_Speed" />
            <UserAssignment actionArgName="Print Direction" path="Resource/Media_Settings/Print_Direction" />
            <UserAssignment actionArgName="Label Width" path="Resource/Media_Settings/Paper_Width" />
            <UserAssignment actionArgName="Label Length" path="Resource/Media_Settings/Paper_Height" />
            <UserAssignment actionArgName="Print Mode" path="Resource/Media_Settings/Print_Mode" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangePrintModeSettings" semanticid="TSC-PrintSpeed#change-printMode_settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Print Direction" path="Resource/Media_Settings/Print_Direction" />
            <UserAssignment actionArgName="Label Width" path="Resource/Media_Settings/Paper_Width" />
            <UserAssignment actionArgName="Label Length" path="Resource/Media_Settings/Paper_Height" />
            <UserAssignment actionArgName="Print Mode" path="Resource/Media_Settings/Print_Mode" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeMediaOffsets" semanticid="TSC-Media#change-media_offsets">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Offset" path="Resource/Media_Settings/Offset" />
            <UserAssignment actionArgName="Shift X" path="Resource/Media_Settings/Shift_X" />
            <UserAssignment actionArgName="Shift Y" path="Resource/Media_Settings/Shift_Y" />
            <UserAssignment actionArgName="Reference X" path="Resource/Media_Settings/Reference_X" />
            <UserAssignment actionArgName="Reference Y" path="Resource/Media_Settings/Reference_Y" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeMediaCodes" semanticid="TSC-Media#change-media_codes">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Code Page" path="Resource/Media_Settings/Code_Page" />
            <UserAssignment actionArgName="Country Code" path="Resource/Media_Settings/Country" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSensor" semanticid="TSC-Sensor#change-sensor">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Media Sensor" path="Resource/Sensor_Settings/Media_Sensor" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSensorSettings" semanticid="TSC-Sensor#change-sensor_settings">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Threshold Detection" path="Resource/Sensor_Settings/Threshold_Detect" />
            <UserAssignment actionArgName="Maximum Sensor Detection Length" path="Resource/Sensor_Settings/Maximun_Detect_Length" />
            <UserAssignment actionArgName="Minimum Paper Length" path="Resource/Sensor_Settings/Minimun_Paper" />
            <UserAssignment actionArgName="Maximum Gap/Mark Length" path="Resource/Sensor_Settings/Maximun_Gap_Mark" />
            <UserAssignment actionArgName="Sensor Auto-Calibration" path="Resource/Sensor_Settings/Auto_Calibration" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeSensorSettings-Extended" semanticid="TSC-Media-Sensor-Extended#change-sensor_settings-extended">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="Pre Gap Height" path="Resource/Sensor_Settings/Gap_Size" />
            <UserAssignment actionArgName="Pre Label Length" path="Resource/Sensor_Settings/Black_Line_Size" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROChangeTPHCareSetting" semanticid="TSC-TPH-Care#change-TPH_Care">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROChangePrinterSettings">
            <UserAssignment actionArgName="TPH Care Enable" path="Resource/TPH_Care/TPH_Care_Enable" />
            <UserAssignment actionArgName="Quantity Warning Threshold" path="Resource/TPH_Care/Unhealthy_Dot_Threshold" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="BROPrinterSettings" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROPrintTestPage" semanticid="TSC-General#print-test-page">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROPrintTestPage">
            <UserAssignment actionArgName="Test" path="Resource" defaultValue="Test_Page" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROReboot" semanticid="TSC-General#reboot">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROReboot">
            <UserAssignment actionArgName="Reboot Type" path="Resource" defaultValue="Reboot" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROFactoryReset" semanticid="GenericPrinterState#factory-reset">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROFactoryReset" />
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BRODownloadFile" semanticid="TSC-General#download-file">
      <Blocks>
        <Block id="1">
          <SendMessage id="BRODownloadFile">
            <UserAssignment actionArgName="Download Uri" path="Resource/downloadUri" />
            <UserAssignment actionArgName="Content Type" path="Resource/contentType" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BRODownloadFirmwareFromFileStore" semanticid="Firmware-Download#download-file-filestore" isMetaTransaction="true">
      <Blocks>
        <Block id="1">
          <SendMessage id="BRODownloadFileStoreFile">
            <UserAssignment actionArgName="File" path="Resource/file" />
            <ConstantAssignment path="Resource/contentType" value="Firmware"></ConstantAssignment>
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
      <AlertBlocks>
        <AlertBlock MessageId="BROAlert" timeoutAlertId="flFirmwareUpgradeTimeout.Set" timeout="3600">
          <SuccessCase>
            <Enumeration>
              <Value>flFileDownloadComplete.Set</Value>
              <Value>flFirmwareUpgradeCompleted.Set</Value>
            </Enumeration>
          </SuccessCase>
          <FailureCase>
            <Enumeration>
              <Value>flFileDownloadAbort.Set</Value>
              <Value>flFileDownloadFFileNotFound.Set</Value>
              <Value>flFileDownloadHostNotFound.Set</Value>
              <Value>flFirmwareUpgradeError.Set</Value>
              <Value>flFileDownloadHostNotConnect.Set</Value>
              <Value>flFirmwareUpgradeTimeout.Set</Value>
            </Enumeration>
          </FailureCase>
        </AlertBlock>
      </AlertBlocks>
    </Transaction>

    <Transaction id="BRODownloadFileStoreFile" semanticid="TSC-General#download-filestore-file">
      <Blocks>
        <Block id="1">
          <SendMessage id="BRODownloadFileStoreFile">
            <UserAssignment actionArgName="File" path="Resource/file" />
            <UserAssignment actionArgName="Content Type" path="Resource/contentType" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROTPHOdometer" semanticid="TSC-TPH-Care#Clear_TPH_Odometer">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROTPHCare">
            <UserAssignment actionArgName="Clear TPH Odometer" path="Resource" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROCutterCounter" semanticid="TSC-TPH-Care#Clear_Cutter_Counter">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROTPHCare">
            <UserAssignment actionArgName="Clear Cutter Counter" path="Resource" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROTPHProfileData" semanticid="TSC-TPH-Care#TPH_Profile_Data">
      <Blocks>
        <Block id="1">
          <SendMessage id="BROTPHCare">
            <UserAssignment actionArgName="TPH Profile Data" path="Resource" />
          </SendMessage>
          <Switch>
            <SwitchOnMessage>
              <MessageCase>
                <ReceiveMessage id="Success" />
                <BlockAction>
                  <Terminate success="true" />
                </BlockAction>
              </MessageCase>
              <MessageCase>
                <ReceiveMessage id="Error">
                  <VariableDefinition id="Resource" path="Resource" />
                </ReceiveMessage>
                <BlockAction>
                  <Terminate success="false">
                    <Log variableId="Resource" />
                  </Terminate>
                </BlockAction>
              </MessageCase>
            </SwitchOnMessage>
          </Switch>
        </Block>
      </Blocks>
    </Transaction>

    <Transaction id="BROAlert" semanticid="TSC-Alert#alert">
      <Blocks>
        <Block id="1">
          <ReceiveMessage id="BROAlert" />
          <BlockAction>
            <Terminate success="true" />
          </BlockAction>
        </Block>
      </Blocks>
    </Transaction>


  </Transactions>

  <ProtocolDefinition id="E1138DF8-B607-4463-8D70-347F702FEE14" name="SOTI MQTT">
    <Protocol>
      <Transaction id="InitializeProtocol" hidden="true" />
      <Transaction id="Register" />
      <Transaction id="NewDevices" />
      <Transaction id="SearchNewDevices" instanceIdRequired="true" />
      <Transaction id="Unregister" instanceIdRequired="true" />
      <Transaction id="DeployCertificate" hidden="true" />
      <Transaction id="ActivateCertificate" hidden="true" />
      <Transaction id="CancelCertificateActivation" hidden="true" />
      <Transaction id="RemoteControlRequest" hidden="true" />
    </Protocol>

    <Devices>

      <Device id="mqtt-brother-printer-2to12ips">
        <ApiTypeId id="BRO@@TJ-4520TN@@1" />
        <ApiTypeId id="BRO@@TJ-4522TN@@1" />

        <Transaction id="DisconnectedNotification" />
        <Transaction id="BROCheckIn" />
        <Transaction id="BROChangeDeviceInfoSettings" />
        <Transaction id="BROTPHOdometer" />
        <Transaction id="BROCutterCounter" />
        <Transaction id="BROTPHProfileData" />
        <Transaction id="BROChangeTPHCareSetting" />

        <Transaction id="BROChangeSystemSettings" />
        <Transaction id="BROChangeRibbonThreshold" />
        <Transaction id="BROChangeMenuPasswordSettings" />
        <Transaction id="BROChangeSystemDateTime" />
        <Transaction id="BROChangeSerialPortSettings" />


        <Transaction id="BROChangeWiredLan" />
        <Transaction id="BROChangeDNS" />


        <Transaction id="BROChangeWirelessLanNetwork" />
        <Transaction id="BROChangeWifi" />
        <Transaction id="BROChangeWifiCerts" />
        <Transaction id="BROChangeBluetoothSettings" />

        <Transaction id="BROChangeMediaPrintingSettings" />
        <Transaction id="BROChangePrintModeSettings" />
        <Transaction id="BROChangelabelsettings" />

        <Transaction id="BROChangeMediaOffsets" />
        <Transaction id="BROChangeMediaCodes" />
        <Transaction id="BROChangeSensor" />
        <Transaction id="BROChangeSensorSettings" />
        <Transaction id="BROChangeSensorSettings-Extended" />

        <Transaction id="BROPrintTestPage" />
        <Transaction id="BROReboot" />
        <Transaction id="BROFactoryReset" />
        <Transaction id="BRODownloadFile" />
        <Transaction id="BRODownloadFileStoreFile" />
        <Transaction id="BRODownloadFirmwareFromFileStore" />
        <Transaction id="BROAlert" />
      </Device>

      <Device id="mqtt-brother-printer-2to14ips">
        <ApiTypeId id="BRO@@TJ-4420TN@@1" />
        <ApiTypeId id="BRO@@TJ-4422TN@@1" />

        <Transaction id="DisconnectedNotification" />
        <Transaction id="BROCheckIn" />
        <Transaction id="BROChangeDeviceInfoSettings" />
        <Transaction id="BROTPHOdometer" />
        <Transaction id="BROCutterCounter" />
        <Transaction id="BROTPHProfileData" />
        <Transaction id="BROChangeTPHCareSetting" />

        <Transaction id="BROChangeSystemSettings" />
        <Transaction id="BROChangeRibbonThreshold" />
        <Transaction id="BROChangeMenuPasswordSettings" />
        <Transaction id="BROChangeSystemDateTime" />
        <Transaction id="BROChangeSerialPortSettings" />


        <Transaction id="BROChangeWiredLan" />
        <Transaction id="BROChangeDNS" />


        <Transaction id="BROChangeWirelessLanNetwork" />
        <Transaction id="BROChangeWifi" />
        <Transaction id="BROChangeWifiCerts" />
        <Transaction id="BROChangeBluetoothSettings" />

        <Transaction id="BROChangeMediaPrintingSettings" />
        <Transaction id="BROChangePrintModeSettings" />
        <Transaction id="BROChangelabelsettings" />

        <Transaction id="BROChangeMediaOffsets" />
        <Transaction id="BROChangeMediaCodes" />
        <Transaction id="BROChangeSensor" />
        <Transaction id="BROChangeSensorSettings" />
        <Transaction id="BROChangeSensorSettings-Extended" />

        <Transaction id="BROPrintTestPage" />
        <Transaction id="BROReboot" />
        <Transaction id="BROFactoryReset" />
        <Transaction id="BRODownloadFile" />
        <Transaction id="BRODownloadFileStoreFile" />
        <Transaction id="BRODownloadFirmwareFromFileStore" />
        <Transaction id="BROAlert" />
      </Device>

      <Device id="mqtt-brother-printer-1pt5to6ips">
        <ApiTypeId id="BRO@@TJ-4620TN@@1" />

        <Transaction id="DisconnectedNotification" />
        <Transaction id="BROCheckIn" />
        <Transaction id="BROChangeDeviceInfoSettings" />
        <Transaction id="BROTPHOdometer" />
        <Transaction id="BROCutterCounter" />
        <Transaction id="BROTPHProfileData" />
        <Transaction id="BROChangeTPHCareSetting" />

        <Transaction id="BROChangeSystemSettings" />
        <Transaction id="BROChangeRibbonThreshold" />
        <Transaction id="BROChangeMenuPasswordSettings" />
        <Transaction id="BROChangeSystemDateTime" />
        <Transaction id="BROChangeSerialPortSettings" />


        <Transaction id="BROChangeWiredLan" />
        <Transaction id="BROChangeDNS" />


        <Transaction id="BROChangeWirelessLanNetwork" />
        <Transaction id="BROChangeWifi" />
        <Transaction id="BROChangeWifiCerts" />
        <Transaction id="BROChangeBluetoothSettings" />

        <Transaction id="BROChangeMediaPrintingSettings" />
        <Transaction id="BROChangePrintModeSettings" />
        <Transaction id="BROChangelabelsettings" />

        <Transaction id="BROChangeMediaOffsets" />
        <Transaction id="BROChangeMediaCodes" />
        <Transaction id="BROChangeSensor" />
        <Transaction id="BROChangeSensorSettings" />
        <Transaction id="BROChangeSensorSettings-Extended" />

        <Transaction id="BROPrintTestPage" />
        <Transaction id="BROReboot" />
        <Transaction id="BROFactoryReset" />
        <Transaction id="BRODownloadFile" />
        <Transaction id="BRODownloadFileStoreFile" />
        <Transaction id="BRODownloadFirmwareFromFileStore" />
        <Transaction id="BROAlert" />
      </Device>
      <Device id="mqtt-brother-printer-tj6000">
        <ApiTypeId id="BRO@@TJ-6421TN@@1" />
        <ApiTypeId id="BRO@@TJ-6521TN@@1" />

        <Transaction id="DisconnectedNotification" />
        <Transaction id="BROCheckIn" />
        <Transaction id="BROChangeDeviceInfoSettings" />
        <Transaction id="BROTPHOdometer" />
        <Transaction id="BROCutterCounter" />
        <Transaction id="BROTPHProfileData" />
        <Transaction id="BROChangeTPHCareSetting" />

        <Transaction id="BROChangeSystemSettings" />
        <Transaction id="BROChangeRibbonThreshold" />
        <Transaction id="BROChangeMenuPasswordSettings" />
        <Transaction id="BROChangeSystemDateTime" />
        <Transaction id="BROChangeSerialPortSettings" />


        <Transaction id="BROChangeWiredLan" />
        <Transaction id="BROChangeDNS" />


        <Transaction id="BROChangeWirelessLanNetwork" />
        <Transaction id="BROChangeWifi" />
        <Transaction id="BROChangeWifiCerts" />
        <Transaction id="BROChangeBluetoothSettings" />

        <Transaction id="BROChangeMediaPrintingSettings" />
        <Transaction id="BROChangePrintModeSettings" />
        <Transaction id="BROChangelabelsettings" />

        <Transaction id="BROChangeMediaOffsets" />
        <Transaction id="BROChangeMediaCodes" />
        <Transaction id="BROChangeSensor" />
        <Transaction id="BROChangeSensorSettings" />
        <Transaction id="BROChangeSensorSettings-Extended" />

        <Transaction id="BROPrintTestPage" />
        <Transaction id="BROReboot" />
        <Transaction id="BROFactoryReset" />
        <Transaction id="BRODownloadFile" />
        <Transaction id="BRODownloadFileStoreFile" />
        <Transaction id="BRODownloadFirmwareFromFileStore" />
        <Transaction id="BROAlert" />
      </Device>
    </Devices>
  </ProtocolDefinition>
</Domain>