handleBingPhoneWithData function

void handleBingPhoneWithData(
  1. List<int> value
)

处理 手机请求绑定锁 返回的数据

Implementation

void handleBingPhoneWithData(List<int> value) {
  String cmdName = '手机请求绑定锁';

  int len = value[2];
  int ERROR_Code = value[3 + len - 1];
  if (value.length == 20 && //返回的长度都是20
          len == 10 && // 有效内容的长度必须是10
          (ERROR_Code == 0 ||
              ERROR_Code == 11) // 错误码必须是0x0b(重复绑定),或者是 0x00表示绑定成功
      ) {
    //获取mac地址数组
    List<int> macList = value.sublist(3, 3 + 6);
    // List<String> macListStr = intList2str(macList);
    //保存
    mySave(StroeKey.key_mac_address, jsonEncode(macList));
    //获取sno地址数组
    List<int> snoList = value.sublist(9, 9 + 3);
    //保存
    mySave(StroeKey.key_sno, jsonEncode(snoList));
    print('$cmdName, 成功');

    ZygBluetoothTool.cmdMsgHandle('绑定成功', {'cmd': cmdName, 'snoList': snoList});
  } else if (len == 1) {
    //如果有效内容的长度是1,那么value[3]就是错误码
    //有效内容的长度是1
    if (ERROR_Code == 0) {
      //错误码为0: QRCODE验证通过后,锁会嘀一声

      //错误码为0,如果有效内容的长度是1,那么value[3]就是错误码
      //听到锁嘀一声之后,请在锁的背部按下确认键
      print('请在此处弹个提示框:请在锁的背部按下确认键');
      ZygBluetoothTool.cmdMsgHandle('请在锁的背部按下确认键', {'cmd': cmdName});
    } else if (ERROR_Code == 4) {
      //错误码为0x04,表示超时:表示没有在20秒内按下确认键,超时,锁端已主动断开连接,如果想绑定,需要重新连接。
      print('请在此处弹个提示框:没有在20秒内按下确认键,超时');

      ZygBluetoothTool.cmdMsgHandle('没有在20秒内按下确认键,超时,设备自动断开连接',
          {'cmd': cmdName, 'msg': '没有在20秒内按下确认键,超时', 'ERR_Code': ERROR_Code});
    } else if (ERROR_Code == 7) {
      //错误码为0x07,表示:QRCODE错误。锁端会主动断开蓝牙连接
      print('请在此处弹个提示框:QRCODE错误');

      ZygBluetoothTool.cmdMsgHandle('QRCODE错误,请检查qrcode,然后重新输入', {
        'cmd': cmdName,
        'msg': 'QRCODE错误,请检查qrcode,然后重新输入',
        'ERR_Code': ERROR_Code
      });
    } else if (ERROR_Code == 9) {
      //错误码为0x09  表示容量已满
      print('请在此处弹个提示框:锁的容量已满');

      ZygBluetoothTool.cmdMsgHandle('绑定失败:锁的容量已满',
          {'cmd': cmdName, 'msg': '锁的容量已满', 'ERR_Code': ERROR_Code});
    }
  }
}