2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Collections.Generic;
23 /// A class which defines network registration status.
25 public class NetworkRegistrationStatus
27 internal NetworkServiceLevel Cs;
28 internal NetworkServiceLevel Ps;
29 internal NetworkServiceType SvcType;
30 internal bool Roaming;
32 internal NetworkRegistrationStatus()
37 /// Circuit Switched status.
39 /// <value>Status of circuit switched data.</value>
40 public NetworkServiceLevel CircuitStatus
49 /// Packet Switched status.
51 /// <value>Status of packet switched data.</value>
52 public NetworkServiceLevel PacketStatus
61 /// Registration service type.
63 /// <value>Service type represented in NetworkServiceType enum.</value>
64 public NetworkServiceType Type
75 /// <value>Boolean value to check the roaming status.</value>
86 /// A class which defines network cell info notification.
88 public class NetworkCellNoti
90 internal int Location;
93 internal NetworkCellNoti()
98 /// Location Area Code (In case of LTE network, it represents Tracking Area Code).
100 /// <value>Location area code represented in integer.</value>
112 /// <value>Cell id represented in integer.</value>
123 /// A class which defines network change notification.
125 public class NetworkChangeNoti
127 internal NetworkSystemType Type;
128 internal string NwPlmn;
130 internal NetworkChangeNoti()
135 /// Access technology.
137 /// <value>Access technology represented in NetworkSystemType enum.</value>
138 public NetworkSystemType Act
149 /// <value>Plmn value represented as string.</value>
160 /// A class which defines network time notification.
162 public class NetworkTimeNoti
164 internal DateTime TimeInfo;
165 internal int WDayInfo;
166 internal int GmtOffInfo;
167 internal int DstOffInfo;
169 internal string NetworkPlmn;
171 internal NetworkTimeNoti()
176 /// Date time information.
178 /// <value>An instance of DateTime representing date time information.</value>
188 /// Wday information.
190 /// <value>Wday info represented in integer.</value>
202 /// <value>GMT off info represented in integer.</value>
214 /// <value>DST off info represented in integer.</value>
224 /// Flag for checking if it is DST.
226 /// <value>Boolean value to check if the time is DST or not.</value>
238 /// <value>PLMN value represented in string.</value>
249 /// A class which defines network identity notification.
251 public class NetworkIdentityNoti
253 internal string NwPlmn;
254 internal string NwShortName;
255 internal string NwFullName;
257 internal NetworkIdentityNoti()
264 /// <value>Plmn value represented in string.</value>
274 /// Short network name.
276 /// <value>Short name of the network in string.</value>
277 public string ShortName
286 /// Full network name.
288 /// <value>Full name of the network in string.</value>
289 public string FullName
299 /// A class which defines network VoLTE status notification.
301 public class NetworkVolteStatus
303 internal bool NwIsRegistered;
304 internal int NwFeatureMask;
305 internal VolteNetworkType NwType;
307 internal NetworkVolteStatus()
314 /// <value>Boolean value to check if it is registered.</value>
315 public bool IsRegistered
319 return NwIsRegistered;
324 /// Services registered for.
326 /// <value>Service mask represented in integer.</value>
327 public int FeatureMask
331 return NwFeatureMask;
336 /// Network on which VoLTE is registered.
338 /// <value>Type of VoLTE network represented in VolteNetworkType enum.</value>
339 public VolteNetworkType Type
349 /// A class which defines network identity.
351 public class NetworkIdentity
353 internal string IdName;
354 internal string SvcProviderName;
355 internal string PlmnName;
357 internal NetworkPlmnType PlmnNwType;
358 internal NetworkSystemType SysType;
359 internal NetworkIdentity()
375 /// Service provider name.
377 public string ServiceProviderName
381 return SvcProviderName;
410 public NetworkPlmnType PlmnType
419 /// Access technology.
421 public NetworkSystemType SystemType
431 /// A class for the network plmn list.
433 public class NetworkPlmnList
435 internal byte NwCount;
436 internal IEnumerable<NetworkIdentity> NwList;
438 internal NetworkPlmnList()
443 /// Network plmn count.
445 /// <value>Count of the network plmn.</value>
446 public byte NetworkCount
457 /// <value>List of NetworkIdentity.</value>
458 public IEnumerable<NetworkIdentity> NetworkList
468 /// A class which defines the preferred plmn information.
470 public class NetworkPreferredPlmnInfo
473 internal string NwPlmn;
474 internal string NwName;
475 internal string SvcProvName;
476 internal NetworkSystemType SysType;
479 /// Preferred plmn list index.
481 ///<value>Index of preferred plmn list.</value>
498 /// <value>Plmn string.</value>
515 /// <value>Name of network.</value>
516 public string NetworkName
530 /// Service provider name.
532 /// <value>Name of service provider.</value>
533 public string ServiceProviderName
547 /// System type of network.
549 /// <value>System type of network.</value>
550 public NetworkSystemType SystemType
565 /// A class containing information related to a cdma system.
567 public class NetworkCdmaSysInfo
572 internal uint BaseStnId;
573 internal int BaseStnLatitude;
574 internal int BaseStnLongitude;
575 internal uint RegZone;
576 internal uint Offset;
577 internal NetworkCdmaSysInfo()
584 /// <value>Cdma carrier.</value>
596 /// <value>System Id.</value>
608 /// <value>Id of network.</value>
609 public uint NetworkId
620 /// <value>Id of base station.</value>
621 public uint BaseStationId
630 /// Latitude of the current base station.
632 /// <value>Latitude of the current base station.</value>
633 public int BaseStationLatitude
637 return BaseStnLatitude;
642 /// Longitude of the current base station.
644 /// <value>Longitude of the current base station.</value>
645 public int BaseStationLongitude
649 return BaseStnLongitude;
654 /// Registration zone.
656 /// <value>Registration zone.</value>
657 public uint RegistrationZone
668 /// <value>Offset of pilot.</value>
669 public uint PilotOffset
679 /// A class containing information about network area.
681 public class NetworkAreaInfo
684 internal NetworkCdmaSysInfo Cdma;
685 internal NetworkAreaInfo()
690 /// Location area code.
692 /// <value>Area code of location.</value>
702 /// Instance of NetworkCdmaSysInfo.
704 /// <value>Instance of NetworkCdmaSysInfo.</value>
705 public NetworkCdmaSysInfo CdmaInfo
715 /// A class containing information of serving network.
717 public class NetworkServing
719 internal NetworkSystemType Type;
720 internal string NwPlmn;
721 internal NetworkAreaInfo Area;
722 internal NetworkServing()
727 /// Access technology.
729 /// <value>System type of network.</value>
730 public NetworkSystemType SystemType
741 /// <value>Plmn of network.</value>
751 /// Area information of network.
753 /// <value>Instance of NetworkAreaInfo.</value>
754 public NetworkAreaInfo AreaInfo
764 /// A class containing information of cdma cell.
766 public class NetworkCdmaCell
770 internal uint BaseStnId;
772 internal int BaseStnLatitude;
773 internal int BaseStnLongitude;
774 internal NetworkCdmaCell()
781 /// <value>System Id.</value>
793 /// <value>Network Id.</value>
794 public uint NetworkId
805 /// <value>Base station id.</value>
806 public uint BaseStationId
817 /// <value>Reference pn.</value>
818 public uint ReferencePn
827 /// Latitude of the current base station.
829 /// <value>Latitude of the current base station.</value>
830 public int BaseStationLatitude
834 return BaseStnLatitude;
839 /// Longitude of the current base station.
841 /// <value>Longitude of the current base station.</value>
842 public int BaseStationLongitude
846 return BaseStnLongitude;
852 /// A class containing information of lte cell.
854 public class NetworkLteCell
862 internal NetworkLteCell()
867 /// Value of cell Id. -1 indicates that cell Id information is not present.
869 /// <value>Cell Id.</value>
879 /// Location area code. This field is ignored when CellId is not present.
881 /// <value>Code of area.</value>
891 /// Physical cell id info.
893 /// <value>Physical cell id.</value>
894 public int PhysicalId
903 /// E-Utra absolute rf channel number.
905 /// <value>E-Utra absolute rf channel number.</value>
915 /// Tracking area code.
917 /// <value>Area code for tracking.</value>
927 /// Rssi in dBm(signed)
929 /// <value>Rssi in dBm.</value>
940 /// A class containing information of umts cell.
942 public class NetworkUmtsCell
949 internal NetworkUmtsCell()
954 /// Ucid. -1 indicates that cell Id information is not present.
956 /// <value>RNCID + Cell ID(16 bit).</value>
966 /// Location area code. This field is ignored when CellId is not present.
968 /// <value>Code of area.</value>
978 /// Utra absolute rf channel number.
980 /// <value>Utra absolute rf channel number.</value>
990 /// Primary scrambling code.
992 /// <value>Primary scrambling code.</value>
1002 /// Received signal code power. Valid values are (0-96, 255).
1004 /// <value>Power of received signal code.</value>
1016 /// A class containing information of geran cell.
1018 public class NetworkGeranCell
1025 internal NetworkGeranCell()
1030 /// Value of cell Id. -1 indicates that cell Id information is not present.
1032 /// <value>Cell Id.</value>
1042 /// Location area code. This field is ignored when CellId is not present.
1044 /// <value>Code of area.</value>
1054 /// Broadcast control channel frequency number.
1056 /// <value>Broadcast control channel frequency number.</value>
1066 /// Base station identification code.
1068 /// <value>Id code of base station.</value>
1078 /// Received signal strength level. Valid values are (0-63, 99).
1080 /// <value>Strength of received signal.</value>
1091 /// A class which contains geran, umts, cdma and lte cell information.
1095 internal NetworkGeranCell Geran;
1096 internal NetworkCdmaCell Cdma;
1097 internal NetworkUmtsCell Umts;
1098 internal NetworkLteCell Lte;
1104 /// Geran cell information.
1106 /// <value>Instance of NetworkGeranCell.</value>
1107 public NetworkGeranCell GeranCell
1116 /// Cdma cell information.
1118 /// <value>Instance of NetworkCdmaCell.</value>
1119 public NetworkCdmaCell CdmaCell
1128 /// Umts cell information.
1130 /// <value>Instance of NetworkUmtsCell.</value>
1131 public NetworkUmtsCell UmtsCell
1140 /// Lte cell information.
1142 /// <value>Instance of NetworkLteCell.</value>
1143 public NetworkLteCell LteCell
1153 /// A class which contains serving cell information.
1155 public class NetworkServingCell
1157 internal NetworkSystemType SysType;
1158 internal int MCountryCode;
1159 internal int MNwCode;
1161 internal NetworkServingCell()
1166 /// Access technology.
1168 /// <value>Network system type.</value>
1169 public NetworkSystemType SystemType
1178 /// Mobile country code.
1180 /// <value>Country code of the mobile.</value>
1181 public int MobileCountryCode
1185 return MCountryCode;
1190 /// Mobile network code.
1192 /// <value>Network code of the mobile.</value>
1193 public int MobileNetworkCode
1202 /// Information of cell.
1204 ///<value>Instance of Cell.</value>
1205 public Cell CellInfo
1215 /// A class which contains neighboring cell information.
1217 public class NetworkNeighboringCell
1219 internal NetworkServingCell ServCell;
1220 internal IEnumerable<NetworkGeranCell> GrList;
1221 internal IEnumerable<NetworkUmtsCell> UmtList;
1222 internal IEnumerable<NetworkLteCell> LtList;
1223 internal NetworkNeighboringCell()
1228 /// Serving cell information.
1230 /// <value>Instance of NetworkServingCell.</value>
1231 public NetworkServingCell ServingCell
1240 /// Geran cell info list.
1242 /// <value>List of NetworkGeranCell.</value>
1243 public IEnumerable<NetworkGeranCell> GeranList
1252 /// Umts cell info list.
1254 /// <value>List of NetworkUmtsCell.</value>
1255 public IEnumerable<NetworkUmtsCell> UmtsList
1264 /// Lte cell info list.
1266 /// <value>List of NetworkLteCell.</value>
1267 public IEnumerable<NetworkLteCell> LteList