public bool GetATT_WriteRsp(HCIReplies hciReplies, ref bool dataFound) { dataFound = false; bool flag = rspHdlrsUtils.CheckValidResponse(hciReplies); if (flag) { HCIReplies.HCI_LE_ExtEvent hciLeExtEvent = hciReplies.HciLeExtEvent; HCIReplies.HCI_LE_ExtEvent.ATT_WriteRsp attWriteRsp = hciLeExtEvent.AttWriteRsp; HCIReplies.LE_ExtEventHeader leExtEventHeader = hciLeExtEvent.Header; if (attWriteRsp != null && hciReplies.ObjTag != null) { dataFound = true; switch (leExtEventHeader.EventStatus) { case 0: case 23: SendRspCallback(hciReplies, true); break; default: flag = rspHdlrsUtils.UnexpectedRspEventStatus(hciReplies, "AttWriteRsp"); break; } } } if (!flag && dataFound) { SendRspCallback(hciReplies, false); } return(flag); }
public bool GetATT_ErrorRsp(HCIReplies hciReplies, ref bool dataFound) { dataFound = false; bool flag; if (flag = rspHdlrsUtils.CheckValidResponse(hciReplies)) { HCIReplies.HCI_LE_ExtEvent hciLeExtEvent = hciReplies.HciLeExtEvent; HCIReplies.HCI_LE_ExtEvent.ATT_ErrorRsp attErrorRsp = hciLeExtEvent.AttErrorRsp; HCIReplies.LE_ExtEventHeader leExtEventHeader = hciLeExtEvent.Header; if (attErrorRsp != null) { dataFound = true; if (leExtEventHeader.EventStatus != 0) { flag = rspHdlrsUtils.UnexpectedRspEventStatus(hciReplies, "AttErrorRsp"); } else { SendRspCallback(hciReplies, true); } } } if (!flag && dataFound) { SendRspCallback(hciReplies, false); } return(flag); }
public bool GetATT_PrepareWriteRsp(HCIReplies hciReplies, ref bool dataFound) { dataFound = false; bool success; if (success = rspHdlrsUtils.CheckValidResponse(hciReplies)) { HCIReplies.HCI_LE_ExtEvent hciLeExtEvent = hciReplies.HciLeExtEvent; HCIReplies.HCI_LE_ExtEvent.ATT_PrepareWriteRsp attPrepareWriteRsp = hciLeExtEvent.AttPrepareWriteRsp; HCIReplies.LE_ExtEventHeader leExtEventHeader = hciLeExtEvent.Header; if (attPrepareWriteRsp != null) { dataFound = true; switch (leExtEventHeader.EventStatus) { case (byte)0: case (byte)26: break; case (byte)23: SendRspCallback(hciReplies, true); break; default: success = rspHdlrsUtils.UnexpectedRspEventStatus(hciReplies, "AttPrepareWriteRsp"); break; } } } if (!success && dataFound) { SendRspCallback(hciReplies, false); } return(success); }
public bool GetExtensionCommandStatus(HCIReplies hciReplies, ref bool dataFound) { dataFound = false; bool flag = rspHdlrsUtils.CheckValidResponse(hciReplies); if (flag) { HCIReplies.HCI_LE_ExtEvent hciLeExtEvent = hciReplies.HciLeExtEvent; HCIReplies.HCI_LE_ExtEvent.GAP_HCI_ExtentionCommandStatus extentionCommandStatus = hciLeExtEvent.GapHciCmdStat; HCIReplies.LE_ExtEventHeader leExtEventHeader = hciLeExtEvent.Header; if (extentionCommandStatus != null) { dataFound = true; if (leExtEventHeader.EventStatus == 0) { dataFound = true; flag = true; } else { ushort opCode = extentionCommandStatus.CmdOpCode; if (opCode <= 64908U) { #region switch (opCode) { case 64769: case 64772: case 64773: case 64774: case 64775: case 64776: case 64777: case 64778: case 64779: case 64780: case 64781: case 64784: case 64785: case 64786: case 64787: case 64790: case 64791: case 64792: case 64793: case 64900: case 64902: case 64904: case 64906: case 64908: break; default: goto label_8; } #endregion } else { #region switch (opCode) { case 64912: case 64914: case 64918: case 64946: break; default: goto label_8; } #endregion } SendRspCallback(hciReplies, true); goto label_9; label_8: flag = rspHdlrsUtils.UnexpectedRspEventStatus(hciReplies, "ExtCmdStatus"); } } } label_9: if (!flag && dataFound) { SendRspCallback(hciReplies, false); } return(flag); }