/
DiscoveryViewController.swift
96 lines (69 loc) · 2.97 KB
/
DiscoveryViewController.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//
// DiscoveryViewController.swift
// StarXpandSDK
//
// Copyright © 2021 Star Micronics. All rights reserved.
//
import UIKit
import StarIO10
class DiscoveryViewController: UIViewController, StarDeviceDiscoveryManagerDelegate {
@IBOutlet weak var lanSwitch: UISwitch!
@IBOutlet weak var bluetoothSwitch: UISwitch!
@IBOutlet weak var bleSwitch: UISwitch!
@IBOutlet weak var usbSwitch: UISwitch!
@IBOutlet weak var discoveryButton: UIButton!
@IBOutlet weak var resultTextView: UITextView!
private var manager: StarDeviceDiscoveryManager? = nil
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func touchUpDiscoveryButton(_ sender: Any) {
resultTextView.text = ""
manager?.stopDiscovery()
var interfaceTypeArray : [InterfaceType] = []
if lanSwitch.isOn {
interfaceTypeArray.append(InterfaceType.lan)
}
if bluetoothSwitch.isOn {
interfaceTypeArray.append(InterfaceType.bluetooth)
}
if bleSwitch.isOn {
interfaceTypeArray.append(InterfaceType.bluetoothLE)
}
if usbSwitch.isOn {
interfaceTypeArray.append(InterfaceType.usb)
}
do {
try manager = StarDeviceDiscoveryManagerFactory.create(interfaceTypes: interfaceTypeArray)
manager?.discoveryTime = 10000
manager?.delegate = self
try manager?.startDiscovery()
} catch let error {
print("Error: \(error)")
}
}
func manager(_ manager: StarDeviceDiscoveryManager, didFind printer: StarPrinter) {
DispatchQueue.main.async {
switch printer.connectionSettings.interfaceType {
case .lan:
let findPrinter = "LAN: " + printer.connectionSettings.identifier
self.resultTextView.text = self.resultTextView.text + "\n" + findPrinter
case .bluetooth:
let findPrinter = "Bluetooth: " + printer.connectionSettings.identifier
self.resultTextView.text = self.resultTextView.text + "\n" + findPrinter
case .bluetoothLE:
let findPrinter = "BluetoothLE: " + printer.connectionSettings.identifier
self.resultTextView.text = self.resultTextView.text + "\n" + findPrinter
case .usb:
let findPrinter = "USB: " + printer.connectionSettings.identifier
self.resultTextView.text = self.resultTextView.text + "\n" + findPrinter
default:
break
}
}
print("Found printer: \(printer.connectionSettings.identifier).")
}
func managerDidFinishDiscovery(_ manager: StarDeviceDiscoveryManager) {
print("Discovery finished.")
}
}