• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 
16 #ifndef HDF_RIL_CALLBACK_COMMON_H
17 #define HDF_RIL_CALLBACK_COMMON_H
18 
19 #include "cmath"
20 #include "condition_variable"
21 #include "cstdio"
22 #include "hdf_base.h"
23 #include "hdf_log.h"
24 #include "map"
25 #include "mutex"
26 #include "securec.h"
27 #include "cstdlib"
28 #include "unistd.h"
29 #include "v1_3/iril.h"
30 #include "gtest/gtest.h"
31 
32 #include <ctime>
33 #include <random>
34 
35 #define RAND_MAXVALUE 10000000000
36 
37 using OHOS::HDI::Ril::V1_2::RilRadioResponseInfo;
38 using OHOS::HDI::Ril::V1_2::RingbackVoice;
39 using OHOS::HDI::Ril::V1_2::SrvccStatus;
40 using OHOS::HDI::Ril::V1_2::UssdNoticeInfo;
41 using OHOS::HDI::Ril::V1_2::SsNoticeInfo;
42 using OHOS::HDI::Ril::V1_2::EmergencyInfoList;
43 using OHOS::HDI::Ril::V1_2::CallInfoList;
44 using OHOS::HDI::Ril::V1_2::GetClipResult;
45 using OHOS::HDI::Ril::V1_2::CallWaitResult;
46 using OHOS::HDI::Ril::V1_2::CallForwardQueryInfoList;
47 using OHOS::HDI::Ril::V1_2::CallRestrictionResult;
48 using OHOS::HDI::Ril::V1_2::GetClirResult;
49 using OHOS::HDI::Ril::V1_2::DataCallResultList;
50 using OHOS::HDI::Ril::V1_2::DataLinkCapability;
51 using OHOS::HDI::Ril::V1_2::SetupDataCallResultInfo;
52 using OHOS::HDI::Ril::V1_2::DataLinkBandwidthInfo;
53 using OHOS::HDI::Ril::V1_2::VoiceRadioTechnology;
54 using OHOS::HDI::Ril::V1_2::RadioProtocol;
55 using OHOS::HDI::Ril::V1_2::IccIoResultInfo;
56 using OHOS::HDI::Ril::V1_2::CardStatusInfo;
57 using OHOS::HDI::Ril::V1_2::LockStatusResp;
58 using OHOS::HDI::Ril::V1_2::OpenLogicalChannelResponse;
59 using OHOS::HDI::Ril::V1_2::CsRegStatusInfo;
60 using OHOS::HDI::Ril::V1_2::PsRegStatusInfo;
61 using OHOS::HDI::Ril::V1_2::Rssi;
62 using OHOS::HDI::Ril::V1_2::ChannelConfigInfoList;
63 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo_1_1;
64 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo;
65 using OHOS::HDI::Ril::V1_2::PreferredNetworkTypeInfo;
66 using OHOS::HDI::Ril::V1_2::OperatorInfo;
67 using OHOS::HDI::Ril::V1_2::AvailableNetworkList;
68 using OHOS::HDI::Ril::V1_2::SetNetworkModeInfo;
69 using OHOS::HDI::Ril::V1_2::CellListNearbyInfo;
70 using OHOS::HDI::Ril::V1_2::NrCellSsbIds;
71 using OHOS::HDI::Ril::V1_2::SmsMessageInfo;
72 using OHOS::HDI::Ril::V1_2::CBConfigReportInfo;
73 using OHOS::HDI::Ril::V1_2::SendSmsResultInfo;
74 using OHOS::HDI::Ril::V1_2::ServiceCenterAddress;
75 using OHOS::HDI::Ril::V1_2::CBConfigInfo;
76 using OHOS::HDI::Ril::V1_2::CdmaCBConfigInfo;
77 using OHOS::HDI::Ril::V1_2::PhysicalChannelConfig;
78 using OHOS::HDI::Ril::V1_2::CellListCurrentInfo_1_2;
79 using OHOS::HDI::Ril::V1_2::CellListNearbyInfo_1_2;
80 using OHOS::HDI::Ril::V1_3::SimCardStatusInfo;
81 
82 enum class HdiId {
83     HREQ_NONE = -1,
84     HREQ_CALL_BASE = 0,
85     HREQ_CALL_GET_CALL_LIST,
86     HREQ_CALL_DIAL,
87     HREQ_CALL_HANGUP,
88     HREQ_CALL_REJECT,
89     HREQ_CALL_ANSWER,
90     HREQ_CALL_HOLD_CALL,
91     HREQ_CALL_UNHOLD_CALL,
92     HREQ_CALL_SWITCH_CALL,
93     HREQ_CALL_COMBINE_CONFERENCE,
94     HREQ_CALL_SEPARATE_CONFERENCE,
95     HREQ_CALL_CALL_SUPPLEMENT,
96     HREQ_CALL_SEND_DTMF,
97     HREQ_CALL_START_DTMF,
98     HREQ_CALL_STOP_DTMF,
99     HREQ_CALL_SET_CLIP,
100     HREQ_CALL_GET_CLIP,
101     HREQ_CALL_GET_CALL_WAITING,
102     HREQ_CALL_SET_CALL_WAITING,
103     HREQ_CALL_GET_CALL_RESTRICTION,
104     HREQ_CALL_SET_CALL_RESTRICTION,
105     HREQ_CALL_GET_CALL_TRANSFER_INFO,
106     HREQ_CALL_SET_CALL_TRANSFER_INFO,
107     HREQ_CALL_GET_CLIR,
108     HREQ_CALL_SET_CLIR,
109     HREQ_CALL_GET_CALL_PREFERENCE,
110     HREQ_CALL_SET_CALL_PREFERENCE,
111     HREQ_CALL_SET_USSD,
112     HREQ_CALL_GET_USSD,
113     HREQ_CALL_SET_MUTE,
114     HREQ_CALL_GET_MUTE,
115     HREQ_CALL_GET_EMERGENCY_LIST,
116     HREQ_CALL_SET_EMERGENCY_LIST,
117     HREQ_CALL_GET_FAIL_REASON,
118     HREQ_CALL_SET_BARRING_PASSWORD,
119     HREQ_CALL_CLOSE_UNFINISHED_USSD,
120     HREQ_SET_VONR_SWITCH,
121 
122     HREQ_SMS_BASE = 100,
123     HREQ_SMS_SEND_GSM_SMS,
124     HREQ_SMS_SEND_CDMA_SMS,
125     HREQ_SMS_ADD_SIM_MESSAGE,
126     HREQ_SMS_DEL_SIM_MESSAGE,
127     HREQ_SMS_UPDATE_SIM_MESSAGE,
128     HREQ_SMS_SEND_SMS_MORE_MODE,
129     HREQ_SMS_SEND_SMS_ACK,
130     HREQ_SMS_SET_SMSC_ADDR,
131     HREQ_SMS_GET_SMSC_ADDR,
132     HREQ_SMS_SET_CB_CONFIG,
133     HREQ_SMS_GET_CB_CONFIG,
134     HREQ_SMS_GET_CDMA_CB_CONFIG,
135     HREQ_SMS_SET_CDMA_CB_CONFIG,
136     HREQ_SMS_ADD_CDMA_SIM_MESSAGE,
137     HREQ_SMS_DEL_CDMA_SIM_MESSAGE,
138     HREQ_SMS_UPDATE_CDMA_SIM_MESSAGE,
139 
140     HREQ_SIM_BASE = 200,
141     HREQ_SIM_GET_SIM_STATUS,
142     HREQ_SIM_GET_IMSI,
143     HREQ_SIM_GET_SIM_IO,
144     HREQ_SIM_GET_SIM_LOCK_STATUS,
145     HREQ_SIM_SET_SIM_LOCK,
146     HREQ_SIM_CHANGE_SIM_PASSWORD,
147     HREQ_SIM_UNLOCK_PIN,
148     HREQ_SIM_UNLOCK_PUK,
149     HREQ_SIM_GET_SIM_PIN_INPUT_TIMES,
150     HREQ_SIM_UNLOCK_PIN2,
151     HREQ_SIM_UNLOCK_PUK2,
152     HREQ_SIM_GET_SIM_PIN2_INPUT_TIMES,
153     HREQ_SIM_SET_ACTIVE_SIM,
154     HREQ_SIM_RADIO_PROTOCOL,
155     HREQ_SIM_STK_SEND_TERMINAL_RESPONSE,
156     HREQ_SIM_STK_SEND_ENVELOPE,
157     HREQ_SIM_STK_SEND_CALL_SETUP_REQUEST_RESULT,
158     HREQ_SIM_STK_IS_READY,
159     HREQ_SIM_OPEN_LOGICAL_CHANNEL,
160     HREQ_SIM_CLOSE_LOGICAL_CHANNEL,
161     HREQ_SIM_TRANSMIT_APDU_LOGICAL_CHANNEL,
162     HREQ_SIM_TRANSMIT_APDU_BASIC_CHANNEL,
163     HREQ_SIM_AUTHENTICATION,
164     HREQ_SIM_UNLOCK_SIM_LOCK,
165     HREQ_SIM_SEND_NCFG_OPER_INFO,
166 
167     HREQ_DATA_BASE = 300,
168     HREQ_DATA_SET_INIT_APN_INFO,
169     HREQ_DATA_DEACTIVATE_PDP_CONTEXT,
170     HREQ_DATA_ACTIVATE_PDP_CONTEXT,
171     HREQ_DATA_GET_PDP_CONTEXT_LIST,
172     HREQ_DATA_GET_LINK_BANDWIDTH_INFO,
173     HREQ_DATA_SET_LINK_BANDWIDTH_REPORTING_RULE,
174     HREQ_DATA_SET_DATA_PROFILE_INFO,
175     HREQ_DATA_SEND_DATA_PERFORMANCE_MODE,
176     HREQ_DATA_SEND_DATA_SLEEP_MODE,
177     HREQ_DATA_SET_DATA_PERMITTED,
178     HREQ_DATA_GET_LINK_CAPABILITY,
179     HREQ_DATA_CLEAN_ALL_CONNECTIONS,
180 
181     HREQ_NETWORK_BASE = 400,
182     HREQ_NETWORK_GET_SIGNAL_STRENGTH,
183     HREQ_NETWORK_GET_CS_REG_STATUS,
184     HREQ_NETWORK_GET_PS_REG_STATUS,
185     HREQ_NETWORK_GET_OPERATOR_INFO,
186     HREQ_NETWORK_GET_NETWORK_SEARCH_INFORMATION,
187     HREQ_NETWORK_GET_NETWORK_SELECTION_MODE,
188     HREQ_NETWORK_SET_NETWORK_SELECTION_MODE,
189     HREQ_NETWORK_GET_NEIGHBORING_CELLINFO_LIST,
190     HREQ_NETWORK_GET_CURRENT_CELL_INFO,
191     HREQ_NETWORK_SET_PREFERRED_NETWORK,
192     HREQ_NETWORK_GET_PREFERRED_NETWORK,
193     HREQ_NETWORK_GET_RADIO_CAPABILITY,
194     HREQ_NETWORK_GET_PHYSICAL_CHANNEL_CONFIG,
195     HREQ_NETWORK_SET_LOCATE_UPDATES,
196     HREQ_NETWORK_SET_NOTIFICATION_FILTER,
197     HREQ_NETWORK_SET_DEVICE_STATE,
198     HREQ_NETWORK_GET_RRC_CONNECTION_STATE,
199     HREQ_NETWORK_SET_NR_OPTION_MODE,
200     HREQ_NETWORK_GET_NR_OPTION_MODE,
201     HREQ_NETWORK_GET_NR_SSBID_INFO,
202 
203     HREQ_COMMON_BASE = 500,
204     HREQ_MODEM_SHUT_DOWN,
205     HREQ_MODEM_SET_RADIO_STATUS,
206     HREQ_MODEM_GET_RADIO_STATUS,
207     HREQ_MODEM_GET_IMEI,
208     HREQ_MODEM_GET_IMEISV,
209     HREQ_MODEM_GET_MEID,
210     HREQ_MODEM_GET_BASEBAND_VERSION,
211     HREQ_MODEM_GET_VOICE_RADIO,
212     HREQ_MODEM_EXIT = 1000
213 };
214 
215 enum class DeviceStateType { POWER_SAVE_MODE, CHARGING_STATE, LOW_DATA_STATE };
216 
217 enum class NrMode { NR_MODE_UNKNOWN, NR_MODE_NSA_ONLY, NR_MODE_SA_ONLY, NR_MODE_NSA_AND_SA };
218 
219 enum class NotificationFilter {
220     NOTIFICATION_FILTER_ALL = -1,
221     NOTIFICATION_FILTER_NONE = 0,
222     NOTIFICATION_FILTER_SIGNAL_STRENGTH = 1,
223     NOTIFICATION_FILTER_NETWORK_STATE = 2,
224     NOTIFICATION_FILTER_DATA_CALL = 4,
225     NOTIFICATION_FILTER_LINK_CAPACITY = 8,
226     NOTIFICATION_FILTER_PHYSICAL_CHANNEL_CONFIG = 16
227 };
228 
229 enum class RatType {
230     NETWORK_TYPE_UNKNOWN = 0,
231     NETWORK_TYPE_GSM,
232     NETWORK_TYPE_CDMA,
233     NETWORK_TYPE_WCDMA,
234     NETWORK_TYPE_TDSCDMA,
235     NETWORK_TYPE_LTE,
236     NETWORK_TYPE_NR
237 };
238 
239 enum class SelectionMode { MODE_TYPE_UNKNOWN = -1, MODE_TYPE_AUTO = 0, MODE_TYPE_MANUAL = 1 };
240 
241 enum class PreferredNetworkMode {
242     CORE_NETWORK_MODE_AUTO = 0,
243     CORE_NETWORK_MODE_GSM = 1,
244     CORE_NETWORK_MODE_WCDMA = 2,
245     CORE_NETWORK_MODE_LTE = 3,
246     CORE_NETWORK_MODE_LTE_WCDMA = 4,
247     CORE_NETWORK_MODE_LTE_WCDMA_GSM = 5,
248     CORE_NETWORK_MODE_WCDMA_GSM = 6,
249     CORE_NETWORK_MODE_CDMA = 7,
250     CORE_NETWORK_MODE_EVDO = 8,
251     CORE_NETWORK_MODE_EVDO_CDMA = 9,
252     CORE_NETWORK_MODE_WCDMA_GSM_EVDO_CDMA = 10,
253     CORE_NETWORK_MODE_LTE_EVDO_CDMA = 11,
254     CORE_NETWORK_MODE_LTE_WCDMA_GSM_EVDO_CDMA = 12,
255     CORE_NETWORK_MODE_TDSCDMA = 13,
256     CORE_NETWORK_MODE_TDSCDMA_GSM = 14,
257     CORE_NETWORK_MODE_TDSCDMA_WCDMA = 15,
258     CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM = 16,
259     CORE_NETWORK_MODE_LTE_TDSCDMA = 17,
260     CORE_NETWORK_MODE_LTE_TDSCDMA_GSM = 18,
261     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19,
262     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM = 20,
263     CORE_NETWORK_MODE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 21,
264     CORE_NETWORK_MODE_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 22,
265     CORE_NETWORK_MODE_NR = 31,
266     CORE_NETWORK_MODE_NR_LTE = 32,
267     CORE_NETWORK_MODE_NR_LTE_WCDMA = 33,
268     CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM = 34,
269     CORE_NETWORK_MODE_NR_LTE_EVDO_CDMA = 35,
270     CORE_NETWORK_MODE_NR_LTE_WCDMA_GSM_EVDO_CDMA = 36,
271     CORE_NETWORK_MODE_NR_LTE_TDSCDMA = 37,
272     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 38,
273     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 39,
274     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM = 40,
275     CORE_NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA_GSM_EVDO_CDMA = 41,
276     CORE_NETWORK_MODE_MAX_VALUE = 99,
277 };
278 
279 enum class SimMessageStatus {
280     SIM_MESSAGE_STATUS_UNREAD = 0,
281     SIM_MESSAGE_STATUS_READ = 1,
282     SIM_MESSAGE_STATUS_UNSENT = 2,
283     SIM_MESSAGE_STATUS_SENT = 3,
284 };
285 
286 class RilCallback : public OHOS::HDI::Ril::V1_3::IRilCallback {
287 public:
288     void NotifyAll();
289     void WaitFor(int32_t timeoutSecond);
290     bool GetBoolResult(HdiId hdiId);
291     void Clean();
292 
293     int32_t CallStateUpdated(const RilRadioResponseInfo &responseInfo) override;
294     int32_t CallRingbackVoiceNotice(const RilRadioResponseInfo &responseInfo,
295                                     const RingbackVoice &ringbackVoice) override;
296     int32_t CallSrvccStatusNotice(const RilRadioResponseInfo &responseInfo, const SrvccStatus &srvccStatus) override;
297     int32_t CallUssdNotice(const RilRadioResponseInfo &responseInfo, const UssdNoticeInfo &ussdNoticeInfo) override;
298     int32_t CallSsNotice(const RilRadioResponseInfo &responseInfo, const SsNoticeInfo &ssNoticeInfo) override;
299     int32_t CallEmergencyNotice(const RilRadioResponseInfo &responseInfo,
300                                 const EmergencyInfoList &emergencyInfoList) override;
301     int32_t CallRsrvccStatusNotify(const RilRadioResponseInfo &responseInfo) override;
302     int32_t SetEmergencyCallListResponse(const RilRadioResponseInfo &responseInfo) override;
303     int32_t GetEmergencyCallListResponse(const RilRadioResponseInfo &responseInfo,
304                                          const EmergencyInfoList &emergencyInfoList) override;
305     int32_t GetCallListResponse(const RilRadioResponseInfo &responseInfo, const CallInfoList &callList) override;
306     int32_t DialResponse(const RilRadioResponseInfo &responseInfo) override;
307     int32_t HangupResponse(const RilRadioResponseInfo &responseInfo) override;
308     int32_t RejectResponse(const RilRadioResponseInfo &responseInfo) override;
309     int32_t AnswerResponse(const RilRadioResponseInfo &responseInfo) override;
310     int32_t HoldCallResponse(const RilRadioResponseInfo &responseInfo) override;
311     int32_t UnHoldCallResponse(const RilRadioResponseInfo &responseInfo) override;
312     int32_t SwitchCallResponse(const RilRadioResponseInfo &responseInfo) override;
313     int32_t GetClipResponse(const RilRadioResponseInfo &responseInfo, const GetClipResult &getClipResult) override;
314     int32_t SetClipResponse(const RilRadioResponseInfo &responseInfo) override;
315     int32_t CombineConferenceResponse(const RilRadioResponseInfo &responseInfo) override;
316     int32_t SeparateConferenceResponse(const RilRadioResponseInfo &responseInfo) override;
317     int32_t CallSupplementResponse(const RilRadioResponseInfo &responseInfo) override;
318     int32_t GetCallWaitingResponse(const RilRadioResponseInfo &responseInfo,
319                                    const CallWaitResult &callWaitResult) override;
320     int32_t SetCallWaitingResponse(const RilRadioResponseInfo &responseInfo) override;
321     int32_t GetCallTransferInfoResponse(const RilRadioResponseInfo &responseInfo,
322                                         const CallForwardQueryInfoList &cFQueryList) override;
323     int32_t SetCallTransferInfoResponse(const RilRadioResponseInfo &responseInfo) override;
324     int32_t GetCallRestrictionResponse(const RilRadioResponseInfo &responseInfo,
325                                        const CallRestrictionResult &result) override;
326     int32_t SetCallRestrictionResponse(const RilRadioResponseInfo &responseInfo) override;
327     int32_t GetClirResponse(const RilRadioResponseInfo &responseInfo, const GetClirResult &getClirResult) override;
328     int32_t SetClirResponse(const RilRadioResponseInfo &responseInfo) override;
329     int32_t StartDtmfResponse(const RilRadioResponseInfo &responseInfo) override;
330     int32_t SendDtmfResponse(const RilRadioResponseInfo &responseInfo) override;
331     int32_t StopDtmfResponse(const RilRadioResponseInfo &responseInfo) override;
332     int32_t GetCallPreferenceModeResponse(const RilRadioResponseInfo &responseInfo, int32_t mode) override;
333     int32_t SetCallPreferenceModeResponse(const RilRadioResponseInfo &responseInfo) override;
334     int32_t SetUssdResponse(const RilRadioResponseInfo &responseInfo) override;
335     int32_t GetUssdResponse(const RilRadioResponseInfo &responseInfo, int32_t cusd) override;
336     int32_t SetMuteResponse(const RilRadioResponseInfo &responseInfo) override;
337     int32_t GetMuteResponse(const RilRadioResponseInfo &responseInfo, int32_t mute) override;
338     int32_t GetCallFailReasonResponse(const RilRadioResponseInfo &responseInfo, int32_t callFail) override;
339     int32_t SetBarringPasswordResponse(const RilRadioResponseInfo &responseInfo) override;
340     int32_t CloseUnFinishedUssdResponse(const RilRadioResponseInfo &responseInfo) override;
341     int32_t SetVonrSwitchResponse(const RilRadioResponseInfo &responseInfo) override;
342 
343     int32_t PdpContextListUpdated(const RilRadioResponseInfo &responseInfo,
344                                   const DataCallResultList &dataCallResultList) override;
345     int32_t DataLinkCapabilityUpdated(const RilRadioResponseInfo &responseInfo,
346                                       const DataLinkCapability &dataLinkCapability) override;
347     int32_t ActivatePdpContextResponse(const RilRadioResponseInfo &responseInfo,
348                                        const SetupDataCallResultInfo &setupDataCallResultInfo) override;
349     int32_t DeactivatePdpContextResponse(const RilRadioResponseInfo &responseInfo) override;
350     int32_t GetPdpContextListResponse(const RilRadioResponseInfo &responseInfo,
351                                       const DataCallResultList &dataCallResultList) override;
352     int32_t SetInitApnInfoResponse(const RilRadioResponseInfo &responseInfo) override;
353     int32_t SetLinkBandwidthReportingRuleResponse(const RilRadioResponseInfo &responseInfo) override;
354     int32_t GetLinkBandwidthInfoResponse(const RilRadioResponseInfo &responseInfo,
355                                          const DataLinkBandwidthInfo &dataLinkBandwidthInfo) override;
356     int32_t SetDataPermittedResponse(const RilRadioResponseInfo &responseInfo) override;
357     int32_t SetDataProfileInfoResponse(const RilRadioResponseInfo &responseInfo);
358     int32_t GetLinkCapabilityResponse(const RilRadioResponseInfo &responseInfo,
359                                       const DataLinkCapability &dataLinkCapability) override;
360     int32_t CleanAllConnectionsResponse(const RilRadioResponseInfo &responseInfo) override;
361 
362     int32_t RadioStateUpdated(const RilRadioResponseInfo &responseInfo, int32_t state) override;
363     int32_t VoiceRadioTechUpdated(const RilRadioResponseInfo &responseInfo,
364                                   const VoiceRadioTechnology &voiceRadioTechnology) override;
365     int32_t DsdsModeUpdated(const RilRadioResponseInfo &responseInfo, int32_t mode) override;
366     int32_t NcfgFinishedResult(const RilRadioResponseInfo &responseInfo, int32_t state) override;
367     int32_t RestartRildNvMatch(const RilRadioResponseInfo &responseInfo, int32_t state) override;
368 
369     int32_t ShutDownResponse(const RilRadioResponseInfo &responseInfo) override;
370     int32_t SetRadioStateResponse(const RilRadioResponseInfo &responseInfo) override;
371     int32_t GetRadioStateResponse(const RilRadioResponseInfo &responseInfo, int32_t state) override;
372     int32_t GetImeiResponse(const RilRadioResponseInfo &responseInfo, const std::string &imei) override;
373     int32_t GetImeiSvResponse(const RilRadioResponseInfo &responseInfo, const std::string &imeiSv) override;
374     int32_t GetMeidResponse(const RilRadioResponseInfo &responseInfo, const std::string &meid) override;
375     int32_t GetVoiceRadioTechnologyResponse(const RilRadioResponseInfo &responseInfo,
376                                             const VoiceRadioTechnology &voiceRadioTechnology) override;
377     int32_t GetBasebandVersionResponse(const RilRadioResponseInfo &responseInfo,
378                                        const std::string &basebandVersion) override;
379 
380     int32_t SimStateUpdated(const RilRadioResponseInfo &responseInfo) override;
381     int32_t SimStkSessionEndNotify(const RilRadioResponseInfo &responseInfo) override;
382     int32_t SimStkProactiveNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override;
383     int32_t SimStkAlphaNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override;
384     int32_t SimStkEventNotify(const RilRadioResponseInfo &responseInfo, const std::string &response) override;
385     int32_t SimStkCallSetupNotify(const RilRadioResponseInfo &responseInfo) override;
386     int32_t SimRefreshNotify(const RilRadioResponseInfo &responseInfo) override;
SimRadioProtocolUpdated(const RilRadioResponseInfo & responseInfo,const RadioProtocol & radioProtocol)387     int32_t SimRadioProtocolUpdated(const RilRadioResponseInfo &responseInfo,
388                                     const RadioProtocol &radioProtocol) override
389     {
390         return 0;
391     }
392     int32_t GetSimIOResponse(const RilRadioResponseInfo &responseInfo, const IccIoResultInfo &result) override;
393     int32_t GetSimStatusResponse(const RilRadioResponseInfo &responseInfo, const CardStatusInfo &result) override;
394     int32_t GetSimCardStatusResponse(const RilRadioResponseInfo &responseInfo,
395         const SimCardStatusInfo &result) override;
396     int32_t GetImsiResponse(const RilRadioResponseInfo &responseInfo, const std::string &response) override;
397     int32_t GetSimLockStatusResponse(const RilRadioResponseInfo &responseInfo, int32_t simLockStatus) override;
398     int32_t SetSimLockResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
399     int32_t ChangeSimPasswordResponse(const RilRadioResponseInfo &responseInfo,
400                                       const LockStatusResp &lockStatus) override;
401     int32_t UnlockPinResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
402     int32_t UnlockPukResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
403     int32_t UnlockPin2Response(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
404     int32_t UnlockPuk2Response(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
405     int32_t SetActiveSimResponse(const RilRadioResponseInfo &responseInfo) override;
406     int32_t SimStkSendTerminalResponseResponse(const RilRadioResponseInfo &responseInfo) override;
407     int32_t SimStkSendEnvelopeResponse(const RilRadioResponseInfo &responseInfo) override;
408     int32_t SimStkSendCallSetupRequestResultResponse(const RilRadioResponseInfo &responseInfo) override;
409     int32_t SimStkIsReadyResponse(const RilRadioResponseInfo &responseInfo) override;
410     int32_t SetRadioProtocolResponse(const RilRadioResponseInfo &responseInfo,
411                                      const RadioProtocol &radioProtocol) override;
412     int32_t GetRadioProtocolResponse(const RilRadioResponseInfo &responseInfo,
413                                      const RadioProtocol &radioProtocol) override;
414     int32_t SimOpenLogicalChannelResponse(const RilRadioResponseInfo &responseInfo,
415                                           const OpenLogicalChannelResponse &pOpenLogicalChannelResponse) override;
416     int32_t SimCloseLogicalChannelResponse(const RilRadioResponseInfo &responseInfo) override;
417     int32_t SimTransmitApduLogicalChannelResponse(const RilRadioResponseInfo &responseInfo,
418                                                   const IccIoResultInfo &result) override;
419     int32_t SimTransmitApduBasicChannelResponse(const RilRadioResponseInfo &responseInfo,
420                                                 const IccIoResultInfo &result) override;
421     int32_t SimAuthenticationResponse(const RilRadioResponseInfo &responseInfo, const IccIoResultInfo &result) override;
422     int32_t UnlockSimLockResponse(const RilRadioResponseInfo &responseInfo, const LockStatusResp &lockStatus) override;
423     int32_t SendSimMatchedOperatorInfoResponse(const RilRadioResponseInfo &responseInfo) override;
424 
425     int32_t NetworkCsRegStatusUpdated(const RilRadioResponseInfo &responseInfo,
426                                       const CsRegStatusInfo &csRegStatusInfo) override;
427     int32_t NetworkPsRegStatusUpdated(const RilRadioResponseInfo &responseInfo,
428                                       const PsRegStatusInfo &psRegStatusInfo) override;
429     int32_t SignalStrengthUpdated(const RilRadioResponseInfo &responseInfo, const Rssi &rssi) override;
430     int32_t NetworkTimeZoneUpdated(const RilRadioResponseInfo &responseInfo, const std::string &timeZoneStr) override;
431     int32_t NetworkTimeUpdated(const RilRadioResponseInfo &responseInfo, const std::string &timeStr) override;
432     int32_t NetworkPhyChnlCfgUpdated(const RilRadioResponseInfo &responseInfo,
433                                      const ChannelConfigInfoList &channelConfigInfoList) override;
434     int32_t NetworkCurrentCellUpdated(const RilRadioResponseInfo &responseInfo,
435                                       const CellListCurrentInfo &cellListCurrentInfo) override;
436     int32_t NetworkCurrentCellUpdated_1_1(const RilRadioResponseInfo &responseInfo,
437                                           const CellListCurrentInfo_1_1 &cellListCurrentInfo) override;
438     int32_t NetworkCurrentCellUpdated_1_2(const RilRadioResponseInfo &responseInfo,
439                                           const CellListCurrentInfo_1_2 &cellListCurrentInfo) override;
440     int32_t ResidentNetworkUpdated(const RilRadioResponseInfo &responseInfo, const std::string &plmn) override;
441     int32_t GetSignalStrengthResponse(const RilRadioResponseInfo &responseInfo, const Rssi &rssi) override;
442     int32_t GetCsRegStatusResponse(const RilRadioResponseInfo &responseInfo,
443                                    const CsRegStatusInfo &csRegStatusInfo) override;
444     int32_t GetPsRegStatusResponse(const RilRadioResponseInfo &responseInfo,
445                                    const PsRegStatusInfo &psRegStatusInfo) override;
446     int32_t GetOperatorInfoResponse(const RilRadioResponseInfo &responseInfo,
447                                     const OperatorInfo &operatorInfo) override;
448     int32_t GetNetworkSearchInformationResponse(const RilRadioResponseInfo &responseInfo,
449                                                 const AvailableNetworkList &availableNetworkList) override;
450     int32_t GetNetworkSelectionModeResponse(const RilRadioResponseInfo &responseInfo,
451                                             const SetNetworkModeInfo &setNetworkModeInfo) override;
452     int32_t SetNetworkSelectionModeResponse(const RilRadioResponseInfo &responseInfo) override;
453     int32_t GetNeighboringCellInfoListResponse(const RilRadioResponseInfo &responseInfo,
454                                                const CellListNearbyInfo &cellInfoList) override;
455     int32_t GetNeighboringCellInfoListResponse_1_2(const RilRadioResponseInfo &responseInfo,
456                                                    const CellListNearbyInfo_1_2 &cellInfoList) override;
457     int32_t GetCurrentCellInfoResponse(const RilRadioResponseInfo &responseInfo,
458                                        const CellListCurrentInfo &cellInfoList) override;
459     int32_t GetCurrentCellInfoResponse_1_1(const RilRadioResponseInfo &responseInfo,
460                                            const CellListCurrentInfo_1_1 &cellListCurrentInfo) override;
461     int32_t GetCurrentCellInfoResponse_1_2(const RilRadioResponseInfo &responseInfo,
462                                            const CellListCurrentInfo_1_2 &cellListCurrentInfo) override;
463     int32_t SetPreferredNetworkResponse(const RilRadioResponseInfo &responseInfo) override;
464     int32_t GetPreferredNetworkResponse(const RilRadioResponseInfo &responseInfo,
465                                         const PreferredNetworkTypeInfo &preferredNetworkTypeInfo) override;
466     int32_t GetPhysicalChannelConfigResponse(const RilRadioResponseInfo &responseInfo,
467                                              const ChannelConfigInfoList &channelConfigInfoList) override;
468     int32_t SetLocateUpdatesResponse(const RilRadioResponseInfo &responseInfo) override;
469     int32_t SetNotificationFilterResponse(const RilRadioResponseInfo &responseInfo) override;
470     int32_t SetDeviceStateResponse(const RilRadioResponseInfo &responseInfo) override;
471     int32_t GetRrcConnectionStateResponse(const RilRadioResponseInfo &responseInfo, int32_t state) override;
472     int32_t SetNrOptionModeResponse(const RilRadioResponseInfo &responseInfo) override;
473     int32_t GetNrOptionModeResponse(const RilRadioResponseInfo &responseInfo, int32_t mode) override;
474     int32_t GetRrcConnectionStateUpdated(const RilRadioResponseInfo &responseInfo, int32_t state) override;
475     int32_t GetNrSsbIdResponse(const RilRadioResponseInfo &responseInfo, const NrCellSsbIds &nrCellSsbIds) override;
476 
477     int32_t NewSmsNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
478                          const SmsMessageInfo &smsMessageInfo) override;
479     int32_t NewCdmaSmsNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
480                              const SmsMessageInfo &smsMessageInfo) override;
481     int32_t SmsStatusReportNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
482                                   const SmsMessageInfo &smsMessageInfo) override;
483     int32_t NewSmsStoredOnSimNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
484                                     int32_t recordNumber, int32_t indicationType) override;
485     int32_t CBConfigNotify(const OHOS::HDI::Ril::V1_1::RilRadioResponseInfo &responseInfo,
486                            const CBConfigReportInfo &cellBroadConfigReportInfo) override;
487     int32_t SendGsmSmsResponse(const RilRadioResponseInfo &responseInfo,
488                                const SendSmsResultInfo &sendSmsResultInfo) override;
489     int32_t SendCdmaSmsResponse(const RilRadioResponseInfo &responseInfo,
490                                 const SendSmsResultInfo &sendSmsResultInfo) override;
491     int32_t AddSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
492     int32_t DelSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
493     int32_t UpdateSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
494     int32_t AddCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
495     int32_t DelCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
496     int32_t UpdateCdmaSimMessageResponse(const RilRadioResponseInfo &responseInfo) override;
497     int32_t SetSmscAddrResponse(const RilRadioResponseInfo &responseInfo) override;
498     int32_t GetSmscAddrResponse(const RilRadioResponseInfo &responseInfo,
499                                 const ServiceCenterAddress &serviceCenterAddress) override;
500     int32_t SetCBConfigResponse(const RilRadioResponseInfo &responseInfo) override;
501     int32_t GetCBConfigResponse(const RilRadioResponseInfo &responseInfo,
502                                 const CBConfigInfo &cellBroadcastInfo) override;
503     int32_t SetCdmaCBConfigResponse(const RilRadioResponseInfo &responseInfo) override;
504     int32_t GetCdmaCBConfigResponse(const RilRadioResponseInfo &responseInfo,
505                                     const CdmaCBConfigInfo &cdmaCBConfigInfo) override;
506     int32_t SendSmsMoreModeResponse(const RilRadioResponseInfo &responseInfo,
507                                     const SendSmsResultInfo &sendSmsResultInfo) override;
508     int32_t SendSmsAckResponse(const RilRadioResponseInfo &responseInfo) override;
509 
510     int32_t CommonErrorResponse(const RilRadioResponseInfo &responseInfo) override;
511 
512 private:
513     std::mutex callbackMutex_;
514     std::condition_variable cv_;
515     HdiId hdiId_;
516     RilRadioResponseInfo resultInfo_;
517 };
518 
519 extern OHOS::sptr<OHOS::HDI::Ril::V1_3::IRil> g_rilInterface;
520 extern RilCallback g_callback;
521 
522 constexpr int32_t SLOTID_1 = 0;
523 constexpr int32_t SLOTID_2 = 1;
524 constexpr int32_t SUCCESS = 0;
525 constexpr int32_t WAIT_TIME_SECOND = 20;
526 constexpr int32_t WAIT_TIME_SECOND_LONG = 40;
527 extern std::map<int32_t, int32_t> g_simState;
528 extern int32_t g_currentChannelld;
529 const std::string TEST_STORAGE_PDU = "1234";
530 const std::string TEST_SEND_PDU = "A10305810180F6000004F4F29C0E";
531 const std::string TEST_SMSC_PDU = "00";
532 const std::string TEST_CDMA_PDU = "pdu";
533 const std::string TEST_SMSC_ADDR = "00";
534 const std::string TEST_ID_LIST = "0,1,5,320-478,922";
535 const std::string TEST_DCS_LIST = "0-3,5";
536 extern int32_t g_currentSerialId;
537 extern bool g_hangupResponseFlag;
538 extern bool g_rejectResponseFlag;
539 extern bool g_answerResponseFlag;
540 extern bool g_holdCallResponseFlag;
541 extern bool g_unHoldCallResponseFlag;
542 extern bool g_switchCallResponseFlag;
543 extern bool g_getClipResponseFlag;
544 extern bool g_setClipResponseFlag;
545 extern bool g_simStkSendTerminalResponseResponseFlag;
546 extern bool g_simStkSendEnvelopeResponseFlag;
547 extern bool g_simStkSendCallSetupRequestResultResponseFlag;
548 extern bool g_simStkIsReadyResponseFlag;
549 extern bool g_getRadioProtocolResponseFlag;
550 extern bool g_setRadioProtocolResponseFlag;
551 extern bool g_simOpenLogicalChannelResponseFlag;
552 extern bool g_simCloseLogicalChannelResponseFlag;
553 extern bool g_simTransmitApduLogicalChannelResponseFlag;
554 extern bool g_simTransmitApduBasicChannelResponseFlag;
555 extern bool g_simAuthenticationResponseFlag;
556 extern bool g_unlockSimLockResponseFlag;
557 extern bool g_getSignalStrengthResponseFlag;
558 extern bool g_getCsRegStatusResponseFlag;
559 extern bool g_getPsRegStatusResponseFlag;
560 extern bool g_getOperatorInfoResponseFlag;
561 extern bool g_getNetworkSearchInformationResponseFlag;
562 extern bool g_getNetworkSelectionModeResponseFlag;
563 extern bool g_getNeighboringCellInfoListResponseFlag;
564 extern bool g_getCurrentCellInfoResponseFlag;
565 extern bool g_getCurrentCellInfoResponse11Flag;
566 extern bool g_setNetworkSelectionModeResponseFlag;
567 extern bool g_setLocateUpdatesResponseFlag;
568 extern bool g_setNotificationFilterResponseFlag;
569 extern bool g_setDeviceStateResponseFlag;
570 extern bool g_sendGsmSmsResponseFlag;
571 extern bool g_sendCdmaSmsResponseFlag;
572 extern bool g_addSimMessageResponseFlag;
573 extern bool g_delSimMessageResponseFlag;
574 extern bool g_updateSimMessageResponseFlag;
575 extern bool g_addCdmaSimMessageResponseFlag;
576 extern bool g_delCdmaSimMessageResponseFlag;
577 extern bool g_setPreferredNetworkResponseFlag;
578 extern bool g_getPreferredNetworkResponseFlag;
579 extern bool g_getPhysicalChannelConfigResponseFlag;
580 extern bool g_separateConferenceResponseFlag;
581 extern bool g_callSupplementResponseFlag;
582 extern bool g_getCallWaitingResponseFlag;
583 extern bool g_setCallWaitingResponseFlag;
584 extern bool g_getUssdResponseFlag;
585 extern bool g_setMuteResponseFlag;
586 extern bool g_getMuteResponseFlag;
587 extern bool g_setDataPermittedResponseFlag;
588 extern bool g_shutDownResponseFlag;
589 extern bool g_setRadioStateResponseFlag;
590 extern bool g_getRadioStateResponseFlag;
591 extern bool g_getImeiResponseFlag;
592 extern bool g_getImeiSvResponseFlag;
593 extern bool g_getMeidResponseFlag;
594 extern bool g_getBasebandVersionResponseFlag;
595 extern bool g_getImsiResponseFlag;
596 extern bool g_setActiveSimResponseFlag;
597 extern bool g_setNrOptionModeResponseFlag;
598 extern bool g_getNrOptionModeResponseFlag;
599 extern bool g_dialResponseFlag;
600 extern bool g_setCdmaCBConfigResponseFlag;
601 extern bool g_getCdmaCBConfigResponseFlag;
602 extern bool g_sendSmsMoreModeResponseFlag;
603 extern bool g_sendSmsAckResponseFlag;
604 extern bool g_updateCdmaSimMessageResponseFlag;
605 extern bool g_setSmscAddrResponseFlag;
606 extern bool g_getSmscAddrResponseFlag;
607 extern bool g_setCBConfigResponseFlag;
608 extern bool g_getCBConfigResponseFlag;
609 extern bool g_signalStrengthUpdatedFlag;
610 extern bool g_networkPhyChnlCfgUpdatedFlag;
611 extern bool g_networkCurrentCellUpdatedFlag;
612 extern bool g_setCallTransferInfoResponseFlag;
613 extern bool g_getCallRestrictionResponseFlag;
614 extern bool g_setCallRestrictionResponseFlag;
615 extern bool g_getClirResponseFlag;
616 extern bool g_setClirResponseFlag;
617 extern bool g_startDtmfResponseFlag;
618 extern bool g_sendDtmfResponseFlag;
619 extern bool g_stopDtmfResponseFlag;
620 extern bool g_getCallPreferenceModeResponseFlag;
621 extern bool g_setCallPreferenceModeResponseFlag;
622 extern bool g_setUssdResponseFlag;
623 extern bool g_closeUnFinishedUssdResponseFlag;
624 extern bool g_getCallFailReasonResponseFlag;
625 extern bool g_setBarringPasswordResponseFlag;
626 extern bool g_deactivatePdpContextResponseFlag;
627 extern bool g_getPdpContextListResponseFlag;
628 extern bool g_setInitApnInfoResponseFlag;
629 extern bool g_getLinkCapabilityResponseFlag;
630 extern bool g_getVoiceRadioTechnologyResponseFlag;
631 extern bool g_getSimIOResponseFlag;
632 extern bool g_getSimStatusResponseFlag;
633 extern bool g_getSimCardStatusResponseFlag;
634 extern bool g_setSimLockResponseFlag;
635 extern bool g_changeSimPasswordResponseFlag;
636 extern bool g_unlockPinResponseFlag;
637 extern bool g_unlockPukResponseFlag;
638 extern bool g_unlockPin2ResponseFlag;
639 extern bool g_unlockPuk2ResponseFlag;
640 extern bool g_setVonrSwitchResponseFlag;
641 extern bool g_getSimLockStatusResponseFlag;
642 extern bool g_getCallTransferInfoResponseFlag;
643 extern bool g_combineConferenceResponseFlag;
644 extern bool g_getCallListResponseFlag;
645 extern bool g_getEmergencyCallListResponseFlag;
646 extern bool g_setEmergencyCallListResponse;
647 extern bool g_getLinkBandwidthInfoResponseFlag;
648 /**
649 ** common fun
650 **/
651 void WaitFor(int32_t timeoutSecond);
652 bool GetBoolResult(HdiId hdiId);
653 int32_t GetSerialId();
654 bool IsReady(int32_t slotId);
655 
656 #endif