Skip to content

Instantly share code, notes, and snippets.

@wesleybliss
Created December 2, 2019 20:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wesleybliss/2343ce16d2c4c864f9eaae20bc3d9eb1 to your computer and use it in GitHub Desktop.
Save wesleybliss/2343ce16d2c4c864f9eaae20bc3d9eb1 to your computer and use it in GitHub Desktop.
Diagnosing some Brother printer SDK search weirdness
fun publicGetUniqueDevSet() : Vector<DevSet?>? {
val finder = DeviceFinder()
val uniqueDevSet: Vector<DevSet?> = Vector()
val devSets = if (Printer.getUserPrinterInfo() == null) {
finder.discoverDevice(false)
} else {
finder.discoverDevice(Printer.getUserPrinterInfo().enabledTethering)
}
// @todo - for debug
if (devSets.size < 1000) return devSets
for (i in devSets.indices) {
val devSet = devSets[i] as DevSet
var isExist = false
for (j in uniqueDevSet.indices) {
if (uniqueDevSet[j]!!.ip == devSet.ip) {
isExist = true
break
}
}
if (!isExist) {
uniqueDevSet.add(devSet)
}
}
return uniqueDevSet
}
fun printerWtf(modelName: String) : List<NetPrinter> {
val netPrinterList = mutableListOf<NetPrinter?>()
val uniqueDevSet = publicGetUniqueDevSet()?.filterNotNull() ?: listOf()
val finder = DeviceFinder()
Plank.printer("uniqueDevSet = $uniqueDevSet")
if (uniqueDevSet.isEmpty()) return netPrinterList.filterNotNull().toList()
for (i in uniqueDevSet.indices) {
val devSet = uniqueDevSet[i]
val ipAddress = devSet.ip
val model = finder.getMibValue(ipAddress, "1.3.6.1.2.1.25.3.2.1.3.1")
val eModelName = model.trim { it <= ' ' }
//if (eModelName.endsWith(modelName)) {
val netPrinter = NetPrinter()
netPrinter.modelName = model
netPrinter.ipAddress = ipAddress
netPrinter.serNo = finder.getMibValue(ipAddress, "1.3.6.1.4.1.2435.2.3.9.4.2.1.5.5.1.0")
netPrinter.nodeName = finder.getMibValue(ipAddress, "1.3.6.1.4.1.1240.2.3.4.1.1.0")
netPrinter.macAddress = finder.getMibValue(ipAddress, "1.3.6.1.2.1.2.2.1.6.1")
netPrinter.location = finder.getMibValue(ipAddress, "1.3.6.1.2.1.1.6.0")
netPrinterList.add(netPrinter)
//}
}
return netPrinterList.filterNotNull().toList()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment