• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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