1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 #ifndef I_NFC_NCI_H 16 #define I_NFC_NCI_H 17 18 #include "ndef_utils.h" 19 #include "nfa_api.h" 20 #include "nfa_ce_api.h" 21 #include "nfa_ee_api.h" 22 #include "nfa_hci_api.h" 23 #include "nfa_rw_api.h" 24 #include "nfc_hal_api.h" 25 26 namespace OHOS { 27 namespace NFC { 28 namespace NCI { 29 class INfcNci { 30 public: ~INfcNci()31 virtual ~INfcNci() {} 32 virtual void NfaInit(tHAL_NFC_ENTRY* halEntryTbl) = 0; 33 virtual tNFA_STATUS NfaEnable(tNFA_DM_CBACK* dmCback, tNFA_CONN_CBACK* connCback) = 0; 34 virtual tNFA_STATUS NfaDisable(bool graceful) = 0; 35 virtual tNFA_STATUS NfaEnablePolling(tNFA_TECHNOLOGY_MASK pollMask) = 0; 36 virtual tNFA_STATUS NfaDisablePolling(void) = 0; 37 virtual tNFA_STATUS NfaEnableListening(void) = 0; 38 virtual tNFA_STATUS NfaDisableListening(void) = 0; 39 virtual tNFA_STATUS NfaStartRfDiscovery(void) = 0; 40 virtual tNFA_STATUS NfaStopRfDiscovery(void) = 0; 41 virtual tNFA_STATUS NfaSetRfDiscoveryDuration(uint16_t discoveryPeriodMs) = 0; 42 virtual tNFA_STATUS NfaSelect(uint8_t rfDiscId, tNFA_NFC_PROTOCOL protocol, tNFA_INTF_TYPE rfInterface) = 0; 43 virtual tNFA_STATUS NfaDeactivate(bool sleepMode) = 0; 44 virtual tNFA_STATUS NfaSendRawFrame(uint8_t* rawData, uint16_t dataLen, uint16_t presenceCheckStartDelay) = 0; 45 virtual tNFA_STATUS NfaRegisterNDefTypeHandler(bool handleWholeMessage, 46 tNFA_TNF tnf, 47 uint8_t* typeName, 48 uint8_t typeNameLen, 49 tNFA_NDEF_CBACK* ndefCback) = 0; 50 virtual tNFA_STATUS NfaRwDetectNdef(void) = 0; 51 virtual tNFA_STATUS NfaRwReadNdef(void) = 0; 52 virtual tNFA_STATUS NfaRwWriteNdef(uint8_t* data, uint32_t len) = 0; 53 virtual tNFA_STATUS NfaRwPresenceCheck(tNFA_RW_PRES_CHK_OPTION option) = 0; 54 virtual tNFA_STATUS NfaRwFormatTag(void) = 0; 55 virtual tNFA_STATUS NfaRwSetTagReadOnly(bool hardLock) = 0; 56 virtual void NdefMsgInit(uint8_t* msg, uint32_t maxSize, uint32_t* curSize) = 0; 57 virtual tNDEF_STATUS NdefMsgAddRec(uint8_t* msg, 58 uint32_t maxSize, 59 uint32_t* curSize, 60 uint8_t tnf, 61 uint8_t* type, 62 uint8_t typeLen, 63 uint8_t* id, 64 uint8_t idLen, 65 uint8_t* payload, 66 uint32_t payloadLen) = 0; 67 virtual uint8_t NfcGetNciVersion() = 0; 68 virtual void NfcAdaptationInitialize() = 0; 69 virtual void NfcAdaptationFinalize() = 0; 70 virtual tHAL_NFC_ENTRY* NfcAdaptationGetHalEntryFuncs() = 0; 71 virtual void NfcAdaptationDownloadFirmware() = 0; 72 virtual void NfcAdaptationDump(int fd) = 0; 73 virtual void NfcAdaptationFactoryReset() = 0; 74 virtual void NfcAdaptationDeviceShutdown() = 0; 75 virtual tNFA_STATUS NfcHciRegister(char* appName, tNFA_HCI_CBACK* cback, bool sendConnEvts) = 0; 76 virtual tNFA_STATUS NfcEeGetInfo(uint8_t* numNfcee, tNFA_EE_INFO* info) = 0; 77 virtual tNFA_STATUS NfcEeRegister(tNFA_EE_CBACK* cback) = 0; 78 virtual tNFA_STATUS NfcEeDeregister(tNFA_EE_CBACK* cback) = 0; 79 virtual tNFA_STATUS NfcEeSetDefaultTechRouting(tNFA_HANDLE eeHandle, 80 tNFA_TECHNOLOGY_MASK technologiesSwitchOn, 81 tNFA_TECHNOLOGY_MASK technologiesSwitchOff, 82 tNFA_TECHNOLOGY_MASK technologiesBatteryOff, 83 tNFA_TECHNOLOGY_MASK technologiesScreenLock, 84 tNFA_TECHNOLOGY_MASK technologiesScreenOff, 85 tNFA_TECHNOLOGY_MASK technologiesScreenOffLock) = 0; 86 virtual tNFA_STATUS NfcEeClearDefaultTechRouting(tNFA_HANDLE eeHandle, tNFA_TECHNOLOGY_MASK clearTechnology) = 0; 87 virtual tNFA_STATUS NfcEeSetDefaultProtoRouting(tNFA_HANDLE eeHandle, 88 tNFA_PROTOCOL_MASK protocolsSwitchOn, 89 tNFA_PROTOCOL_MASK protocolsSwitchOff, 90 tNFA_PROTOCOL_MASK protocolsBatteryOff, 91 tNFA_PROTOCOL_MASK technologiesScreenLock, 92 tNFA_PROTOCOL_MASK technologiesScreenOff, 93 tNFA_PROTOCOL_MASK technologiesScreenOffLock) = 0; 94 virtual tNFA_STATUS NfcEeClearDefaultProtoRouting(tNFA_HANDLE eeHandle, tNFA_PROTOCOL_MASK clearProtocol) = 0; 95 virtual tNFA_STATUS NfcEeAddAidRouting( 96 tNFA_HANDLE eeHandle, uint8_t aidLen, uint8_t* aid, tNFA_EE_PWR_STATE powerState, uint8_t aidInfo) = 0; 97 virtual tNFA_STATUS NfcEeRemoveAidRouting(uint8_t aidLen, uint8_t* aid) = 0; 98 virtual tNFA_STATUS NfcEeUpdateNow(void) = 0; 99 virtual tNFA_STATUS NfcEeModeSet(tNFA_HANDLE eeHandle, tNFA_EE_MD mode) = 0; 100 virtual uint16_t NfcGetAidTableSize() = 0; 101 virtual tNFA_STATUS NfcCeSetIsoDepListenTech(tNFA_TECHNOLOGY_MASK techMask) = 0; 102 virtual tNFA_STATUS NfcCeRegisterAidOnDH(uint8_t aid[NFC_MAX_AID_LEN], 103 uint8_t aidLen, 104 tNFA_CONN_CBACK* connCback) = 0; 105 virtual tNFA_STATUS NfcSetPowerSubStateForScreenState(uint8_t screenState) = 0; 106 virtual tNFA_STATUS NfcSetConfig(tNFA_PMID paramId, uint8_t length, uint8_t* data) = 0; 107 }; 108 } // namespace NCI 109 } // namespace NFC 110 } // namespace OHOS 111 #endif /* I_NFC_NCI_H */ 112