Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用蓝牙LE(BLE迷你模块)在OSX上读取Arduino浮点值_Ios_Macos_Bluetooth Lowenergy - Fatal编程技术网

Ios 如何使用蓝牙LE(BLE迷你模块)在OSX上读取Arduino浮点值

Ios 如何使用蓝牙LE(BLE迷你模块)在OSX上读取Arduino浮点值,ios,macos,bluetooth-lowenergy,Ios,Macos,Bluetooth Lowenergy,红熊实验室BLE迷你模块()的SimpleControl示例可将模拟读数(如温度传感器)从Arduino发送到iOS/OSX,并带有以下Arduino代码: uint16_t value = analogRead(ANALOG_IN_PIN) BLEMini_write(0x0B); BLEMini_write(value >> 8); BLEMini_write(value); 但是,我尝试将原始模拟读数(例如162)转换为实际温度读数(例如摄氏度/27.15),并将转换传输到i

红熊实验室BLE迷你模块()的SimpleControl示例可将模拟读数(如温度传感器)从Arduino发送到iOS/OSX,并带有以下Arduino代码:

uint16_t value = analogRead(ANALOG_IN_PIN)
BLEMini_write(0x0B);
BLEMini_write(value >> 8);
BLEMini_write(value);
但是,我尝试将原始模拟读数(例如162)转换为实际温度读数(例如摄氏度/27.15),并将转换传输到iOS/OSX,但在OSX上我只读取奇怪的值(例如13414)。我使用的Arduino代码如下:

  int reading = analogRead(ANALOG_IN_PIN);
  float voltage = reading * 5.0;
  float temp = (voltage - 0.5) * 100;
  int tempINT = temp;
  uint16_t value = tempINT;
  BLEMini_write(0x0B);
  BLEMini_write(value >> 8);
  BLEMini_write(value);
-(void) bleDidReceiveData:(unsigned char *)data length:(int)length
{
    NSLog(@"Length: %d", length);

    // parse data, all commands are in 3-byte
        for (int i = 0; i < length; i+=3)
    {
       NSLog(@"0x%02X, 0x%02X, 0x%02X", data[i], data[i+1], data[i+2]);

        if (data[i] == 0x0A) // Digital In data
        {
            if (data[i+1] == 0x01)
                lblDigitalIn.stringValue = @"HIGH";
            else
                lblDigitalIn.stringValue = @"LOW";
        }
        else if (data[i] == 0x0B) // Analog In data
        {
            UInt16 Value;

            Value = data[i+2] | data[i+1] << 8;
            lblAnalogIn.stringValue = [NSString stringWithFormat:@"%d", Value];
        }
    }
}
OSX应用程序的代码部分如下所示:

  int reading = analogRead(ANALOG_IN_PIN);
  float voltage = reading * 5.0;
  float temp = (voltage - 0.5) * 100;
  int tempINT = temp;
  uint16_t value = tempINT;
  BLEMini_write(0x0B);
  BLEMini_write(value >> 8);
  BLEMini_write(value);
-(void) bleDidReceiveData:(unsigned char *)data length:(int)length
{
    NSLog(@"Length: %d", length);

    // parse data, all commands are in 3-byte
        for (int i = 0; i < length; i+=3)
    {
       NSLog(@"0x%02X, 0x%02X, 0x%02X", data[i], data[i+1], data[i+2]);

        if (data[i] == 0x0A) // Digital In data
        {
            if (data[i+1] == 0x01)
                lblDigitalIn.stringValue = @"HIGH";
            else
                lblDigitalIn.stringValue = @"LOW";
        }
        else if (data[i] == 0x0B) // Analog In data
        {
            UInt16 Value;

            Value = data[i+2] | data[i+1] << 8;
            lblAnalogIn.stringValue = [NSString stringWithFormat:@"%d", Value];
        }
    }
}
-(void)bledireceivedata:(unsigned char*)数据长度:(int)长度
{
NSLog(@“长度:%d”,长度);
//解析数据时,所有命令均为3字节
对于(int i=0;iValue=data[i+2]| data[i+1]所有特征数据都是字节。一旦特征数据被读取,则由中央应用程序将数据转换为适当的格式(如外设制造商所述,或某些特征还包含格式描述符,该描述符将描述数据的格式)