Я пытаюсь преобразовать этот быстрый фрагмент в c #, но я немного запутался.По сути, мне нужна эта функция для получения данных ранжирования от маяков, как указано здесь: https://github.com/google/eddystone/tree/master/eddystone-uid
func getTxPower( frameData: NSData) -> Int
{
let count = frameData.length
var frameBytes = [UInt8](repeating: 0, count: count)
frameData.getBytes(&frameBytes, length: count)
let txPower = Int(Int8(bitPattern:frameBytes[1]))
return txPower
}
Я получаю NSData и преобразую его в массив UInt8.Мне просто нужно получить элемент на второй позиции и преобразовать его в подписанное целое число.
Это код на C #, который я пробовал:
int getTxPower(NSData frameData)
{
var count = frameData.Length;
byte[] frameBytes = new byte[Convert.ToInt32(count)];
Marshal.Copy(frameData.Bytes, frameBytes,0,Convert.ToInt32(count));
int txPower = frameBytes[1];
return txPower;
}
Я ожидал получить и отрицательное значение, потому чтоКак написано в ссылке, TxPower имеет диапазон значений от -100 дБм до +20 дБм при разрешении 1 дБм.
Спасибо тем, кто мне поможет.