├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── build.yml
├── docs
└── html
│ ├── _cellular_helper_8h_source.html
│ ├── annotated.html
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── class_cellular_helper_c_r_e_g_response.html
│ ├── class_cellular_helper_c_r_e_g_response.png
│ ├── class_cellular_helper_class.html
│ ├── class_cellular_helper_common_response.html
│ ├── class_cellular_helper_common_response.png
│ ├── class_cellular_helper_environment_cell_data.html
│ ├── class_cellular_helper_environment_response.html
│ ├── class_cellular_helper_environment_response.png
│ ├── class_cellular_helper_environment_response_static.html
│ ├── class_cellular_helper_environment_response_static.png
│ ├── class_cellular_helper_extended_qual_response.html
│ ├── class_cellular_helper_extended_qual_response.png
│ ├── class_cellular_helper_location_response.html
│ ├── class_cellular_helper_location_response.png
│ ├── class_cellular_helper_plus_string_response.html
│ ├── class_cellular_helper_plus_string_response.png
│ ├── class_cellular_helper_r_s_s_i_qual_response.html
│ ├── class_cellular_helper_r_s_s_i_qual_response.png
│ ├── class_cellular_helper_string_response.html
│ ├── class_cellular_helper_string_response.png
│ ├── class_log_class.html
│ ├── classes.html
│ ├── closed.png
│ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html
│ ├── doc.png
│ ├── doxygen.css
│ ├── doxygen.png
│ ├── dynsections.js
│ ├── files.html
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── functions.html
│ ├── functions_func.html
│ ├── functions_vars.html
│ ├── hierarchy.html
│ ├── index.html
│ ├── jquery.js
│ ├── menu.js
│ ├── menudata.js
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── open.png
│ ├── search
│ ├── all_0.html
│ ├── all_0.js
│ ├── all_1.html
│ ├── all_1.js
│ ├── all_10.html
│ ├── all_10.js
│ ├── all_11.html
│ ├── all_11.js
│ ├── all_2.html
│ ├── all_2.js
│ ├── all_3.html
│ ├── all_3.js
│ ├── all_4.html
│ ├── all_4.js
│ ├── all_5.html
│ ├── all_5.js
│ ├── all_6.html
│ ├── all_6.js
│ ├── all_7.html
│ ├── all_7.js
│ ├── all_8.html
│ ├── all_8.js
│ ├── all_9.html
│ ├── all_9.js
│ ├── all_a.html
│ ├── all_a.js
│ ├── all_b.html
│ ├── all_b.js
│ ├── all_c.html
│ ├── all_c.js
│ ├── all_d.html
│ ├── all_d.js
│ ├── all_e.html
│ ├── all_e.js
│ ├── all_f.html
│ ├── all_f.js
│ ├── classes_0.html
│ ├── classes_0.js
│ ├── classes_1.html
│ ├── classes_1.js
│ ├── close.png
│ ├── functions_0.html
│ ├── functions_0.js
│ ├── functions_1.html
│ ├── functions_1.js
│ ├── functions_2.html
│ ├── functions_2.js
│ ├── functions_3.html
│ ├── functions_3.js
│ ├── functions_4.html
│ ├── functions_4.js
│ ├── functions_5.html
│ ├── functions_5.js
│ ├── functions_6.html
│ ├── functions_6.js
│ ├── functions_7.html
│ ├── functions_7.js
│ ├── functions_8.html
│ ├── functions_8.js
│ ├── mag_sel.png
│ ├── nomatches.html
│ ├── pages_0.html
│ ├── pages_0.js
│ ├── search.css
│ ├── search.js
│ ├── search_l.png
│ ├── search_m.png
│ ├── search_r.png
│ ├── searchdata.js
│ ├── variables_0.html
│ ├── variables_0.js
│ ├── variables_1.html
│ ├── variables_1.js
│ ├── variables_2.html
│ ├── variables_2.js
│ ├── variables_3.html
│ ├── variables_3.js
│ ├── variables_4.html
│ ├── variables_4.js
│ ├── variables_5.html
│ ├── variables_5.js
│ ├── variables_6.html
│ ├── variables_6.js
│ ├── variables_7.html
│ ├── variables_7.js
│ ├── variables_8.html
│ ├── variables_8.js
│ ├── variables_9.html
│ ├── variables_9.js
│ ├── variables_a.html
│ ├── variables_a.js
│ ├── variables_b.html
│ ├── variables_b.js
│ ├── variables_c.html
│ ├── variables_c.js
│ ├── variables_d.html
│ ├── variables_d.js
│ ├── variables_e.html
│ └── variables_e.js
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ └── tabs.css
├── doxygen.config
├── examples
├── 1-simple
│ └── 1-simple.cpp
├── 2-show-carriers
│ └── 2-show-carriers.cpp
├── 3-select-carrier
│ └── 3-select-carrier.cpp
├── 4-cell-locate
│ └── 4-cell-locate.cpp
├── 5-cellular-global-identity
│ └── 5-cellular-global-identity.cpp
└── 6-no-cellular-test
│ └── 6-no-cellular-test.cpp
├── library.properties
├── package.json
├── src
├── CellularHelper.cpp
└── CellularHelper.h
└── verification.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | firmware*.bin
2 | .vscode
3 | .DS_Store
4 | docs/latex
5 | docs/xml
6 | project.properties
7 |
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js: lts/carbon
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 rickkas7
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Cellular Helper
2 |
3 | **A library to access useful things from the Electron, E Series, Boron, and B Series cellular modem**
4 |
5 | **Note: The official version of this library can now be found at: [https://github.com/particle-iot/CellularHelper](https://github.com/particle-iot/CellularHelper)**
6 |
7 | The code here will be archived.
8 |
9 | The full API documentation can be [found here](https://rickkas7.github.io/CellularHelper/).
10 |
11 | ## Simple functions
12 |
13 | The simple information calls query information from the modem and return a String.
14 |
15 | ```
16 | Log.info("manufacturer=%s", CellularHelper.getManufacturer().c_str());
17 |
18 | Log.info("model=%s", CellularHelper.getModel().c_str());
19 |
20 | Log.info("firmware version=%s", CellularHelper.getFirmwareVersion().c_str());
21 |
22 | Log.info("ordering code=%s", CellularHelper.getOrderingCode().c_str());
23 |
24 | Log.info("IMEI=%s", CellularHelper.getIMEI().c_str());
25 |
26 | Log.info("IMSI=%s", CellularHelper.getIMSI().c_str());
27 |
28 | Log.info("ICCID=%s", CellularHelper.getICCID().c_str());
29 | ```
30 |
31 | These are all just various bits of data from the modem or the SIM card.
32 |
33 | ```
34 | 0000008020 [app] INFO: manufacturer=u-blox
35 | 0000008040 [app] INFO: model=SARA-U260
36 | 0000008060 [app] INFO: firmware version=23.20
37 | 0000008090 [app] INFO: ordering code=SARA-U260-00S-00
38 | ```
39 |
40 | You might find the ICCID (SIM Number) to be useful as well.
41 |
42 | `Cellular.on()` needs to have been called, which happens automatically in automatic mode (the default).
43 |
44 | Note that if you are using `SYSTEM_THREAD(ENABLED)` or `SYSTEM_MODE(SEMI_AUTOMATIC)` or `SYSTEM_MODE(MANUAL)` you must also wait after turning the modem on. 4 seconds should be sufficient, because `Cellular.on()` is asynchronous and there's no call to determine if has completed yet. Instead of a delay, you could also use `cellular_on(NULL)` which blocks until the modem is turned on.
45 |
46 |
47 | ## Cellular connection functions
48 |
49 | For full information about these commands, consult the API documentation which describes these functions in much more detail.
50 |
51 | These functions can only be used after connecting to the cellular network.
52 |
53 | ### getOperatorName (2G/3G only)
54 |
55 | Returns a string containing the operator name, for example AT&T or T-Mobile in the United States.
56 |
57 | ```
58 | Log.info("operator name=%s", CellularHelper.getOperatorName().c_str());
59 | ```
60 |
61 | Example output:
62 |
63 | ```
64 | 0000008574 [app] INFO: operator name=AT&T
65 | ```
66 |
67 | The operator name is not available on LTE Cat M1 devices (SARA-R410M-02-B).
68 |
69 | ### getRSSIQual
70 |
71 | Returns the RSSI (signal strength) value and a quality value.
72 |
73 | ```
74 | CellularHelperRSSIQualResponse rssiQual = CellularHelper.getRSSIQual();
75 | int bars = CellularHelperClass::rssiToBars(rssiQual.rssi);
76 |
77 | Log.info("rssi=%d, qual=%d, bars=%d", rssiQual.rssi, rssiQual.qual, bars);
78 | ```
79 |
80 | ```
81 | 0000008595 [app] INFO: rssi=-75, qual=2, bars=3
82 | ```
83 |
84 | The RSSI is in dBm, the standard measure of signal strength. It's a negative value, and values closer to 0 are higher signal strength. There is more information in the [API documentation](https://rickkas7.github.io/CellularHelper/class_cellular_helper_class.html#af9012f92f58f5151cc7006aceadd311b).
85 |
86 | The quality value is 0 (highest quality) to 7 (lowest quality) or 99 if the value unknown. It's typically 99 for 2G connections. The qual value is described in the u-blox documentation, and it's returned by the call, but you probably won't need to use it.
87 |
88 | The `rssiToBars()` method converts the RSSI to a 0 to 5 bars, where 5 is the strongest signal.
89 |
90 | The `CellularHelper.getExtendedQualResponse()` is available on LTE Cat M1 devices and returns LTE specific parameters like the RSRP. You can find more information [here](https://rickkas7.github.io/CellularHelper/class_cellular_helper_class.html#a2cf4ec66557254498d5d7600ea66bd74).
91 |
92 | ### getEnvironment (2G/3G only)
93 |
94 | The method getEnvironment returns cell tower information. The is the u-blox AT+CGED command.
95 |
96 | ```
97 | CellularHelperEnvironmentResponseStatic<8> envResp;
98 |
99 | CellularHelper.getEnvironment(CellularHelper.ENVIRONMENT_SERVING_CELL_AND_NEIGHBORS, envResp);
100 | if (envResp.resp != RESP_OK) {
101 | // We couldn't get neighboring cells, so try just the receiving cell
102 | CellularHelper.getEnvironment(CellularHelper.ENVIRONMENT_SERVING_CELL, envResp);
103 | }
104 | envResp.logResponse();
105 |
106 | ```
107 |
108 | The first line declares a variable to hold up to 8 neighbor towers.
109 |
110 | The first getEnvironment call tries to get the serving cell (the one you're connected to) and the neighbor cells. This only works for me on the 2G (G350) Electron.
111 |
112 | If that fails, it will try again only using the serving cell information.
113 |
114 | This sample just prints the information to serial debug:
115 |
116 | ```
117 | 0000008645 [app] INFO: service rat=UMTS mcc=310, mnc=410, lac=2cf7 ci=8a5a782 band=UMTS 850 rssi=0 dlf=4384 ulf=4159
118 | ```
119 |
120 | Note that the rssi will always be 0 for 3G towers. This information is only returned by the AT+CGED command for 2G towers. You can use getRSSIQual() to get the RSSI for the connected tower; that works for 3G.
121 |
122 | ### getLocation (2G/3G only)
123 |
124 | This function returns the location of the Electron, using cell tower location. This call may take 10 seconds to complete!
125 |
126 | ```
127 | CellularHelperLocationResponse locResp = CellularHelper.getLocation();
128 | Log.info(locResp.toString());
129 | ```
130 |
131 | The locResp contains the member variables:
132 |
133 | - lat - The latitude (in degrees, -90 to +90)
134 | - lon - The longitude (in degrees, -180 to +180)
135 | - alt - The altitude (in meters)
136 | - uncertainty - The radius of the circle of uncertainty (in meters)
137 |
138 | This only works on 2G/3G devices, and a better alternative in most cases is to use the google-maps-device-locator to do the location query on the cloud-side instead of on-device.
139 |
140 | ## Examples
141 |
142 | ### 1-Simple Demo
143 |
144 | The simple demo tests all of the basic functions in the library, displaying the results to USB serial.
145 |
146 | The code examples in this document were taken from this example.
147 |
148 |
149 | ### 2-Show Carriers Demo
150 |
151 | This is a demo program that uses the cellular modem to scan for available operators, frequency band used, and signal strength. It prints a result like this to USB serial:
152 |
153 | ```
154 | 3G AT&T UMTS 850 2 bars (310410)
155 | 2G T-Mobile DCS 1800 or 1900 2 bars (310260)
156 | ```
157 |
158 | It should work even when you can't connect to a tower and also display carriers that are not supported by your SIM. (It only displays carriers compatible with the GSM modem, however, so it won't, for example, display Verizon in the United States since that requires a PCS modem.)
159 |
160 | This is a very time consuming operation (it can take 2 minutes or longer to run) and it's pretty rarely needed, so it builds on the CellularHelper library but the commands it uses (AT+COPS and AT+COPN) are not part of the library itself because they're so rarely needed.
161 |
162 | To build a binary for this, you can download the repository and use the Particle CLI compiler from the top level of it:
163 |
164 | ```
165 | particle compile electron examples/2-show-carriers/ --saveTo firmware.bin
166 | ```
167 |
168 | Then you can flash it to your Electron in DFU mode (blinking yellow):
169 |
170 | ```
171 | particle flash --usb firmware.bin
172 | ```
173 |
174 | ### 3-Select Carrier Demo
175 |
176 | The 3-select-carrier example shows how to prefer a certain carrier when multiple carriers are supported by the SIM card.
177 |
178 | - You should use SYSTEM_MODE(SEMI_AUTOMATIC) so you can set the carrier before trying to connect.
179 | - You need to turn the cellular modem on using `cellular_on(NULL)` or `Cellular.on()` (see comments in the code).
180 | - Call selectOperator() with the MCC/MNC. For example:
181 |
182 | ```
183 | // Select the operator using the MCC/MNC string. For example:
184 | // "310410" = AT&T
185 | // "310260" = T-Mobile
186 | bool bResult = CellularHelper.selectOperator("310260");
187 | ```
188 |
189 | The 2-show-carriers example prints out the MCC/MNC for carriers at your location.
190 |
191 | - If the operator needs to be changed, it may take around 20 seconds to do so. If the operator is already selected, it returns more or less immediately.
192 | - The setting of the operator is stored in the modem, but is reset on power down, so you should always select the operator in setup().
193 |
194 | On a cold boot, you might see something like this in the USB serial debug log:
195 |
196 | ```
197 | 5.297 AT send 12 "AT+UDOPN=0\r\n"
198 | 5.307 AT read ERR 34 "\r\n+CME ERROR: no network service\r\n"
199 | 5.307 AT send 22 "AT+COPS=4,2,\"310260\"\r\n"
200 | 23.778 AT read OK 6 "\r\nOK\r\n"
201 | 0000023789 [app] INFO: selectOperator returned 1
202 | ```
203 |
204 | Then, later:
205 |
206 | ```
207 | 0000042189 [system] INFO: ARM_WLAN_WD 2
208 | 0000042189 [system] INFO: CLR_WLAN_WD 1, DHCP success
209 | 42.180 AT send 12 "AT+UDOPN=9\r\n"
210 | 42.220 AT read + 24 "\r\n+UDOPN: 2,\"T-Mobile\"\r\n"
211 | 42.230 AT read OK 6 "\r\nOK\r\n"
212 | 0000042241 [app] INFO: current operator=T-Mobile
213 | ```
214 |
215 | If you do a warm boot after setting:
216 |
217 | ```
218 | 2.507 AT send 12 "AT+UDOPN=0\r\n"
219 | 2.517 AT read + 22 "\r\n+UDOPN: 0,\"310260\"\r\n"
220 | 2.527 AT read OK 6 "\r\nOK\r\n"
221 | 0000002527 [app] INFO: operator already 310260
222 | 0000002527 [app] INFO: selectOperator returned 1
223 | ```
224 |
225 | ### 4-cell-locate
226 |
227 | This demo uses the u-blox Cell Locate feature to find the latitude, longitude, and elevation of the device.
228 |
229 | This only works on 2G and 3G devices, not LTE Cat M1. Another alternative is to use google-maps-device-locator
230 | which works on all devices, and is also generally much faster.
231 |
232 | ### 5-cellular-global-identity
233 |
234 | Previously getting the cell tower information required a variety of techniques that depended on the cellular
235 | modem and generation of device. In Device OS 1.2.1 and later, it's now easy to query this information from
236 | Device OS. This example shows how.
237 |
238 | ## Version History
239 |
240 | #### 0.1.0 (2020-02-13)
241 |
242 | - Code cleanup
243 | - Minimum Device OS version is now 0.7.0
244 | - Removed non-working ping and DNS calls
245 | - Added lots of API documentation
246 |
247 | #### 0.0.7 (2018-11-27)
248 |
249 | - Added the getCREG call
250 | - Last versions that supports Device OS 0.6.x
251 |
252 | #### 0.0.6
253 |
254 | - Added selectOperator
255 |
256 |
257 |
--------------------------------------------------------------------------------
/build.yml:
--------------------------------------------------------------------------------
1 | - build: examples/1-simple
2 | electron: [0.7.0, 1.0.0, 1.4.4, latest]
3 | boron: [latest]
4 | - build: examples/2-show-carriers
5 | electron: [latest]
6 | - build: examples/3-select-carrier
7 | electron: [latest]
8 | - build: examples/4-cell-locate
9 | electron: [latest]
10 | - build: examples/5-cellular-global-identity
11 | electron: [1.2.1, latest]
12 | - build: examples/6-no-cellular-test
13 | photon: [latest]
14 |
--------------------------------------------------------------------------------
/docs/html/annotated.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: Data Structures
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here are the data structures with brief descriptions:
83 |
84 |
85 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/bc_s.png
--------------------------------------------------------------------------------
/docs/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/bdwn.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_c_r_e_g_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_c_r_e_g_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_common_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_common_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_environment_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_environment_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_environment_response_static.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_environment_response_static.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_extended_qual_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_extended_qual_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_location_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_location_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_plus_string_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_plus_string_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_r_s_s_i_qual_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_r_s_s_i_qual_response.png
--------------------------------------------------------------------------------
/docs/html/class_cellular_helper_string_response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/class_cellular_helper_string_response.png
--------------------------------------------------------------------------------
/docs/html/class_log_class.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: LogClass Class Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
63 |
69 |
70 |
71 |
73 |
74 | void info (const char *fmt,...)
75 |
76 |
77 |
The documentation for this class was generated from the following file:
78 | src/CellularHelper.cpp
79 |
80 |
81 |
82 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/docs/html/classes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: Data Structure Index
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
90 |
91 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/docs/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/closed.png
--------------------------------------------------------------------------------
/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: src Directory Reference
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
53 |
54 |
55 |
56 |
57 |
60 |
61 |
62 |
66 |
67 |
71 |
72 |
73 |
74 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/docs/html/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/doc.png
--------------------------------------------------------------------------------
/docs/html/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/doxygen.png
--------------------------------------------------------------------------------
/docs/html/dynsections.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2017 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License along
18 | with this program; if not, write to the Free Software Foundation, Inc.,
19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 |
21 | @licend The above is the entire license notice
22 | for the JavaScript code in this file
23 | */
24 | function toggleVisibility(linkObj)
25 | {
26 | var base = $(linkObj).attr('id');
27 | var summary = $('#'+base+'-summary');
28 | var content = $('#'+base+'-content');
29 | var trigger = $('#'+base+'-trigger');
30 | var src=$(trigger).attr('src');
31 | if (content.is(':visible')===true) {
32 | content.hide();
33 | summary.show();
34 | $(linkObj).addClass('closed').removeClass('opened');
35 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
36 | } else {
37 | content.show();
38 | summary.hide();
39 | $(linkObj).removeClass('closed').addClass('opened');
40 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
41 | }
42 | return false;
43 | }
44 |
45 | function updateStripes()
46 | {
47 | $('table.directory tr').
48 | removeClass('even').filter(':visible:even').addClass('even');
49 | }
50 |
51 | function toggleLevel(level)
52 | {
53 | $('table.directory tr').each(function() {
54 | var l = this.id.split('_').length-1;
55 | var i = $('#img'+this.id.substring(3));
56 | var a = $('#arr'+this.id.substring(3));
57 | if (l
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: File List
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
Here is a list of all documented files with brief descriptions:
69 |
[detail level 1 2 ]
70 | ▼ src
71 | CellularHelper.h
72 |
73 |
74 |
75 |
76 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/docs/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/folderclosed.png
--------------------------------------------------------------------------------
/docs/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/folderopen.png
--------------------------------------------------------------------------------
/docs/html/functions_func.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: Data Fields - Functions
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
64 |
65 |
66 |
- a -
74 |
75 |
76 |
- c -
84 |
85 |
86 |
- g -
145 |
146 |
147 |
- i -
160 |
161 |
162 |
- l -
170 |
171 |
172 |
- p -
187 |
188 |
189 |
- r -
197 |
198 |
199 |
- s -
204 |
205 |
206 |
- t -
215 |
216 |
217 |
222 |
223 |
224 |
--------------------------------------------------------------------------------
/docs/html/hierarchy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CellularHelper: Class Hierarchy
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | CellularHelper
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
40 |
47 |
48 |
49 |
50 |
54 |
55 |
56 |
57 |
58 |
61 |
62 |
63 |
67 |
68 |
This inheritance list is sorted roughly, but not completely, alphabetically:
69 |
[detail level 1 2 3 4 ]
82 |
83 |
84 |
85 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/docs/html/menu.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2017 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | GNU General Public License for more details.
16 |
17 | You should have received a copy of the GNU General Public License along
18 | with this program; if not, write to the Free Software Foundation, Inc.,
19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 |
21 | @licend The above is the entire license notice
22 | for the JavaScript code in this file
23 | */
24 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
25 | function makeTree(data,relPath) {
26 | var result='';
27 | if ('children' in data) {
28 | result+='';
35 | }
36 | return result;
37 | }
38 |
39 | $('#main-nav').append(makeTree(menudata,relPath));
40 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
41 | if (searchEnabled) {
42 | if (serverSide) {
43 | $('#main-menu').append(' ');
44 | } else {
45 | $('#main-menu').append(' ');
46 | }
47 | }
48 | $('#main-menu').smartmenus();
49 | }
50 | /* @license-end */
51 |
--------------------------------------------------------------------------------
/docs/html/menudata.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the
3 | JavaScript code in this file.
4 |
5 | Copyright (C) 1997-2019 by Dimitri van Heesch
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of version 2 of the GNU General Public License as published by
9 | the Free Software Foundation
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License along
17 | with this program; if not, write to the Free Software Foundation, Inc.,
18 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 |
20 | @licend The above is the entire license notice
21 | for the JavaScript code in this file
22 | */
23 | var menudata={children:[
24 | {text:"Main Page",url:"index.html"},
25 | {text:"Data Structures",url:"annotated.html",children:[
26 | {text:"Data Structures",url:"annotated.html"},
27 | {text:"Data Structure Index",url:"classes.html"},
28 | {text:"Class Hierarchy",url:"hierarchy.html"},
29 | {text:"Data Fields",url:"functions.html",children:[
30 | {text:"All",url:"functions.html",children:[
31 | {text:"a",url:"functions.html#index_a"},
32 | {text:"b",url:"functions.html#index_b"},
33 | {text:"c",url:"functions.html#index_c"},
34 | {text:"d",url:"functions.html#index_d"},
35 | {text:"e",url:"functions.html#index_e"},
36 | {text:"g",url:"functions.html#index_g"},
37 | {text:"i",url:"functions.html#index_i"},
38 | {text:"l",url:"functions.html#index_l"},
39 | {text:"m",url:"functions.html#index_m"},
40 | {text:"n",url:"functions.html#index_n"},
41 | {text:"o",url:"functions.html#index_o"},
42 | {text:"p",url:"functions.html#index_p"},
43 | {text:"q",url:"functions.html#index_q"},
44 | {text:"r",url:"functions.html#index_r"},
45 | {text:"s",url:"functions.html#index_s"},
46 | {text:"t",url:"functions.html#index_t"},
47 | {text:"u",url:"functions.html#index_u"},
48 | {text:"v",url:"functions.html#index_v"}]},
49 | {text:"Functions",url:"functions_func.html",children:[
50 | {text:"a",url:"functions_func.html#index_a"},
51 | {text:"c",url:"functions_func.html#index_c"},
52 | {text:"g",url:"functions_func.html#index_g"},
53 | {text:"i",url:"functions_func.html#index_i"},
54 | {text:"l",url:"functions_func.html#index_l"},
55 | {text:"p",url:"functions_func.html#index_p"},
56 | {text:"r",url:"functions_func.html#index_r"},
57 | {text:"s",url:"functions_func.html#index_s"},
58 | {text:"t",url:"functions_func.html#index_t"}]},
59 | {text:"Variables",url:"functions_vars.html",children:[
60 | {text:"a",url:"functions_vars.html#index_a"},
61 | {text:"b",url:"functions_vars.html#index_b"},
62 | {text:"c",url:"functions_vars.html#index_c"},
63 | {text:"d",url:"functions_vars.html#index_d"},
64 | {text:"e",url:"functions_vars.html#index_e"},
65 | {text:"i",url:"functions_vars.html#index_i"},
66 | {text:"l",url:"functions_vars.html#index_l"},
67 | {text:"m",url:"functions_vars.html#index_m"},
68 | {text:"n",url:"functions_vars.html#index_n"},
69 | {text:"o",url:"functions_vars.html#index_o"},
70 | {text:"q",url:"functions_vars.html#index_q"},
71 | {text:"r",url:"functions_vars.html#index_r"},
72 | {text:"s",url:"functions_vars.html#index_s"},
73 | {text:"u",url:"functions_vars.html#index_u"},
74 | {text:"v",url:"functions_vars.html#index_v"}]}]}]},
75 | {text:"Files",url:"files.html",children:[
76 | {text:"File List",url:"files.html"}]}]}
77 |
--------------------------------------------------------------------------------
/docs/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/nav_f.png
--------------------------------------------------------------------------------
/docs/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/nav_g.png
--------------------------------------------------------------------------------
/docs/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/nav_h.png
--------------------------------------------------------------------------------
/docs/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/open.png
--------------------------------------------------------------------------------
/docs/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['addkeyvalue_0',['addKeyValue',['../class_cellular_helper_environment_cell_data.html#aba6c3669482f0292d584e295b3dde7c5',1,'CellularHelperEnvironmentCellData']]],
4 | ['alt_1',['alt',['../class_cellular_helper_location_response.html#acb24fe19094623cffbcd3099c0a6b0c4',1,'CellularHelperLocationResponse']]],
5 | ['appendbuffertostring_2',['appendBufferToString',['../class_cellular_helper_class.html#a1420ad8cb8d8f5ce85f217d92c5ad9a3',1,'CellularHelperClass']]],
6 | ['arfcn_3',['arfcn',['../class_cellular_helper_environment_cell_data.html#a7be6c2fe58c2b24e6098c9e9733ec6b2',1,'CellularHelperEnvironmentCellData']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ber_4',['ber',['../class_cellular_helper_extended_qual_response.html#a0f2b33eaeb9e0bc48c5831804c935bd7',1,'CellularHelperExtendedQualResponse']]],
4 | ['bsic_5',['bsic',['../class_cellular_helper_environment_cell_data.html#a07ddcc0ead32fd5ce32301677c2721f6',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_10.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_10.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ulf_91',['ulf',['../class_cellular_helper_environment_cell_data.html#abccb0068906260bfa86b063049b11a9e',1,'CellularHelperEnvironmentCellData']]],
4 | ['uncertainty_92',['uncertainty',['../class_cellular_helper_location_response.html#ac0ec86e87aa7014fb7d6628c883361ed',1,'CellularHelperLocationResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_11.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_11.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['valid_93',['valid',['../class_cellular_helper_location_response.html#a27e7b0f1178c71cf261dc78bc2ed4633',1,'CellularHelperLocationResponse::valid()'],['../class_cellular_helper_c_r_e_g_response.html#ad4af5de2bc689ebcd409d172c7c3573f',1,'CellularHelperCREGResponse::valid()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cellularhelperclass_6',['CellularHelperClass',['../class_cellular_helper_class.html',1,'']]],
4 | ['cellularhelpercommonresponse_7',['CellularHelperCommonResponse',['../class_cellular_helper_common_response.html',1,'']]],
5 | ['cellularhelpercregresponse_8',['CellularHelperCREGResponse',['../class_cellular_helper_c_r_e_g_response.html',1,'']]],
6 | ['cellularhelperenvironmentcelldata_9',['CellularHelperEnvironmentCellData',['../class_cellular_helper_environment_cell_data.html',1,'']]],
7 | ['cellularhelperenvironmentresponse_10',['CellularHelperEnvironmentResponse',['../class_cellular_helper_environment_response.html',1,'CellularHelperEnvironmentResponse'],['../class_cellular_helper_environment_response.html#a30c6319b574e99199b6531c5ba8bbff2',1,'CellularHelperEnvironmentResponse::CellularHelperEnvironmentResponse()'],['../class_cellular_helper_environment_response.html#aaf3cb62d30d5c7ecf8da216604d89015',1,'CellularHelperEnvironmentResponse::CellularHelperEnvironmentResponse(CellularHelperEnvironmentCellData *neighbors, size_t numNeighbors)']]],
8 | ['cellularhelperenvironmentresponsestatic_11',['CellularHelperEnvironmentResponseStatic',['../class_cellular_helper_environment_response_static.html',1,'']]],
9 | ['cellularhelperextendedqualresponse_12',['CellularHelperExtendedQualResponse',['../class_cellular_helper_extended_qual_response.html',1,'']]],
10 | ['cellularhelperlocationresponse_13',['CellularHelperLocationResponse',['../class_cellular_helper_location_response.html',1,'']]],
11 | ['cellularhelperplusstringresponse_14',['CellularHelperPlusStringResponse',['../class_cellular_helper_plus_string_response.html',1,'']]],
12 | ['cellularhelperrssiqualresponse_15',['CellularHelperRSSIQualResponse',['../class_cellular_helper_r_s_s_i_qual_response.html',1,'']]],
13 | ['cellularhelperstringresponse_16',['CellularHelperStringResponse',['../class_cellular_helper_string_response.html',1,'']]],
14 | ['ci_17',['ci',['../class_cellular_helper_environment_cell_data.html#a37684813302019c96e2ff7f504375187',1,'CellularHelperEnvironmentCellData::ci()'],['../class_cellular_helper_c_r_e_g_response.html#a75a560ecd4358aae316c7f4e63073af8',1,'CellularHelperCREGResponse::ci()']]],
15 | ['clear_18',['clear',['../class_cellular_helper_environment_response.html#afb544e829eedfbaf4d4b657b9619db0f',1,'CellularHelperEnvironmentResponse']]],
16 | ['command_19',['command',['../class_cellular_helper_plus_string_response.html#aab2c1442c95e90948f2a9a1a01bf9424',1,'CellularHelperPlusStringResponse']]],
17 | ['curdataindex_20',['curDataIndex',['../class_cellular_helper_environment_response.html#ab68b3f954c6c0430b00857781cb8c215',1,'CellularHelperEnvironmentResponse']]],
18 | ['cellular_20helper_21',['Cellular Helper',['../index.html',1,'']]]
19 | ];
20 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['default_5ftimeout_22',['DEFAULT_TIMEOUT',['../class_cellular_helper_class.html#ae86c06d88fb15d0c86ff324bd3d8cf87',1,'CellularHelperClass']]],
4 | ['dlf_23',['dlf',['../class_cellular_helper_environment_cell_data.html#a955358e1e725c6fc0c1a6abc69ae4cdc',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ecn0_24',['ecn0',['../class_cellular_helper_extended_qual_response.html#a9eab9a07dfbf15bd3bba499cb580de85',1,'CellularHelperExtendedQualResponse']]],
4 | ['enabledebug_25',['enableDebug',['../class_cellular_helper_common_response.html#addab157ed764a36df8c935f50eb787e6',1,'CellularHelperCommonResponse']]],
5 | ['environment_5fserving_5fcell_26',['ENVIRONMENT_SERVING_CELL',['../class_cellular_helper_class.html#abd463f53d7b73e3cd0a2491b8b3c1350',1,'CellularHelperClass']]],
6 | ['environment_5fserving_5fcell_5fand_5fneighbors_27',['ENVIRONMENT_SERVING_CELL_AND_NEIGHBORS',['../class_cellular_helper_class.html#a2945810d6200a68532bbd7b1c83651dc',1,'CellularHelperClass']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['getband_28',['getBand',['../class_cellular_helper_environment_cell_data.html#aff6f21bb47b7e5808230690e6df41dfe',1,'CellularHelperEnvironmentCellData']]],
4 | ['getbandstring_29',['getBandString',['../class_cellular_helper_environment_cell_data.html#af0e0c3ddf6e8461ba67207070c54a986',1,'CellularHelperEnvironmentCellData']]],
5 | ['getbars_30',['getBars',['../class_cellular_helper_environment_cell_data.html#aa92eca8cda0f87b9bd8be4135f80bc6c',1,'CellularHelperEnvironmentCellData']]],
6 | ['getcreg_31',['getCREG',['../class_cellular_helper_class.html#a3cbd953dc606ded587c389d041c02b60',1,'CellularHelperClass']]],
7 | ['getdoublequotedpart_32',['getDoubleQuotedPart',['../class_cellular_helper_plus_string_response.html#a9df55cfbb661b756e262b04ad2395770',1,'CellularHelperPlusStringResponse']]],
8 | ['getenvironment_33',['getEnvironment',['../class_cellular_helper_class.html#a8649727a474895761a5e76f3bf194be0',1,'CellularHelperClass']]],
9 | ['getextendedqual_34',['getExtendedQual',['../class_cellular_helper_class.html#a2cf4ec66557254498d5d7600ea66bd74',1,'CellularHelperClass']]],
10 | ['getfirmwareversion_35',['getFirmwareVersion',['../class_cellular_helper_class.html#a628bf30b49d5ce508b0824400d4e5fa2',1,'CellularHelperClass']]],
11 | ['geticcid_36',['getICCID',['../class_cellular_helper_class.html#a9011c3c5c75a8082635662e6d46674fd',1,'CellularHelperClass']]],
12 | ['getimei_37',['getIMEI',['../class_cellular_helper_class.html#a6d9497a2a4ea89386686b64552536ff6',1,'CellularHelperClass']]],
13 | ['getimsi_38',['getIMSI',['../class_cellular_helper_class.html#ab3fc38c242e5ca9da7b7c9650a81060d',1,'CellularHelperClass']]],
14 | ['getlocation_39',['getLocation',['../class_cellular_helper_class.html#a4b7c0ca270ee2f6c603c6cc41545faf0',1,'CellularHelperClass']]],
15 | ['getmanufacturer_40',['getManufacturer',['../class_cellular_helper_class.html#a16c1da329a92608c8842a3446383c06b',1,'CellularHelperClass']]],
16 | ['getmodel_41',['getModel',['../class_cellular_helper_class.html#a6253d0ec0ccd1324a60880ad86dd7ec6',1,'CellularHelperClass']]],
17 | ['getnumneighbors_42',['getNumNeighbors',['../class_cellular_helper_environment_response.html#a684343a340f494e05ef4061043eed3ea',1,'CellularHelperEnvironmentResponse']]],
18 | ['getoperatorname_43',['getOperatorName',['../class_cellular_helper_class.html#ab94954513ac81bc2534c1e0679c51c20',1,'CellularHelperClass']]],
19 | ['getorderingcode_44',['getOrderingCode',['../class_cellular_helper_class.html#a3912f906870f0554ef5cbabd7d48cf8d',1,'CellularHelperClass']]],
20 | ['getrssi_45',['getRSSI',['../class_cellular_helper_environment_cell_data.html#aa5038a00447e50ae679b5aabbf7fa056',1,'CellularHelperEnvironmentCellData']]],
21 | ['getrssiqual_46',['getRSSIQual',['../class_cellular_helper_class.html#af9012f92f58f5151cc7006aceadd311b',1,'CellularHelperClass']]]
22 | ];
23 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['islte_47',['isLTE',['../class_cellular_helper_class.html#ad92a98cd69ce11fbd7801109fd276223',1,'CellularHelperClass']]],
4 | ['issara_5fr4_48',['isSARA_R4',['../class_cellular_helper_class.html#ad6f2d995ca3686fd5d5d820bb6548848',1,'CellularHelperClass']]],
5 | ['isumts_49',['isUMTS',['../class_cellular_helper_environment_cell_data.html#a0978883a5232976b6356b11531176ff8',1,'CellularHelperEnvironmentCellData']]],
6 | ['isvalid_50',['isValid',['../class_cellular_helper_environment_cell_data.html#af8a7a2c360f574d663efcf3367a14d3f',1,'CellularHelperEnvironmentCellData::isValid()'],['../class_cellular_helper_location_response.html#a32fc01d4e3128419e66457ee683caac8',1,'CellularHelperLocationResponse::isValid()'],['../class_cellular_helper_c_r_e_g_response.html#a41707f3cf7b9eb78e7997d988f7d8f41',1,'CellularHelperCREGResponse::isValid()']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lac_51',['lac',['../class_cellular_helper_environment_cell_data.html#ad2d698a1dc0dd27e16846ca8b3289083',1,'CellularHelperEnvironmentCellData::lac()'],['../class_cellular_helper_c_r_e_g_response.html#a1c210b8d102814b147fc017d590cb652',1,'CellularHelperCREGResponse::lac()']]],
4 | ['lat_52',['lat',['../class_cellular_helper_location_response.html#a7983c95974e29a24577cd1b9cae34597',1,'CellularHelperLocationResponse']]],
5 | ['logcellulardebug_53',['logCellularDebug',['../class_cellular_helper_common_response.html#aca5a4a6a48c7df37fd4e2c0c217736f3',1,'CellularHelperCommonResponse']]],
6 | ['logresponse_54',['logResponse',['../class_cellular_helper_environment_response.html#acd01b68d7cd0b82efb38a60aa78ae684',1,'CellularHelperEnvironmentResponse']]],
7 | ['lon_55',['lon',['../class_cellular_helper_location_response.html#a02d6f66f386a7beddd0c159dc24aeee5',1,'CellularHelperLocationResponse']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['mcc_56',['mcc',['../class_cellular_helper_environment_cell_data.html#a05d3778b673ed91386d6bfa92cd74ad3',1,'CellularHelperEnvironmentCellData']]],
4 | ['mnc_57',['mnc',['../class_cellular_helper_environment_cell_data.html#a0c84cc35edca9790011ff8f009d00828',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['neighbors_58',['neighbors',['../class_cellular_helper_environment_response.html#ab27bc8f1644c1f61f121ee494748ddd7',1,'CellularHelperEnvironmentResponse']]],
4 | ['numneighbors_59',['numNeighbors',['../class_cellular_helper_environment_response.html#ae2dab2b3021386a1ae3a3de0eafd57d0',1,'CellularHelperEnvironmentResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_a.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operator_5fname_5flong_5fcphs_60',['OPERATOR_NAME_LONG_CPHS',['../class_cellular_helper_class.html#acb2b31c1ef6269085302a7d25bff8a57',1,'CellularHelperClass']]],
4 | ['operator_5fname_5flong_5feons_61',['OPERATOR_NAME_LONG_EONS',['../class_cellular_helper_class.html#a757d5bcfbdbfb4c8d44bb7a40e5c189e',1,'CellularHelperClass']]],
5 | ['operator_5fname_5flong_5fnetwork_5foperator_62',['OPERATOR_NAME_LONG_NETWORK_OPERATOR',['../class_cellular_helper_class.html#a52ee866204b3914e8df302de56f46eae',1,'CellularHelperClass']]],
6 | ['operator_5fname_5flong_5fnitz_63',['OPERATOR_NAME_LONG_NITZ',['../class_cellular_helper_class.html#adfca63770923dc60ca1e615c7af90bba',1,'CellularHelperClass']]],
7 | ['operator_5fname_5flong_5from_64',['OPERATOR_NAME_LONG_ROM',['../class_cellular_helper_class.html#a7bea96108f54089ed072012a1e131f33',1,'CellularHelperClass']]],
8 | ['operator_5fname_5fnumeric_65',['OPERATOR_NAME_NUMERIC',['../class_cellular_helper_class.html#aebd6b29f234b579a04d6dcd63664207f',1,'CellularHelperClass']]],
9 | ['operator_5fname_5fservice_5fprovider_66',['OPERATOR_NAME_SERVICE_PROVIDER',['../class_cellular_helper_class.html#ab46b11df1fa964d883a92fabd84f6dc0',1,'CellularHelperClass']]],
10 | ['operator_5fname_5fshort_5fcphs_67',['OPERATOR_NAME_SHORT_CPHS',['../class_cellular_helper_class.html#af43eb53fbe93ff783e6aab158235e875',1,'CellularHelperClass']]],
11 | ['operator_5fname_5fshort_5feons_68',['OPERATOR_NAME_SHORT_EONS',['../class_cellular_helper_class.html#a6b0b9acd3abf1a6c20d5ca1612b25680',1,'CellularHelperClass']]],
12 | ['operator_5fname_5fshort_5fnetwork_5foperator_69',['OPERATOR_NAME_SHORT_NETWORK_OPERATOR',['../class_cellular_helper_class.html#a9ee7070ab688dfe84f800c4d943d21fe',1,'CellularHelperClass']]],
13 | ['operator_5fname_5fshort_5fnitz_70',['OPERATOR_NAME_SHORT_NITZ',['../class_cellular_helper_class.html#a7022e0dff705864f872a4ada1140d3a6',1,'CellularHelperClass']]],
14 | ['operator_5fname_5fshort_5from_71',['OPERATOR_NAME_SHORT_ROM',['../class_cellular_helper_class.html#a92bc1427f0cc1e3e55c0fbee0ce98cf2',1,'CellularHelperClass']]]
15 | ];
16 |
--------------------------------------------------------------------------------
/docs/html/search/all_b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['parse_72',['parse',['../class_cellular_helper_common_response.html#a38665d49da89d413c521f0220eb68531',1,'CellularHelperCommonResponse::parse()'],['../class_cellular_helper_string_response.html#add8574837d7cb82cdd4b8a077c1c9dac',1,'CellularHelperStringResponse::parse()'],['../class_cellular_helper_plus_string_response.html#a54d24348b25b3720efb46be8858b7dbc',1,'CellularHelperPlusStringResponse::parse()'],['../class_cellular_helper_environment_cell_data.html#aba8e5ec7d00aeec2083dca3dc48e1c90',1,'CellularHelperEnvironmentCellData::parse()'],['../class_cellular_helper_environment_response.html#a43684dcdf4534e86005b27edfd9ebf4f',1,'CellularHelperEnvironmentResponse::parse()']]],
4 | ['postprocess_73',['postProcess',['../class_cellular_helper_r_s_s_i_qual_response.html#a99c042f1dfe517ad61c792cd8be83a01',1,'CellularHelperRSSIQualResponse::postProcess()'],['../class_cellular_helper_extended_qual_response.html#af4919331917b0a3b7abc18367245339b',1,'CellularHelperExtendedQualResponse::postProcess()'],['../class_cellular_helper_location_response.html#a166c45c752ebec4ad96fb4626e7d39a3',1,'CellularHelperLocationResponse::postProcess()'],['../class_cellular_helper_c_r_e_g_response.html#ad8c9d7055161b482802c46fe6ece1fa3',1,'CellularHelperCREGResponse::postProcess()']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_c.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['qual_74',['qual',['../class_cellular_helper_r_s_s_i_qual_response.html#a7a09fd52dea5d5c262e603f06b40a2ac',1,'CellularHelperRSSIQualResponse']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rat_75',['rat',['../class_cellular_helper_c_r_e_g_response.html#a8aaab9f59a0bc6b1b701f0048d8c4fa5',1,'CellularHelperCREGResponse']]],
4 | ['resp_76',['resp',['../class_cellular_helper_common_response.html#ae4e7bcdbd486d4b3dd8a08d9d5a5fdae',1,'CellularHelperCommonResponse']]],
5 | ['responsecallback_77',['responseCallback',['../class_cellular_helper_class.html#a827e147bc93efd47114d56a9bd01439c',1,'CellularHelperClass']]],
6 | ['rscp_78',['rscp',['../class_cellular_helper_extended_qual_response.html#acc90ff433a0148cbf45b246d2ebde5f6',1,'CellularHelperExtendedQualResponse']]],
7 | ['rscplev_79',['rscpLev',['../class_cellular_helper_environment_cell_data.html#a0c5909a99db9c352e37b62f655544c28',1,'CellularHelperEnvironmentCellData']]],
8 | ['rsrp_80',['rsrp',['../class_cellular_helper_extended_qual_response.html#a1ce04bc5630f64d1954653d0ee94d22e',1,'CellularHelperExtendedQualResponse']]],
9 | ['rsrq_81',['rsrq',['../class_cellular_helper_extended_qual_response.html#a63e5f5c464cff37f5c5c7738cde811b5',1,'CellularHelperExtendedQualResponse']]],
10 | ['rssi_82',['rssi',['../class_cellular_helper_r_s_s_i_qual_response.html#a79e1a4de64d03ff352645eb38f9fca21',1,'CellularHelperRSSIQualResponse']]],
11 | ['rssitobars_83',['rssiToBars',['../class_cellular_helper_class.html#a85e5aafab6df5bca137368586e6fdf8c',1,'CellularHelperClass']]],
12 | ['rxlev_84',['rxlev',['../class_cellular_helper_extended_qual_response.html#a5b932edd480c1d4d472da69fdb08bbd0',1,'CellularHelperExtendedQualResponse::rxlev()'],['../class_cellular_helper_environment_cell_data.html#a2db41cdc01ddf9be67ea5e615070e039',1,'CellularHelperEnvironmentCellData::rxlev()']]]
13 | ];
14 |
--------------------------------------------------------------------------------
/docs/html/search/all_e.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_e.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['selectoperator_85',['selectOperator',['../class_cellular_helper_class.html#a784f5bfa43caacc2fe1f9e98e66142dc',1,'CellularHelperClass']]],
4 | ['service_86',['service',['../class_cellular_helper_environment_response.html#a15d7a7576ef6fbec750afc5d00a52cdf',1,'CellularHelperEnvironmentResponse']]],
5 | ['stat_87',['stat',['../class_cellular_helper_c_r_e_g_response.html#ac1ec28dc7185aa917dc546996e487851',1,'CellularHelperCREGResponse']]],
6 | ['staticneighbors_88',['staticNeighbors',['../class_cellular_helper_environment_response_static.html#ad51eb94bee7651ccf7a6296d7081d1a3',1,'CellularHelperEnvironmentResponseStatic']]],
7 | ['string_89',['string',['../class_cellular_helper_string_response.html#ac4075df768ca9c6c01c3b5070296ef7b',1,'CellularHelperStringResponse::string()'],['../class_cellular_helper_plus_string_response.html#a24f361a57f89ddc2c3200dbb0ca86af4',1,'CellularHelperPlusStringResponse::string()']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/docs/html/search/all_f.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/all_f.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['tostring_90',['toString',['../class_cellular_helper_r_s_s_i_qual_response.html#a1481ecd783b1f0832bb96ae712f8ae99',1,'CellularHelperRSSIQualResponse::toString()'],['../class_cellular_helper_extended_qual_response.html#a669a73cc39b3c58aee88820f7449154c',1,'CellularHelperExtendedQualResponse::toString()'],['../class_cellular_helper_environment_cell_data.html#a84420fa7eac89beea98bc021524ca7fa',1,'CellularHelperEnvironmentCellData::toString()'],['../class_cellular_helper_location_response.html#a4fb04ef76fb545b7f7572fbbfc023b22',1,'CellularHelperLocationResponse::toString()'],['../class_cellular_helper_c_r_e_g_response.html#ab81e2b3400612e6b4f7cc2232e323df9',1,'CellularHelperCREGResponse::toString()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cellularhelperclass_94',['CellularHelperClass',['../class_cellular_helper_class.html',1,'']]],
4 | ['cellularhelpercommonresponse_95',['CellularHelperCommonResponse',['../class_cellular_helper_common_response.html',1,'']]],
5 | ['cellularhelpercregresponse_96',['CellularHelperCREGResponse',['../class_cellular_helper_c_r_e_g_response.html',1,'']]],
6 | ['cellularhelperenvironmentcelldata_97',['CellularHelperEnvironmentCellData',['../class_cellular_helper_environment_cell_data.html',1,'']]],
7 | ['cellularhelperenvironmentresponse_98',['CellularHelperEnvironmentResponse',['../class_cellular_helper_environment_response.html',1,'']]],
8 | ['cellularhelperenvironmentresponsestatic_99',['CellularHelperEnvironmentResponseStatic',['../class_cellular_helper_environment_response_static.html',1,'']]],
9 | ['cellularhelperextendedqualresponse_100',['CellularHelperExtendedQualResponse',['../class_cellular_helper_extended_qual_response.html',1,'']]],
10 | ['cellularhelperlocationresponse_101',['CellularHelperLocationResponse',['../class_cellular_helper_location_response.html',1,'']]],
11 | ['cellularhelperplusstringresponse_102',['CellularHelperPlusStringResponse',['../class_cellular_helper_plus_string_response.html',1,'']]],
12 | ['cellularhelperrssiqualresponse_103',['CellularHelperRSSIQualResponse',['../class_cellular_helper_r_s_s_i_qual_response.html',1,'']]],
13 | ['cellularhelperstringresponse_104',['CellularHelperStringResponse',['../class_cellular_helper_string_response.html',1,'']]]
14 | ];
15 |
--------------------------------------------------------------------------------
/docs/html/search/classes_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/classes_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['logclass_97',['LogClass',['../class_log_class.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/search/close.png
--------------------------------------------------------------------------------
/docs/html/search/functions_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['addkeyvalue_105',['addKeyValue',['../class_cellular_helper_environment_cell_data.html#aba6c3669482f0292d584e295b3dde7c5',1,'CellularHelperEnvironmentCellData']]],
4 | ['appendbuffertostring_106',['appendBufferToString',['../class_cellular_helper_class.html#a1420ad8cb8d8f5ce85f217d92c5ad9a3',1,'CellularHelperClass']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cellularhelperenvironmentresponse_107',['CellularHelperEnvironmentResponse',['../class_cellular_helper_environment_response.html#a30c6319b574e99199b6531c5ba8bbff2',1,'CellularHelperEnvironmentResponse::CellularHelperEnvironmentResponse()'],['../class_cellular_helper_environment_response.html#aaf3cb62d30d5c7ecf8da216604d89015',1,'CellularHelperEnvironmentResponse::CellularHelperEnvironmentResponse(CellularHelperEnvironmentCellData *neighbors, size_t numNeighbors)']]],
4 | ['clear_108',['clear',['../class_cellular_helper_environment_response.html#afb544e829eedfbaf4d4b657b9619db0f',1,'CellularHelperEnvironmentResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['getband_109',['getBand',['../class_cellular_helper_environment_cell_data.html#aff6f21bb47b7e5808230690e6df41dfe',1,'CellularHelperEnvironmentCellData']]],
4 | ['getbandstring_110',['getBandString',['../class_cellular_helper_environment_cell_data.html#af0e0c3ddf6e8461ba67207070c54a986',1,'CellularHelperEnvironmentCellData']]],
5 | ['getbars_111',['getBars',['../class_cellular_helper_environment_cell_data.html#aa92eca8cda0f87b9bd8be4135f80bc6c',1,'CellularHelperEnvironmentCellData']]],
6 | ['getcreg_112',['getCREG',['../class_cellular_helper_class.html#a3cbd953dc606ded587c389d041c02b60',1,'CellularHelperClass']]],
7 | ['getdoublequotedpart_113',['getDoubleQuotedPart',['../class_cellular_helper_plus_string_response.html#a9df55cfbb661b756e262b04ad2395770',1,'CellularHelperPlusStringResponse']]],
8 | ['getenvironment_114',['getEnvironment',['../class_cellular_helper_class.html#a8649727a474895761a5e76f3bf194be0',1,'CellularHelperClass']]],
9 | ['getextendedqual_115',['getExtendedQual',['../class_cellular_helper_class.html#a2cf4ec66557254498d5d7600ea66bd74',1,'CellularHelperClass']]],
10 | ['getfirmwareversion_116',['getFirmwareVersion',['../class_cellular_helper_class.html#a628bf30b49d5ce508b0824400d4e5fa2',1,'CellularHelperClass']]],
11 | ['geticcid_117',['getICCID',['../class_cellular_helper_class.html#a9011c3c5c75a8082635662e6d46674fd',1,'CellularHelperClass']]],
12 | ['getimei_118',['getIMEI',['../class_cellular_helper_class.html#a6d9497a2a4ea89386686b64552536ff6',1,'CellularHelperClass']]],
13 | ['getimsi_119',['getIMSI',['../class_cellular_helper_class.html#ab3fc38c242e5ca9da7b7c9650a81060d',1,'CellularHelperClass']]],
14 | ['getlocation_120',['getLocation',['../class_cellular_helper_class.html#a4b7c0ca270ee2f6c603c6cc41545faf0',1,'CellularHelperClass']]],
15 | ['getmanufacturer_121',['getManufacturer',['../class_cellular_helper_class.html#a16c1da329a92608c8842a3446383c06b',1,'CellularHelperClass']]],
16 | ['getmodel_122',['getModel',['../class_cellular_helper_class.html#a6253d0ec0ccd1324a60880ad86dd7ec6',1,'CellularHelperClass']]],
17 | ['getnumneighbors_123',['getNumNeighbors',['../class_cellular_helper_environment_response.html#a684343a340f494e05ef4061043eed3ea',1,'CellularHelperEnvironmentResponse']]],
18 | ['getoperatorname_124',['getOperatorName',['../class_cellular_helper_class.html#ab94954513ac81bc2534c1e0679c51c20',1,'CellularHelperClass']]],
19 | ['getorderingcode_125',['getOrderingCode',['../class_cellular_helper_class.html#a3912f906870f0554ef5cbabd7d48cf8d',1,'CellularHelperClass']]],
20 | ['getrssi_126',['getRSSI',['../class_cellular_helper_environment_cell_data.html#aa5038a00447e50ae679b5aabbf7fa056',1,'CellularHelperEnvironmentCellData']]],
21 | ['getrssiqual_127',['getRSSIQual',['../class_cellular_helper_class.html#af9012f92f58f5151cc7006aceadd311b',1,'CellularHelperClass']]]
22 | ];
23 |
--------------------------------------------------------------------------------
/docs/html/search/functions_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['islte_128',['isLTE',['../class_cellular_helper_class.html#ad92a98cd69ce11fbd7801109fd276223',1,'CellularHelperClass']]],
4 | ['issara_5fr4_129',['isSARA_R4',['../class_cellular_helper_class.html#ad6f2d995ca3686fd5d5d820bb6548848',1,'CellularHelperClass']]],
5 | ['isvalid_130',['isValid',['../class_cellular_helper_environment_cell_data.html#af8a7a2c360f574d663efcf3367a14d3f',1,'CellularHelperEnvironmentCellData::isValid()'],['../class_cellular_helper_location_response.html#a32fc01d4e3128419e66457ee683caac8',1,'CellularHelperLocationResponse::isValid()'],['../class_cellular_helper_c_r_e_g_response.html#a41707f3cf7b9eb78e7997d988f7d8f41',1,'CellularHelperCREGResponse::isValid()']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/functions_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['logcellulardebug_131',['logCellularDebug',['../class_cellular_helper_common_response.html#aca5a4a6a48c7df37fd4e2c0c217736f3',1,'CellularHelperCommonResponse']]],
4 | ['logresponse_132',['logResponse',['../class_cellular_helper_environment_response.html#acd01b68d7cd0b82efb38a60aa78ae684',1,'CellularHelperEnvironmentResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['parse_133',['parse',['../class_cellular_helper_common_response.html#a38665d49da89d413c521f0220eb68531',1,'CellularHelperCommonResponse::parse()'],['../class_cellular_helper_string_response.html#add8574837d7cb82cdd4b8a077c1c9dac',1,'CellularHelperStringResponse::parse()'],['../class_cellular_helper_plus_string_response.html#a54d24348b25b3720efb46be8858b7dbc',1,'CellularHelperPlusStringResponse::parse()'],['../class_cellular_helper_environment_cell_data.html#aba8e5ec7d00aeec2083dca3dc48e1c90',1,'CellularHelperEnvironmentCellData::parse()'],['../class_cellular_helper_environment_response.html#a43684dcdf4534e86005b27edfd9ebf4f',1,'CellularHelperEnvironmentResponse::parse()']]],
4 | ['postprocess_134',['postProcess',['../class_cellular_helper_r_s_s_i_qual_response.html#a99c042f1dfe517ad61c792cd8be83a01',1,'CellularHelperRSSIQualResponse::postProcess()'],['../class_cellular_helper_extended_qual_response.html#af4919331917b0a3b7abc18367245339b',1,'CellularHelperExtendedQualResponse::postProcess()'],['../class_cellular_helper_location_response.html#a166c45c752ebec4ad96fb4626e7d39a3',1,'CellularHelperLocationResponse::postProcess()'],['../class_cellular_helper_c_r_e_g_response.html#ad8c9d7055161b482802c46fe6ece1fa3',1,'CellularHelperCREGResponse::postProcess()']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['responsecallback_135',['responseCallback',['../class_cellular_helper_class.html#a827e147bc93efd47114d56a9bd01439c',1,'CellularHelperClass']]],
4 | ['rssitobars_136',['rssiToBars',['../class_cellular_helper_class.html#a85e5aafab6df5bca137368586e6fdf8c',1,'CellularHelperClass']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/functions_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['selectoperator_137',['selectOperator',['../class_cellular_helper_class.html#a784f5bfa43caacc2fe1f9e98e66142dc',1,'CellularHelperClass']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/functions_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/functions_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['tostring_138',['toString',['../class_cellular_helper_r_s_s_i_qual_response.html#a1481ecd783b1f0832bb96ae712f8ae99',1,'CellularHelperRSSIQualResponse::toString()'],['../class_cellular_helper_extended_qual_response.html#a669a73cc39b3c58aee88820f7449154c',1,'CellularHelperExtendedQualResponse::toString()'],['../class_cellular_helper_environment_cell_data.html#a84420fa7eac89beea98bc021524ca7fa',1,'CellularHelperEnvironmentCellData::toString()'],['../class_cellular_helper_location_response.html#a4fb04ef76fb545b7f7572fbbfc023b22',1,'CellularHelperLocationResponse::toString()'],['../class_cellular_helper_c_r_e_g_response.html#ab81e2b3400612e6b4f7cc2232e323df9',1,'CellularHelperCREGResponse::toString()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/search/mag_sel.png
--------------------------------------------------------------------------------
/docs/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/html/search/pages_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cellular_20helper_188',['Cellular Helper',['../index.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/search.css:
--------------------------------------------------------------------------------
1 | /*---------------- Search Box */
2 |
3 | #FSearchBox {
4 | float: left;
5 | }
6 |
7 | #MSearchBox {
8 | white-space : nowrap;
9 | float: none;
10 | margin-top: 8px;
11 | right: 0px;
12 | width: 170px;
13 | height: 24px;
14 | z-index: 102;
15 | }
16 |
17 | #MSearchBox .left
18 | {
19 | display:block;
20 | position:absolute;
21 | left:10px;
22 | width:20px;
23 | height:19px;
24 | background:url('search_l.png') no-repeat;
25 | background-position:right;
26 | }
27 |
28 | #MSearchSelect {
29 | display:block;
30 | position:absolute;
31 | width:20px;
32 | height:19px;
33 | }
34 |
35 | .left #MSearchSelect {
36 | left:4px;
37 | }
38 |
39 | .right #MSearchSelect {
40 | right:5px;
41 | }
42 |
43 | #MSearchField {
44 | display:block;
45 | position:absolute;
46 | height:19px;
47 | background:url('search_m.png') repeat-x;
48 | border:none;
49 | width:115px;
50 | margin-left:20px;
51 | padding-left:4px;
52 | color: #909090;
53 | outline: none;
54 | font: 9pt Arial, Verdana, sans-serif;
55 | -webkit-border-radius: 0px;
56 | }
57 |
58 | #FSearchBox #MSearchField {
59 | margin-left:15px;
60 | }
61 |
62 | #MSearchBox .right {
63 | display:block;
64 | position:absolute;
65 | right:10px;
66 | top:8px;
67 | width:20px;
68 | height:19px;
69 | background:url('search_r.png') no-repeat;
70 | background-position:left;
71 | }
72 |
73 | #MSearchClose {
74 | display: none;
75 | position: absolute;
76 | top: 4px;
77 | background : none;
78 | border: none;
79 | margin: 0px 4px 0px 0px;
80 | padding: 0px 0px;
81 | outline: none;
82 | }
83 |
84 | .left #MSearchClose {
85 | left: 6px;
86 | }
87 |
88 | .right #MSearchClose {
89 | right: 2px;
90 | }
91 |
92 | .MSearchBoxActive #MSearchField {
93 | color: #000000;
94 | }
95 |
96 | /*---------------- Search filter selection */
97 |
98 | #MSearchSelectWindow {
99 | display: none;
100 | position: absolute;
101 | left: 0; top: 0;
102 | border: 1px solid #90A5CE;
103 | background-color: #F9FAFC;
104 | z-index: 10001;
105 | padding-top: 4px;
106 | padding-bottom: 4px;
107 | -moz-border-radius: 4px;
108 | -webkit-border-top-left-radius: 4px;
109 | -webkit-border-top-right-radius: 4px;
110 | -webkit-border-bottom-left-radius: 4px;
111 | -webkit-border-bottom-right-radius: 4px;
112 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
113 | }
114 |
115 | .SelectItem {
116 | font: 8pt Arial, Verdana, sans-serif;
117 | padding-left: 2px;
118 | padding-right: 12px;
119 | border: 0px;
120 | }
121 |
122 | span.SelectionMark {
123 | margin-right: 4px;
124 | font-family: monospace;
125 | outline-style: none;
126 | text-decoration: none;
127 | }
128 |
129 | a.SelectItem {
130 | display: block;
131 | outline-style: none;
132 | color: #000000;
133 | text-decoration: none;
134 | padding-left: 6px;
135 | padding-right: 12px;
136 | }
137 |
138 | a.SelectItem:focus,
139 | a.SelectItem:active {
140 | color: #000000;
141 | outline-style: none;
142 | text-decoration: none;
143 | }
144 |
145 | a.SelectItem:hover {
146 | color: #FFFFFF;
147 | background-color: #3D578C;
148 | outline-style: none;
149 | text-decoration: none;
150 | cursor: pointer;
151 | display: block;
152 | }
153 |
154 | /*---------------- Search results window */
155 |
156 | iframe#MSearchResults {
157 | width: 60ex;
158 | height: 15em;
159 | }
160 |
161 | #MSearchResultsWindow {
162 | display: none;
163 | position: absolute;
164 | left: 0; top: 0;
165 | border: 1px solid #000;
166 | background-color: #EEF1F7;
167 | z-index:10000;
168 | }
169 |
170 | /* ----------------------------------- */
171 |
172 |
173 | #SRIndex {
174 | clear:both;
175 | padding-bottom: 15px;
176 | }
177 |
178 | .SREntry {
179 | font-size: 10pt;
180 | padding-left: 1ex;
181 | }
182 |
183 | .SRPage .SREntry {
184 | font-size: 8pt;
185 | padding: 1px 5px;
186 | }
187 |
188 | body.SRPage {
189 | margin: 5px 2px;
190 | }
191 |
192 | .SRChildren {
193 | padding-left: 3ex; padding-bottom: .5em
194 | }
195 |
196 | .SRPage .SRChildren {
197 | display: none;
198 | }
199 |
200 | .SRSymbol {
201 | font-weight: bold;
202 | color: #425E97;
203 | font-family: Arial, Verdana, sans-serif;
204 | text-decoration: none;
205 | outline: none;
206 | }
207 |
208 | a.SRScope {
209 | display: block;
210 | color: #425E97;
211 | font-family: Arial, Verdana, sans-serif;
212 | text-decoration: none;
213 | outline: none;
214 | }
215 |
216 | a.SRSymbol:focus, a.SRSymbol:active,
217 | a.SRScope:focus, a.SRScope:active {
218 | text-decoration: underline;
219 | }
220 |
221 | span.SRScope {
222 | padding-left: 4px;
223 | }
224 |
225 | .SRPage .SRStatus {
226 | padding: 2px 5px;
227 | font-size: 8pt;
228 | font-style: italic;
229 | }
230 |
231 | .SRResult {
232 | display: none;
233 | }
234 |
235 | DIV.searchresults {
236 | margin-left: 10px;
237 | margin-right: 10px;
238 | }
239 |
240 | /*---------------- External search page results */
241 |
242 | .searchresult {
243 | background-color: #F0F3F8;
244 | }
245 |
246 | .pages b {
247 | color: white;
248 | padding: 5px 5px 3px 5px;
249 | background-image: url("../tab_a.png");
250 | background-repeat: repeat-x;
251 | text-shadow: 0 1px 1px #000000;
252 | }
253 |
254 | .pages {
255 | line-height: 17px;
256 | margin-left: 4px;
257 | text-decoration: none;
258 | }
259 |
260 | .hl {
261 | font-weight: bold;
262 | }
263 |
264 | #searchresults {
265 | margin-bottom: 20px;
266 | }
267 |
268 | .searchpages {
269 | margin-top: 10px;
270 | }
271 |
272 |
--------------------------------------------------------------------------------
/docs/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/search/search_l.png
--------------------------------------------------------------------------------
/docs/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/search/search_m.png
--------------------------------------------------------------------------------
/docs/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/search/search_r.png
--------------------------------------------------------------------------------
/docs/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "abcdegilmnopqrstuv",
4 | 1: "c",
5 | 2: "acgilprst",
6 | 3: "abcdeilmnoqrsuv",
7 | 4: "c"
8 | };
9 |
10 | var indexSectionNames =
11 | {
12 | 0: "all",
13 | 1: "classes",
14 | 2: "functions",
15 | 3: "variables",
16 | 4: "pages"
17 | };
18 |
19 | var indexSectionLabels =
20 | {
21 | 0: "All",
22 | 1: "Data Structures",
23 | 2: "Functions",
24 | 3: "Variables",
25 | 4: "Pages"
26 | };
27 |
28 |
--------------------------------------------------------------------------------
/docs/html/search/variables_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['alt_139',['alt',['../class_cellular_helper_location_response.html#acb24fe19094623cffbcd3099c0a6b0c4',1,'CellularHelperLocationResponse']]],
4 | ['arfcn_140',['arfcn',['../class_cellular_helper_environment_cell_data.html#a7be6c2fe58c2b24e6098c9e9733ec6b2',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ber_141',['ber',['../class_cellular_helper_extended_qual_response.html#a0f2b33eaeb9e0bc48c5831804c935bd7',1,'CellularHelperExtendedQualResponse']]],
4 | ['bsic_142',['bsic',['../class_cellular_helper_environment_cell_data.html#a07ddcc0ead32fd5ce32301677c2721f6',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ci_143',['ci',['../class_cellular_helper_environment_cell_data.html#a37684813302019c96e2ff7f504375187',1,'CellularHelperEnvironmentCellData::ci()'],['../class_cellular_helper_c_r_e_g_response.html#a75a560ecd4358aae316c7f4e63073af8',1,'CellularHelperCREGResponse::ci()']]],
4 | ['command_144',['command',['../class_cellular_helper_plus_string_response.html#aab2c1442c95e90948f2a9a1a01bf9424',1,'CellularHelperPlusStringResponse']]],
5 | ['curdataindex_145',['curDataIndex',['../class_cellular_helper_environment_response.html#ab68b3f954c6c0430b00857781cb8c215',1,'CellularHelperEnvironmentResponse']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/variables_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['default_5ftimeout_146',['DEFAULT_TIMEOUT',['../class_cellular_helper_class.html#ae86c06d88fb15d0c86ff324bd3d8cf87',1,'CellularHelperClass']]],
4 | ['dlf_147',['dlf',['../class_cellular_helper_environment_cell_data.html#a955358e1e725c6fc0c1a6abc69ae4cdc',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ecn0_148',['ecn0',['../class_cellular_helper_extended_qual_response.html#a9eab9a07dfbf15bd3bba499cb580de85',1,'CellularHelperExtendedQualResponse']]],
4 | ['enabledebug_149',['enableDebug',['../class_cellular_helper_common_response.html#addab157ed764a36df8c935f50eb787e6',1,'CellularHelperCommonResponse']]],
5 | ['environment_5fserving_5fcell_150',['ENVIRONMENT_SERVING_CELL',['../class_cellular_helper_class.html#abd463f53d7b73e3cd0a2491b8b3c1350',1,'CellularHelperClass']]],
6 | ['environment_5fserving_5fcell_5fand_5fneighbors_151',['ENVIRONMENT_SERVING_CELL_AND_NEIGHBORS',['../class_cellular_helper_class.html#a2945810d6200a68532bbd7b1c83651dc',1,'CellularHelperClass']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/search/variables_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['isumts_152',['isUMTS',['../class_cellular_helper_environment_cell_data.html#a0978883a5232976b6356b11531176ff8',1,'CellularHelperEnvironmentCellData']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/variables_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['lac_153',['lac',['../class_cellular_helper_environment_cell_data.html#ad2d698a1dc0dd27e16846ca8b3289083',1,'CellularHelperEnvironmentCellData::lac()'],['../class_cellular_helper_c_r_e_g_response.html#a1c210b8d102814b147fc017d590cb652',1,'CellularHelperCREGResponse::lac()']]],
4 | ['lat_154',['lat',['../class_cellular_helper_location_response.html#a7983c95974e29a24577cd1b9cae34597',1,'CellularHelperLocationResponse']]],
5 | ['lon_155',['lon',['../class_cellular_helper_location_response.html#a02d6f66f386a7beddd0c159dc24aeee5',1,'CellularHelperLocationResponse']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/variables_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['mcc_156',['mcc',['../class_cellular_helper_environment_cell_data.html#a05d3778b673ed91386d6bfa92cd74ad3',1,'CellularHelperEnvironmentCellData']]],
4 | ['mnc_157',['mnc',['../class_cellular_helper_environment_cell_data.html#a0c84cc35edca9790011ff8f009d00828',1,'CellularHelperEnvironmentCellData']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['neighbors_158',['neighbors',['../class_cellular_helper_environment_response.html#ab27bc8f1644c1f61f121ee494748ddd7',1,'CellularHelperEnvironmentResponse']]],
4 | ['numneighbors_159',['numNeighbors',['../class_cellular_helper_environment_response.html#ae2dab2b3021386a1ae3a3de0eafd57d0',1,'CellularHelperEnvironmentResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['operator_5fname_5flong_5fcphs_160',['OPERATOR_NAME_LONG_CPHS',['../class_cellular_helper_class.html#acb2b31c1ef6269085302a7d25bff8a57',1,'CellularHelperClass']]],
4 | ['operator_5fname_5flong_5feons_161',['OPERATOR_NAME_LONG_EONS',['../class_cellular_helper_class.html#a757d5bcfbdbfb4c8d44bb7a40e5c189e',1,'CellularHelperClass']]],
5 | ['operator_5fname_5flong_5fnetwork_5foperator_162',['OPERATOR_NAME_LONG_NETWORK_OPERATOR',['../class_cellular_helper_class.html#a52ee866204b3914e8df302de56f46eae',1,'CellularHelperClass']]],
6 | ['operator_5fname_5flong_5fnitz_163',['OPERATOR_NAME_LONG_NITZ',['../class_cellular_helper_class.html#adfca63770923dc60ca1e615c7af90bba',1,'CellularHelperClass']]],
7 | ['operator_5fname_5flong_5from_164',['OPERATOR_NAME_LONG_ROM',['../class_cellular_helper_class.html#a7bea96108f54089ed072012a1e131f33',1,'CellularHelperClass']]],
8 | ['operator_5fname_5fnumeric_165',['OPERATOR_NAME_NUMERIC',['../class_cellular_helper_class.html#aebd6b29f234b579a04d6dcd63664207f',1,'CellularHelperClass']]],
9 | ['operator_5fname_5fservice_5fprovider_166',['OPERATOR_NAME_SERVICE_PROVIDER',['../class_cellular_helper_class.html#ab46b11df1fa964d883a92fabd84f6dc0',1,'CellularHelperClass']]],
10 | ['operator_5fname_5fshort_5fcphs_167',['OPERATOR_NAME_SHORT_CPHS',['../class_cellular_helper_class.html#af43eb53fbe93ff783e6aab158235e875',1,'CellularHelperClass']]],
11 | ['operator_5fname_5fshort_5feons_168',['OPERATOR_NAME_SHORT_EONS',['../class_cellular_helper_class.html#a6b0b9acd3abf1a6c20d5ca1612b25680',1,'CellularHelperClass']]],
12 | ['operator_5fname_5fshort_5fnetwork_5foperator_169',['OPERATOR_NAME_SHORT_NETWORK_OPERATOR',['../class_cellular_helper_class.html#a9ee7070ab688dfe84f800c4d943d21fe',1,'CellularHelperClass']]],
13 | ['operator_5fname_5fshort_5fnitz_170',['OPERATOR_NAME_SHORT_NITZ',['../class_cellular_helper_class.html#a7022e0dff705864f872a4ada1140d3a6',1,'CellularHelperClass']]],
14 | ['operator_5fname_5fshort_5from_171',['OPERATOR_NAME_SHORT_ROM',['../class_cellular_helper_class.html#a92bc1427f0cc1e3e55c0fbee0ce98cf2',1,'CellularHelperClass']]]
15 | ];
16 |
--------------------------------------------------------------------------------
/docs/html/search/variables_a.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['qual_172',['qual',['../class_cellular_helper_r_s_s_i_qual_response.html#a7a09fd52dea5d5c262e603f06b40a2ac',1,'CellularHelperRSSIQualResponse']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/variables_b.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rat_173',['rat',['../class_cellular_helper_c_r_e_g_response.html#a8aaab9f59a0bc6b1b701f0048d8c4fa5',1,'CellularHelperCREGResponse']]],
4 | ['resp_174',['resp',['../class_cellular_helper_common_response.html#ae4e7bcdbd486d4b3dd8a08d9d5a5fdae',1,'CellularHelperCommonResponse']]],
5 | ['rscp_175',['rscp',['../class_cellular_helper_extended_qual_response.html#acc90ff433a0148cbf45b246d2ebde5f6',1,'CellularHelperExtendedQualResponse']]],
6 | ['rscplev_176',['rscpLev',['../class_cellular_helper_environment_cell_data.html#a0c5909a99db9c352e37b62f655544c28',1,'CellularHelperEnvironmentCellData']]],
7 | ['rsrp_177',['rsrp',['../class_cellular_helper_extended_qual_response.html#a1ce04bc5630f64d1954653d0ee94d22e',1,'CellularHelperExtendedQualResponse']]],
8 | ['rsrq_178',['rsrq',['../class_cellular_helper_extended_qual_response.html#a63e5f5c464cff37f5c5c7738cde811b5',1,'CellularHelperExtendedQualResponse']]],
9 | ['rssi_179',['rssi',['../class_cellular_helper_r_s_s_i_qual_response.html#a79e1a4de64d03ff352645eb38f9fca21',1,'CellularHelperRSSIQualResponse']]],
10 | ['rxlev_180',['rxlev',['../class_cellular_helper_extended_qual_response.html#a5b932edd480c1d4d472da69fdb08bbd0',1,'CellularHelperExtendedQualResponse::rxlev()'],['../class_cellular_helper_environment_cell_data.html#a2db41cdc01ddf9be67ea5e615070e039',1,'CellularHelperEnvironmentCellData::rxlev()']]]
11 | ];
12 |
--------------------------------------------------------------------------------
/docs/html/search/variables_c.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['service_181',['service',['../class_cellular_helper_environment_response.html#a15d7a7576ef6fbec750afc5d00a52cdf',1,'CellularHelperEnvironmentResponse']]],
4 | ['stat_182',['stat',['../class_cellular_helper_c_r_e_g_response.html#ac1ec28dc7185aa917dc546996e487851',1,'CellularHelperCREGResponse']]],
5 | ['staticneighbors_183',['staticNeighbors',['../class_cellular_helper_environment_response_static.html#ad51eb94bee7651ccf7a6296d7081d1a3',1,'CellularHelperEnvironmentResponseStatic']]],
6 | ['string_184',['string',['../class_cellular_helper_string_response.html#ac4075df768ca9c6c01c3b5070296ef7b',1,'CellularHelperStringResponse::string()'],['../class_cellular_helper_plus_string_response.html#a24f361a57f89ddc2c3200dbb0ca86af4',1,'CellularHelperPlusStringResponse::string()']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/search/variables_d.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['ulf_185',['ulf',['../class_cellular_helper_environment_cell_data.html#abccb0068906260bfa86b063049b11a9e',1,'CellularHelperEnvironmentCellData']]],
4 | ['uncertainty_186',['uncertainty',['../class_cellular_helper_location_response.html#ac0ec86e87aa7014fb7d6628c883361ed',1,'CellularHelperLocationResponse']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_e.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Loading...
12 |
13 |
18 |
Searching...
19 |
No Matches
20 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/html/search/variables_e.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['valid_187',['valid',['../class_cellular_helper_location_response.html#a27e7b0f1178c71cf261dc78bc2ed4633',1,'CellularHelperLocationResponse::valid()'],['../class_cellular_helper_c_r_e_g_response.html#ad4af5de2bc689ebcd409d172c7c3573f',1,'CellularHelperCREGResponse::valid()']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/splitbar.png
--------------------------------------------------------------------------------
/docs/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/sync_off.png
--------------------------------------------------------------------------------
/docs/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/sync_on.png
--------------------------------------------------------------------------------
/docs/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/tab_a.png
--------------------------------------------------------------------------------
/docs/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/tab_b.png
--------------------------------------------------------------------------------
/docs/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/tab_h.png
--------------------------------------------------------------------------------
/docs/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rickkas7/CellularHelper/8de7ebc084c0b74c2b4f742c2bd10bd16356dc0d/docs/html/tab_s.png
--------------------------------------------------------------------------------
/docs/html/tabs.css:
--------------------------------------------------------------------------------
1 | .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
--------------------------------------------------------------------------------
/examples/1-simple/1-simple.cpp:
--------------------------------------------------------------------------------
1 | #include "Particle.h"
2 | #include "CellularHelper.h"
3 |
4 | // STARTUP(cellular_credentials_set("epc.tmobile.com", "", "", NULL));
5 |
6 | SYSTEM_MODE(MANUAL);
7 | SYSTEM_THREAD(ENABLED);
8 |
9 | // For extra debugging, use the LOG_LEVEL_TRACE version instead
10 | SerialLogHandler logHandler;
11 | // SerialLogHandler logHandler(LOG_LEVEL_TRACE);
12 |
13 |
14 | const unsigned long STARTUP_WAIT_TIME_MS = 4000;
15 | const unsigned long MODEM_ON_WAIT_TIME_MS = 4000;
16 | const unsigned long CLOUD_PRE_WAIT_TIME_MS = 5000;
17 | const unsigned long DISCONNECT_WAIT_TIME_MS = 10000;
18 |
19 | // Forward declarations
20 | void runModemTests();
21 | void runCellularTests();
22 | void buttonHandler(system_event_t event, int data);
23 |
24 | enum State {
25 | STARTUP_WAIT_STATE,
26 | MODEM_ON_STATE,
27 | MODEM_ON_WAIT_STATE,
28 | COPS_STATE,
29 | CONNECT_STATE,
30 | CONNECT_WAIT_STATE,
31 | RUN_CELLULAR_TESTS,
32 | CLOUD_BUTTON_WAIT_STATE,
33 | CLOUD_CONNECT_STATE,
34 | CLOUD_CONNECT_WAIT_STATE,
35 | CLOUD_PRE_WAIT_STATE,
36 | RUN_CLOUD_TESTS,
37 | DISCONNECT_WAIT_STATE,
38 | REPEAT_TESTS_STATE,
39 | DONE_STATE,
40 | IDLE_WAIT_STATE
41 | };
42 | State state = STARTUP_WAIT_STATE;
43 | unsigned long stateTime = 0;
44 | bool buttonClicked = false;
45 |
46 | void setup() {
47 | Serial.begin(9600);
48 | System.on(button_click, buttonHandler);
49 | }
50 |
51 | void loop() {
52 | switch(state) {
53 | case STARTUP_WAIT_STATE:
54 | if (millis() - stateTime >= STARTUP_WAIT_TIME_MS) {
55 | stateTime = millis();
56 | state = MODEM_ON_STATE;
57 | }
58 | break;
59 |
60 | case MODEM_ON_STATE:
61 | buttonClicked = false;
62 | Log.info("turning on modem...");
63 | Cellular.on();
64 | state = MODEM_ON_WAIT_STATE;
65 | stateTime = millis();
66 | break;
67 |
68 | case MODEM_ON_WAIT_STATE:
69 | // In system threaded mode you need to wait a little while after turning on the
70 | // cellular mode before it will respond. That's what MODEM_ON_WAIT_TIME_MS is for.
71 | if (millis() - stateTime < MODEM_ON_WAIT_TIME_MS) {
72 | // Not time yet; with system thread enabled you need to wait a few
73 | // seconds for the modem to actually start up before it will respond.
74 | break;
75 | }
76 |
77 | // Modem ready. Print out the basic stuff like ICCID.
78 | runModemTests();
79 |
80 | state = CONNECT_STATE;
81 | stateTime = millis();
82 | break;
83 |
84 | case COPS_STATE:
85 | break;
86 |
87 | case CONNECT_STATE:
88 |
89 | Log.info("attempting to connect to the cellular network...");
90 | Cellular.connect();
91 |
92 | state = CONNECT_WAIT_STATE;
93 | stateTime = millis();
94 | break;
95 |
96 | case CONNECT_WAIT_STATE:
97 | if (Cellular.ready()) {
98 | unsigned long elapsed = millis() - stateTime;
99 |
100 | Log.info("connected to the cellular network in %lu milliseconds", elapsed);
101 | state = RUN_CELLULAR_TESTS;
102 | stateTime = millis();
103 | }
104 | else
105 | if (Cellular.listening()) {
106 | Log.info("entered listening mode (blinking dark blue) - probably no SIM installed");
107 | state = DONE_STATE;
108 | }
109 | break;
110 |
111 | case RUN_CELLULAR_TESTS:
112 | Log.info("running cellular tests");
113 |
114 | runCellularTests();
115 |
116 | Log.info("cellular tests complete");
117 | Log.info("press the MODE button to connect to the cloud");
118 | state = CLOUD_BUTTON_WAIT_STATE;
119 | break;
120 |
121 | case CLOUD_BUTTON_WAIT_STATE:
122 | if (buttonClicked) {
123 | buttonClicked = false;
124 | state = CLOUD_CONNECT_STATE;
125 | }
126 | break;
127 |
128 | case CLOUD_CONNECT_STATE:
129 | Log.info("attempting to connect to the Particle cloud...");
130 | Particle.connect();
131 | state = CLOUD_CONNECT_WAIT_STATE;
132 | stateTime = millis();
133 | break;
134 |
135 | case CLOUD_CONNECT_WAIT_STATE:
136 | if (Particle.connected()) {
137 | unsigned long elapsed = millis() - stateTime;
138 |
139 | Log.info("connected to the cloud in %lu milliseconds", elapsed);
140 |
141 |
142 | state = CLOUD_PRE_WAIT_STATE;
143 | stateTime = millis();
144 | }
145 | break;
146 |
147 | case CLOUD_PRE_WAIT_STATE:
148 | if (millis() - stateTime >= CLOUD_PRE_WAIT_TIME_MS) {
149 | state = RUN_CLOUD_TESTS;
150 | stateTime = millis();
151 | }
152 | break;
153 |
154 | case RUN_CLOUD_TESTS:
155 | // Log.info("running cloud tests");
156 | state = DONE_STATE;
157 | break;
158 |
159 | case DISCONNECT_WAIT_STATE:
160 | if (millis() - stateTime >= DISCONNECT_WAIT_TIME_MS) {
161 | state = REPEAT_TESTS_STATE;
162 | }
163 | break;
164 |
165 | case REPEAT_TESTS_STATE:
166 | if (Cellular.ready()) {
167 | state = RUN_CELLULAR_TESTS;
168 | }
169 | else {
170 | state = CONNECT_STATE;
171 | }
172 | break;
173 |
174 | case DONE_STATE:
175 | Log.info("tests complete!");
176 | Log.info("press the MODE button to disconnect from the cloud and repeat tests");
177 | buttonClicked = false;
178 | state = IDLE_WAIT_STATE;
179 | break;
180 |
181 |
182 | case IDLE_WAIT_STATE:
183 | if (buttonClicked) {
184 | buttonClicked = false;
185 | if (Particle.connected()) {
186 | Log.info("disconnecting from the cloud");
187 | Particle.disconnect();
188 | state = DISCONNECT_WAIT_STATE;
189 | stateTime = millis();
190 | }
191 | else {
192 | state = REPEAT_TESTS_STATE;
193 | }
194 | }
195 | break;
196 | }
197 | }
198 |
199 | void runModemTests() {
200 | Log.info("manufacturer=%s", CellularHelper.getManufacturer().c_str());
201 |
202 | Log.info("model=%s", CellularHelper.getModel().c_str());
203 |
204 | Log.info("firmware version=%s", CellularHelper.getFirmwareVersion().c_str());
205 |
206 | Log.info("ordering code=%s", CellularHelper.getOrderingCode().c_str());
207 |
208 | Log.info("IMEI=%s", CellularHelper.getIMEI().c_str());
209 |
210 | Log.info("IMSI=%s", CellularHelper.getIMSI().c_str());
211 |
212 | Log.info("ICCID=%s", CellularHelper.getICCID().c_str());
213 |
214 | }
215 |
216 | // Various tests to find out information about the cellular network we connected to
217 | void runCellularTests() {
218 |
219 | Log.info("operator name=%s", CellularHelper.getOperatorName().c_str());
220 |
221 | CellularHelperRSSIQualResponse rssiQual = CellularHelper.getRSSIQual();
222 | int bars = CellularHelperClass::rssiToBars(rssiQual.rssi);
223 |
224 | Log.info("rssi=%d, qual=%d, bars=%d", rssiQual.rssi, rssiQual.qual, bars);
225 |
226 |
227 | CellularHelperExtendedQualResponse extQual = CellularHelper.getExtendedQual();
228 | Log.info("extended qual %s (LTE-M1 only)", extQual.toString().c_str());
229 |
230 | // First try to get info on neighboring cells. This doesn't work for me using the U260.
231 | // Get a maximum of 8 responses
232 | CellularHelperEnvironmentResponseStatic<8> envResp;
233 |
234 | CellularHelper.getEnvironment(CellularHelper.ENVIRONMENT_SERVING_CELL_AND_NEIGHBORS, envResp);
235 | if (envResp.resp != RESP_OK) {
236 | // We couldn't get neighboring cells, so try just the receiving cell
237 | CellularHelper.getEnvironment(CellularHelper.ENVIRONMENT_SERVING_CELL, envResp);
238 | }
239 | if (envResp.resp == RESP_OK) {
240 | envResp.logResponse();
241 | }
242 | else {
243 | Log.info("could not get cellular environment (normal for LTE M1)");
244 | }
245 |
246 | CellularHelperLocationResponse locResp = CellularHelper.getLocation();
247 | Log.info(locResp.toString());
248 |
249 | }
250 |
251 | void buttonHandler(system_event_t event, int param) {
252 | // int clicks = system_button_clicks(param);
253 | buttonClicked = true;
254 | }
255 |
256 |
257 |
--------------------------------------------------------------------------------
/examples/2-show-carriers/2-show-carriers.cpp:
--------------------------------------------------------------------------------
1 | #include "Particle.h"
2 | #include "CellularHelper.h"
3 |
4 | // STARTUP(cellular_credentials_set("epc.tmobile.com", "", "", NULL));
5 |
6 | SYSTEM_MODE(MANUAL);
7 | SYSTEM_THREAD(ENABLED);
8 |
9 | SerialLogHandler logHandler;
10 |
11 | const unsigned long STARTUP_WAIT_TIME_MS = 4000;
12 | const unsigned long MODEM_ON_WAIT_TIME_MS = 4000;
13 |
14 | // Forward declarations
15 | void cellularScan();
16 | void buttonHandler(system_event_t event, int data);
17 |
18 | enum State {
19 | STARTUP_WAIT_STATE,
20 | MODEM_ON_STATE,
21 | MODEM_ON_WAIT_STATE,
22 | RUN_TEST_STATE,
23 | COPS_STATE,
24 | DONE_STATE,
25 | IDLE_WAIT_STATE
26 | };
27 | State state = STARTUP_WAIT_STATE;
28 | unsigned long stateTime = 0;
29 | bool buttonClicked = false;
30 | CellularHelperEnvironmentResponseStatic<32> envResp;
31 |
32 | void setup() {
33 | Serial.begin(9600);
34 | System.on(button_click, buttonHandler);
35 | }
36 |
37 | void loop() {
38 | switch(state) {
39 | case STARTUP_WAIT_STATE:
40 | // This delay is to give you time to connect to the serial port
41 | if (millis() - stateTime >= STARTUP_WAIT_TIME_MS) {
42 | stateTime = millis();
43 | state = MODEM_ON_STATE;
44 | }
45 | break;
46 |
47 | case MODEM_ON_STATE:
48 | buttonClicked = false;
49 | Serial.println("turning on modem...");
50 | Cellular.on();
51 | state = MODEM_ON_WAIT_STATE;
52 | stateTime = millis();
53 | break;
54 |
55 | case MODEM_ON_WAIT_STATE:
56 | // In system threaded mode you need to wait a little while after turning on the
57 | // cellular mode before it will respond. That's what MODEM_ON_WAIT_TIME_MS is for.
58 | if (millis() - stateTime >= MODEM_ON_WAIT_TIME_MS) {
59 | state = RUN_TEST_STATE;
60 | stateTime = millis();
61 | break;
62 | }
63 | break;
64 |
65 | case RUN_TEST_STATE:
66 | cellularScan();
67 | state = DONE_STATE;
68 | break;
69 |
70 | case COPS_STATE:
71 | break;
72 |
73 | case DONE_STATE:
74 | Serial.println("tests complete!");
75 | Serial.println("press the MODE button to repeat test");
76 | buttonClicked = false;
77 | state = IDLE_WAIT_STATE;
78 | break;
79 |
80 | case IDLE_WAIT_STATE:
81 | if (buttonClicked) {
82 | buttonClicked = false;
83 | state = RUN_TEST_STATE;
84 | }
85 | break;
86 | }
87 | }
88 |
89 | class OperatorName {
90 | public:
91 | int mcc;
92 | int mnc;
93 | String name;
94 | };
95 |
96 | class CellularHelperCOPNResponse : public CellularHelperCommonResponse {
97 | public:
98 | CellularHelperCOPNResponse();
99 |
100 | void requestOperator(CellularHelperEnvironmentCellData *data);
101 | void requestOperator(int mcc, int mnc);
102 | void checkOperator(char *buf);
103 | const char *getOperatorName(int mcc, int mnc) const;
104 |
105 | virtual int parse(int type, const char *buf, int len);
106 |
107 | // Maximum number of operator names that can be looked up
108 | static const size_t MAX_OPERATORS = 16;
109 |
110 | private:
111 | size_t numOperators;
112 | OperatorName operators[MAX_OPERATORS];
113 | };
114 | CellularHelperCOPNResponse copnResp;
115 |
116 |
117 | CellularHelperCOPNResponse::CellularHelperCOPNResponse() : numOperators(0) {
118 |
119 | }
120 |
121 | void CellularHelperCOPNResponse::requestOperator(CellularHelperEnvironmentCellData *data) {
122 | if (data && data->isValid(true)) {
123 | requestOperator(data->mcc, data->mnc);
124 | }
125 | }
126 |
127 | void CellularHelperCOPNResponse::requestOperator(int mcc, int mnc) {
128 | for(size_t ii = 0; ii < numOperators; ii++) {
129 | if (operators[ii].mcc == mcc && operators[ii].mnc == mnc) {
130 | // Already requested
131 | return;
132 | }
133 | }
134 | if (numOperators < MAX_OPERATORS) {
135 | // There is room to request another
136 | operators[numOperators].mcc = mcc;
137 | operators[numOperators].mnc = mnc;
138 | numOperators++;
139 | }
140 | }
141 |
142 | const char *CellularHelperCOPNResponse::getOperatorName(int mcc, int mnc) const {
143 | for(size_t ii = 0; ii < numOperators; ii++) {
144 | if (operators[ii].mcc == mcc && operators[ii].mnc == mnc) {
145 | return operators[ii].name.c_str();
146 | }
147 | }
148 | return "unknown";
149 | }
150 |
151 |
152 | void CellularHelperCOPNResponse::checkOperator(char *buf) {
153 | if (buf[0] == '"') {
154 | char *numStart = &buf[1];
155 | char *numEnd = strchr(numStart, '"');
156 | if (numEnd && ((numEnd - numStart) == 6)) {
157 | char temp[4];
158 | temp[3] = 0;
159 | strncpy(temp, numStart, 3);
160 | int mcc = atoi(temp);
161 |
162 | strncpy(temp, numStart + 3, 3);
163 | int mnc = atoi(temp);
164 |
165 | *numEnd = 0;
166 | char *nameStart = strchr(numEnd + 1, '"');
167 | if (nameStart) {
168 | nameStart++;
169 | char *nameEnd = strchr(nameStart, '"');
170 | if (nameEnd) {
171 | *nameEnd = 0;
172 |
173 | // Log.info("mcc=%d mnc=%d name=%s", mcc, mnc, nameStart);
174 |
175 | for(size_t ii = 0; ii < numOperators; ii++) {
176 | if (operators[ii].mcc == mcc && operators[ii].mnc == mnc) {
177 | operators[ii].name = String(nameStart);
178 | }
179 | }
180 | }
181 | }
182 | }
183 | }
184 | }
185 |
186 |
187 | int CellularHelperCOPNResponse::parse(int type, const char *buf, int len) {
188 | if (enableDebug) {
189 | logCellularDebug(type, buf, len);
190 | }
191 | if (type == TYPE_PLUS) {
192 | // Copy to temporary string to make processing easier
193 | char *copy = (char *) malloc(len + 1);
194 | if (copy) {
195 | strncpy(copy, buf, len);
196 | copy[len] = 0;
197 |
198 | /*
199 | 0000018684 [app] INFO: +COPN: "901012","MCP Maritime Com"\r\n
200 | 0000018694 [app] INFO: cellular response type=TYPE_PLUS len=28
201 | 0000018694 [app] INFO: \r\n
202 | 0000018695 [app] INFO: +COPN: "901021","Seanet"\r\n
203 | 0000018705 [app] INFO: cellular response type=TYPE_ERROR len=39
204 | 0000018705 [app] INFO: \r\n
205 | *
206 | */
207 |
208 | char *start = strstr(copy, "\n+COPN: ");
209 | if (start) {
210 | start += 8; // length of COPN string
211 |
212 | char *end = strchr(start, '\r');
213 | if (end) {
214 | *end = 0;
215 |
216 | checkOperator(start);
217 | }
218 | }
219 |
220 | free(copy);
221 | }
222 | }
223 | return WAIT;
224 | }
225 |
226 | void printCellData(CellularHelperEnvironmentCellData *data) {
227 | const char *whichG = data->isUMTS ? "3G" : "2G";
228 |
229 | // Log.info("mcc=%d mnc=%d", data->mcc, data->mnc);
230 |
231 | const char *operatorName = copnResp.getOperatorName(data->mcc, data->mnc);
232 |
233 | Serial.printlnf("%s %s %s %d bars (%03d%03d)", whichG, operatorName, data->getBandString().c_str(), data->getBars(), data->mcc, data->mnc);
234 | }
235 |
236 | void cellularScan() {
237 | Log.info("starting cellular scan...");
238 |
239 | // envResp.enableDebug = true;
240 | envResp.clear();
241 |
242 | // Command may take up to 3 minutes to execute!
243 | envResp.resp = Cellular.command(CellularHelperClass::responseCallback, (void *)&envResp, 360000, "AT+COPS=5\r\n");
244 | if (envResp.resp == RESP_OK) {
245 | envResp.logResponse();
246 |
247 | copnResp.requestOperator(&envResp.service);
248 | if (envResp.neighbors) {
249 | for(size_t ii = 0; ii < envResp.numNeighbors; ii++) {
250 | copnResp.requestOperator(&envResp.neighbors[ii]);
251 | }
252 | }
253 | }
254 |
255 |
256 | Log.info("looking up operator names...");
257 |
258 | copnResp.enableDebug = false;
259 | copnResp.resp = Cellular.command(CellularHelperClass::responseCallback, (void *)&copnResp, 120000, "AT+COPN\r\n");
260 |
261 | Log.info("results...");
262 |
263 | printCellData(&envResp.service);
264 | if (envResp.neighbors) {
265 | for(size_t ii = 0; ii < envResp.numNeighbors; ii++) {
266 | if (envResp.neighbors[ii].isValid(true /* ignoreCI */)) {
267 | printCellData(&envResp.neighbors[ii]);
268 | }
269 | }
270 | }
271 |
272 | }
273 |
274 |
275 | void buttonHandler(system_event_t event, int param) {
276 | // int clicks = system_button_clicks(param);
277 | buttonClicked = true;
278 | }
279 |
--------------------------------------------------------------------------------
/examples/3-select-carrier/3-select-carrier.cpp:
--------------------------------------------------------------------------------
1 | #include "Particle.h"
2 |
3 | #include "CellularHelper.h"
4 |
5 | SYSTEM_MODE(SEMI_AUTOMATIC);
6 | SYSTEM_THREAD(ENABLED);
7 |
8 | SerialLogHandler logHandler(LOG_LEVEL_TRACE);
9 |
10 |
11 | void setup() {
12 | Serial.begin();
13 |
14 | // Wait until the USB serial is connected or for 4 seconds. This is only for
15 | // debugging purposes so you can monitor the log messages.
16 | waitFor(Serial.isConnected, 4000);
17 |
18 | // The cellular modem must be turned on before using selectOperator. This version
19 | // is preferable to Cellular.on() if you are using SYSTEM_THREAD(ENABLED) because
20 | // the Cellular.on() method does not block and there's no way to know when it
21 | // has been turned on.
22 | cellular_on(NULL);
23 |
24 | // Select the operator using the MCC/MNC string. For example:
25 | // "310410" = AT&T
26 | // "310260" = T-Mobile
27 | bool bResult = CellularHelper.selectOperator("310260");
28 |
29 | Log.info("selectOperator returned %d", bResult);
30 |
31 | // We only do a Cellular.connect() here because doing a Particle.connect() generates
32 | // a lot of log messages obscuring the rest of the content. You may prefer to use
33 | // Particle.connect() instead.
34 | Cellular.connect();
35 | waitUntil(Cellular.ready);
36 |
37 | String longName = CellularHelper.getOperatorName();
38 |
39 | Log.info("current operator=%s", longName.c_str());
40 | }
41 |
42 | void loop() {
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/examples/4-cell-locate/4-cell-locate.cpp:
--------------------------------------------------------------------------------
1 | #include "CellularHelper.h"
2 |
3 | SerialLogHandler logHandler(LOG_LEVEL_TRACE);
4 |
5 |
6 | const unsigned long CHECK_PERIOD = 120000;
7 | unsigned long lastCheck = 0 ;
8 |
9 | void setup() {
10 | Serial.begin();
11 | }
12 |
13 | void loop() {
14 | if (millis() - lastCheck >= CHECK_PERIOD) {
15 | Log.info("about to get location using CellLocate");
16 |
17 | CellularHelperLocationResponse loc = CellularHelper.getLocation(120000);
18 |
19 | Log.info(loc.toString().c_str());
20 | Particle.publish("location", loc.toString().c_str(), PRIVATE);
21 |
22 | lastCheck = millis();
23 | }
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/examples/5-cellular-global-identity/5-cellular-global-identity.cpp:
--------------------------------------------------------------------------------
1 | #include "Particle.h"
2 |
3 | SerialLogHandler logHandler;
4 |
5 | // This example requires Device OS 1.2.1 or later!
6 |
7 | SYSTEM_THREAD(ENABLED);
8 |
9 | const unsigned long CHECK_PERIOD_MS = 10000;
10 | unsigned long lastCheck = 0;
11 |
12 | void setup() {
13 |
14 | }
15 |
16 | void loop() {
17 | if (millis() - lastCheck >= CHECK_PERIOD_MS) {
18 | lastCheck = millis();
19 |
20 | // Using CellularGlobalIdentity works on Device OS 1.2.1 and later on all devices and modems.
21 | // The information is cached by Device OS so you can call it relatively frequently without
22 | // much of a performance penalty. The data will update as you move between cells automatically.
23 | // It only works once cloud connected, however. It will return error -1200 if you are only
24 | // connected to cellular and not the cloud.
25 |
26 | CellularGlobalIdentity cgi = {0};
27 | cgi.size = sizeof(CellularGlobalIdentity);
28 | cgi.version = CGI_VERSION_LATEST;
29 |
30 | cellular_result_t res = cellular_global_identity(&cgi, NULL);
31 | if (res == SYSTEM_ERROR_NONE) {
32 | Log.info("cid=%d lac=%u mcc=%d mnc=%d", cgi.cell_id, cgi.location_area_code, cgi.mobile_country_code, cgi.mobile_network_code);
33 | }
34 | else {
35 | Log.info("cellular_global_identity failed %d", res);
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/examples/6-no-cellular-test/6-no-cellular-test.cpp:
--------------------------------------------------------------------------------
1 | #include "Particle.h"
2 |
3 | // The CellularHelper library is designed so it can be included in Wi-Fi projects (Photon, P1, Argon).
4 | // It doesn't do anything, but it allows your code to check if it's a cellular device and then make
5 | // calls into the library if it wants to, without having to create two separate projects, one for
6 | // Cellular and one for Wi-Fi.
7 | #include "CellularHelper.h"
8 |
9 | void setup() {
10 |
11 | }
12 |
13 | void loop() {
14 |
15 | }
--------------------------------------------------------------------------------
/library.properties:
--------------------------------------------------------------------------------
1 | # Fill in information about your library then remove # from the start of lines
2 | # https://docs.particle.io/guide/tools-and-features/libraries/#library-properties-fields
3 | name=CellularHelper
4 | version=0.1.0
5 | author=rickkas7@rickkas7.com
6 | license=MIT
7 | sentence=Handy utility functions for cellular devices
8 | # paragraph=a longer description of this library
9 | url=https://github.com/rickkas7/CellularHelper
10 | repository=https://github.com/rickkas7/CellularHelper.git
11 | architectures=particle-electron
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "CellularHelper",
3 | "version": "0.0.1",
4 | "description": "Travis build script",
5 | "private": true,
6 | "scripts": {
7 | "test": "node node_modules/@rickkas7/particle-builder/particle-builder.js ."
8 | },
9 | "author": "rickkas7@github.com",
10 | "contributors": [
11 | ],
12 | "license": "Apache Version 2.0",
13 | "dependencies": {
14 | "@rickkas7/particle-builder": "0.0.4"
15 | },
16 | "engines": {
17 | "node": ">=4.3.2"
18 | }
19 | }
--------------------------------------------------------------------------------
/verification.txt:
--------------------------------------------------------------------------------
1 | This library should work with the following Particle cellular devices:
2 |
3 | - Electron 2G (G350)
4 | - Electron 3G Americas (U260)
5 | - Electron 3G Europe/Asia/Africa (U270)
6 | - Electron Global (U201)
7 | - Electron LTE (R410M)
8 |
9 | - E Series 2G/3G (U201)
10 | - E Series LTE (R410M)
11 |
12 | - Boron 2G/3G (U201)
13 | - Boron LTE (R410M)
14 |
15 | - B Series B402 SoM (R410M)
16 |
17 | To test the library, run the 1-simple example and monitor the USB debug serial output.
18 |
19 | Some features are only supported on some devices. For example, the cell locate
20 | example will not run on u-blox SARA-R410M-02B devices (LTE Cat M1).
21 |
22 |
--------------------------------------------------------------------------------