Я читаю usb-rawHID-устройство с
var read_byteArray = [UInt8](repeating: 0x00, count: BUFFER_SIZE)
var result = rawhid_recv(0, &read_byteArray, Int32(BUFFER_SIZE), 50)
Я могу прочитать read_byteArray с
for i in 0...16
{
print(" \(read_byteArray[i])", terminator: "")
}
+++ new read_byteArray в таймере: 0 969 0 0, ...
Затем я хочу распространить данные с уведомлением.
let nc = NotificationCenter.default
nc.post(name:Notification.Name(rawValue:"newdata"),
object: nil,
userInfo: ["data":read_byteArray])
Я регистрирую уведомление и читаю его с
@objc func newDataAktion(_ notification:Notification)
{
print("new Data")
let data = notification.userInfo?["data"]
print("data: \(String(describing: data)) \n") // data: Optional([0, 9, 51, 0,....
if let d = notification.userInfo!["data"]
{
print("d: \(d)\n") // d: [0, 9, 56, 0, 0,...
let t = type(of:d)
print("typ: \(t)\n") // typ: Array<UInt8>
}
}
Данные имеют тип Array, но мои попытки прочитать элемент этого массива с помощью
print("element: \(d[1])\n")
дают мне ошибку
Тип 'Any' не имеет индексаmembers
Как получить элементы UInt8 из данных?