From 3faa8e56349f5728507bd6e923707e88be6d9927 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 9 May 2020 09:54:28 +0200 Subject: [PATCH] Collect more signal related values for all network types. --- .../converters/CellSignalConverter.java | 32 ++- .../towercollector/dao/CellSignalsTable.java | 34 +++ .../dao/MeasurementsDatabase.java | 70 ++++- .../dao/migration/DbMigrationHelper.java | 3 + .../dao/migration/UpgradeScript16.java | 35 +++ .../dev/MeasurementBuilder.java | 16 +- .../towercollector/dev/MeasurementMocker.java | 2 +- .../formatters/csv/CsvExportFormatter.java | 71 ++++- .../json/JsonBroadcastFormatter.java | 17 ++ .../soft/towercollector/model/Cell.java | 256 +++++++++++++++++- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 20 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- ...notify_measurements_collected_content.html | 18 +- 22 files changed, 639 insertions(+), 115 deletions(-) create mode 100644 app/src/main/java/info/zamojski/soft/towercollector/dao/migration/UpgradeScript16.java diff --git a/app/src/main/java/info/zamojski/soft/towercollector/collector/converters/CellSignalConverter.java b/app/src/main/java/info/zamojski/soft/towercollector/collector/converters/CellSignalConverter.java index 876b3e63..8633815f 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/collector/converters/CellSignalConverter.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/collector/converters/CellSignalConverter.java @@ -24,15 +24,19 @@ public class CellSignalConverter { + private static final boolean isApi26 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O; + private static final boolean isApi29 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q; + public void update(Cell cell, CellInfo cellInfo) { if (cellInfo instanceof CellInfoGsm) { CellInfoGsm gsmCellInfo = (CellInfoGsm) cellInfo; CellSignalStrengthGsm signal = gsmCellInfo.getCellSignalStrength(); int asu = signal.getAsuLevel(); int dbm = signal.getDbm(); - int ta = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? signal.getTimingAdvance() : Cell.UNKNOWN_SIGNAL; + int ta = isApi26 ? signal.getTimingAdvance() : Cell.UNKNOWN_SIGNAL; if (asu == NeighboringCellInfo.UNKNOWN_RSSI) asu = Cell.UNKNOWN_SIGNAL; + // TODO add RSSI to GSM on Android R cell.setGsmSignalInfo(asu, dbm, ta); } else if (cellInfo instanceof CellInfoWcdma) { CellInfoWcdma wcdmaCellInfo = (CellInfoWcdma) cellInfo; @@ -41,6 +45,7 @@ public void update(Cell cell, CellInfo cellInfo) { if (asu == NeighboringCellInfo.UNKNOWN_RSSI) asu = Cell.UNKNOWN_SIGNAL; int dbm = signal.getDbm(); + // TODO add EC/NO to WCDMA on Android R cell.setWcdmaSignalInfo(asu, dbm); } else if (cellInfo instanceof CellInfoLte) { CellInfoLte lteCellInfo = (CellInfoLte) cellInfo; @@ -50,7 +55,12 @@ public void update(Cell cell, CellInfo cellInfo) { asu = Cell.UNKNOWN_SIGNAL; int dbm = signal.getDbm(); int ta = signal.getTimingAdvance(); - cell.setLteSignalInfo(asu, dbm, ta); + int rsrp = isApi26 ? signal.getRsrp() : Cell.UNKNOWN_SIGNAL; + int rsrq = isApi26 ? signal.getRsrq() : Cell.UNKNOWN_SIGNAL; + int rssi = isApi29 ? signal.getRssi() : Cell.UNKNOWN_SIGNAL; + int rssnr = isApi26 ? signal.getRssnr() : Cell.UNKNOWN_SIGNAL; + int cqi = isApi26 ? signal.getCqi() : Cell.UNKNOWN_SIGNAL; + cell.setLteSignalInfo(asu, dbm, ta, rsrp, rsrq, rssi, rssnr, cqi); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && cellInfo instanceof CellInfoNr) { CellInfoNr nrCellInfo = (CellInfoNr) cellInfo; CellSignalStrengthNr signal = (CellSignalStrengthNr) nrCellInfo.getCellSignalStrength(); @@ -58,7 +68,13 @@ public void update(Cell cell, CellInfo cellInfo) { if (asu == 99) // CellSignalStrengthNr.UNKNOWN_ASU_LEVEL not available asu = Cell.UNKNOWN_SIGNAL; int dbm = signal.getDbm(); - cell.setNrSignalInfo(asu, dbm); + int csiRsrp = signal.getCsiRsrp(); + int csiRsrq = signal.getCsiRsrq(); + int csiSinr = signal.getCsiSinr(); + int ssRsrp = signal.getSsRsrp(); + int ssRsrq = signal.getSsRsrq(); + int ssSinr = signal.getSsSinr(); + cell.setNrSignalInfo(asu, dbm, csiRsrp, csiRsrq, csiSinr, ssRsrp, ssRsrq, ssSinr); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && cellInfo instanceof CellInfoTdscdma) { CellInfoTdscdma tdscdmaCellInfo = (CellInfoTdscdma) cellInfo; CellSignalStrengthTdscdma signal = tdscdmaCellInfo.getCellSignalStrength(); @@ -66,7 +82,8 @@ public void update(Cell cell, CellInfo cellInfo) { if (asu == 255 || asu == 99) // depending on RSSI (99) or RSCP (255) asu = Cell.UNKNOWN_SIGNAL; int dbm = signal.getDbm(); - cell.setTdscdmaSignalInfo(asu, dbm); + int rscp = signal.getRscp(); + cell.setTdscdmaSignalInfo(asu, dbm, rscp); } else if (cellInfo instanceof CellInfoCdma) { CellInfoCdma cdmaCellInfo = (CellInfoCdma) cellInfo; CellSignalStrengthCdma signal = cdmaCellInfo.getCellSignalStrength(); @@ -74,7 +91,12 @@ public void update(Cell cell, CellInfo cellInfo) { if (asu == NeighboringCellInfo.UNKNOWN_RSSI) asu = Cell.UNKNOWN_SIGNAL; int dbm = signal.getDbm(); - cell.setCdmaSignalInfo(asu, dbm); + int cdmaDbm = signal.getCdmaDbm(); + int cdmaEcio = signal.getCdmaEcio(); + int evdoDbm = signal.getEvdoDbm(); + int evdoEcio = signal.getEvdoEcio(); + int evdoSnr = signal.getEvdoSnr(); + cell.setCdmaSignalInfo(asu, dbm, cdmaDbm, cdmaEcio, evdoDbm, evdoEcio, evdoSnr); } else { throw new UnsupportedOperationException("Cell signal type not supported `" + cellInfo.getClass().getName() + "`"); } diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dao/CellSignalsTable.java b/app/src/main/java/info/zamojski/soft/towercollector/dao/CellSignalsTable.java index 4410fd26..fd39ec69 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/dao/CellSignalsTable.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/dao/CellSignalsTable.java @@ -15,6 +15,23 @@ final class CellSignalsTable implements ITable { static final String COLUMN_TA = "ta"; static final String COLUMN_ASU = "asu"; static final String COLUMN_DBM = "dbm"; + static final String COLUMN_RSRP = "rsrp"; + static final String COLUMN_RSRQ = "rsrq"; + static final String COLUMN_RSSI = "rssi"; + static final String COLUMN_RSSNR = "rssnr"; + static final String COLUMN_CQI = "cqi"; + static final String COLUMN_RSCP = "rscp"; + static final String COLUMN_CSI_RSRP = "csi_rsrp"; + static final String COLUMN_CSI_RSRQ = "csi_rsrq"; + static final String COLUMN_CSI_SINR = "csi_sinr"; + static final String COLUMN_SS_RSRP = "ss_rsrp"; + static final String COLUMN_SS_RSRQ = "ss_rsrq"; + static final String COLUMN_SS_SINR = "ss_sinr"; + static final String COLUMN_CDMA_DBM = "cdma_dbm"; + static final String COLUMN_CDMA_ECIO = "cdma_ecio"; + static final String COLUMN_EVDO_DBM = "evdo_dbm"; + static final String COLUMN_EVDO_ECIO = "evdo_ecio"; + static final String COLUMN_EVDO_SNR = "evdo_snr"; private static final String QUERY_CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ROW_ID + " INTEGER PRIMARY KEY NOT NULL, " + @@ -25,6 +42,23 @@ final class CellSignalsTable implements ITable { COLUMN_TA + " INTEGER NOT NULL, " + COLUMN_ASU + " INTEGER NOT NULL, " + COLUMN_DBM + " INTEGER NOT NULL, " + + COLUMN_RSRP + " INTEGER NOT NULL, " + + COLUMN_RSRQ + " INTEGER NOT NULL, " + + COLUMN_RSSI + " INTEGER NOT NULL, " + + COLUMN_RSSNR + " INTEGER NOT NULL, " + + COLUMN_CQI + " INTEGER NOT NULL, " + + COLUMN_RSCP + " INTEGER NOT NULL, " + + COLUMN_CSI_RSRP + " INTEGER NOT NULL, " + + COLUMN_CSI_RSRQ + " INTEGER NOT NULL, " + + COLUMN_CSI_SINR + " INTEGER NOT NULL, " + + COLUMN_SS_RSRP + " INTEGER NOT NULL, " + + COLUMN_SS_RSRQ + " INTEGER NOT NULL, " + + COLUMN_SS_SINR + " INTEGER NOT NULL, " + + COLUMN_CDMA_DBM + " INTEGER NOT NULL, " + + COLUMN_CDMA_ECIO + " INTEGER NOT NULL, " + + COLUMN_EVDO_DBM + " INTEGER NOT NULL, " + + COLUMN_EVDO_ECIO + " INTEGER NOT NULL, " + + COLUMN_EVDO_SNR + " INTEGER NOT NULL, " + "FOREIGN KEY(" + COLUMN_MEASUREMENT_ID + ") REFERENCES " + MeasurementsTable.TABLE_NAME + "(" + MeasurementsTable.COLUMN_ROW_ID + ")," + "FOREIGN KEY(" + COLUMN_CELL_ID + ") REFERENCES " + CellsTable.TABLE_NAME + "(" + CellsTable.COLUMN_ROW_ID + "))"; diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dao/MeasurementsDatabase.java b/app/src/main/java/info/zamojski/soft/towercollector/dao/MeasurementsDatabase.java index e498bef0..199eb983 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/dao/MeasurementsDatabase.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/dao/MeasurementsDatabase.java @@ -34,7 +34,7 @@ public class MeasurementsDatabase { public static final String DATABASE_FILE_NAME = "measurements.db"; - public static final int DATABASE_FILE_VERSION = 15; + public static final int DATABASE_FILE_VERSION = 16; private static final int NUM_OF_DELETIONS_PER_ONE_QUERY = 50; @@ -141,6 +141,23 @@ public boolean insertMeasurement(Measurement measurement) { values.put(CellSignalsTable.COLUMN_TA, cell.getTa()); values.put(CellSignalsTable.COLUMN_ASU, cell.getAsu()); values.put(CellSignalsTable.COLUMN_DBM, cell.getDbm()); + values.put(CellSignalsTable.COLUMN_RSRP, cell.getRsrp()); + values.put(CellSignalsTable.COLUMN_RSRQ, cell.getRsrq()); + values.put(CellSignalsTable.COLUMN_RSSI, cell.getRssi()); + values.put(CellSignalsTable.COLUMN_RSSNR, cell.getRssnr()); + values.put(CellSignalsTable.COLUMN_CQI, cell.getCqi()); + values.put(CellSignalsTable.COLUMN_RSCP, cell.getRscp()); + values.put(CellSignalsTable.COLUMN_CSI_RSRP, cell.getCsiRsrp()); + values.put(CellSignalsTable.COLUMN_CSI_RSRQ, cell.getCsiRsrq()); + values.put(CellSignalsTable.COLUMN_CSI_SINR, cell.getCsiSinr()); + values.put(CellSignalsTable.COLUMN_SS_RSRP, cell.getSsRsrp()); + values.put(CellSignalsTable.COLUMN_SS_RSRQ, cell.getSsRsrq()); + values.put(CellSignalsTable.COLUMN_SS_SINR, cell.getSsSinr()); + values.put(CellSignalsTable.COLUMN_CDMA_DBM, cell.getCdmaDbm()); + values.put(CellSignalsTable.COLUMN_CDMA_ECIO, cell.getCdmaEcio()); + values.put(CellSignalsTable.COLUMN_EVDO_DBM, cell.getEvdoDbm()); + values.put(CellSignalsTable.COLUMN_EVDO_ECIO, cell.getEvdoEcio()); + values.put(CellSignalsTable.COLUMN_EVDO_SNR, cell.getEvdoSnr()); long rowId = db.insert(CellSignalsTable.TABLE_NAME, null, values); boolean localResult = false; if (rowId != -1) { @@ -379,6 +396,23 @@ private List getMeasurements(String selection, String[] selectionAr CellSignalsTable.COLUMN_TA, CellSignalsTable.COLUMN_ASU, CellSignalsTable.COLUMN_DBM, + CellSignalsTable.COLUMN_RSRP, + CellSignalsTable.COLUMN_RSRQ, + CellSignalsTable.COLUMN_RSSI, + CellSignalsTable.COLUMN_RSSNR, + CellSignalsTable.COLUMN_CQI, + CellSignalsTable.COLUMN_RSCP, + CellSignalsTable.COLUMN_CSI_RSRP, + CellSignalsTable.COLUMN_CSI_RSRQ, + CellSignalsTable.COLUMN_CSI_SINR, + CellSignalsTable.COLUMN_SS_RSRP, + CellSignalsTable.COLUMN_SS_RSRQ, + CellSignalsTable.COLUMN_SS_SINR, + CellSignalsTable.COLUMN_CDMA_DBM, + CellSignalsTable.COLUMN_CDMA_ECIO, + CellSignalsTable.COLUMN_EVDO_DBM, + CellSignalsTable.COLUMN_EVDO_ECIO, + CellSignalsTable.COLUMN_EVDO_SNR, MeasurementsTable.COLUMN_MEASURED_AT, MeasurementsTable.COLUMN_UPLOADED_TO_OCID_AT, MeasurementsTable.COLUMN_UPLOADED_TO_MLS_AT, @@ -409,6 +443,23 @@ private List getMeasurements(String selection, String[] selectionAr int taColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_TA); int asuColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_ASU); int dbmColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_DBM); + int rsrpColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_RSRP); + int rsrqColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_RSRQ); + int rssiColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_RSSI); + int rssnrColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_RSSNR); + int cqiColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CQI); + int rscpColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_RSCP); + int csiRsrpColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CSI_RSRP); + int csiRsrqColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CSI_RSRQ); + int csiSinrColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CSI_SINR); + int ssRsrpColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_SS_RSRP); + int ssRsrqColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_SS_RSRQ); + int ssSinrColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_SS_SINR); + int cdmaDbmColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CDMA_DBM); + int cdmaEcioColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_CDMA_ECIO); + int evdoDbmColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_EVDO_DBM); + int evdoEcioColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_EVDO_ECIO); + int evdoSnrColumnIndex = cursor.getColumnIndex(CellSignalsTable.COLUMN_EVDO_SNR); int latitudeColumnIndex = cursor.getColumnIndex(MeasurementsTable.COLUMN_LATITUDE); int longitudeColumnIndex = cursor.getColumnIndex(MeasurementsTable.COLUMN_LONGITUDE); int gpsAccuracyColumnIndex = cursor.getColumnIndex(MeasurementsTable.COLUMN_GPS_ACCURACY); @@ -454,6 +505,23 @@ private List getMeasurements(String selection, String[] selectionAr cell.setTa(cursor.getInt(taColumnIndex)); cell.setAsu(cursor.getInt(asuColumnIndex)); cell.setDbm(cursor.getInt(dbmColumnIndex)); + cell.setRsrp(cursor.getInt(rsrpColumnIndex)); + cell.setRsrq(cursor.getInt(rsrqColumnIndex)); + cell.setRssi(cursor.getInt(rssiColumnIndex)); + cell.setRssnr(cursor.getInt(rssnrColumnIndex)); + cell.setCqi(cursor.getInt(cqiColumnIndex)); + cell.setRscp(cursor.getInt(rscpColumnIndex)); + cell.setCsiRsrp(cursor.getInt(csiRsrpColumnIndex)); + cell.setCsiRsrq(cursor.getInt(csiRsrqColumnIndex)); + cell.setCsiSinr(cursor.getInt(csiSinrColumnIndex)); + cell.setSsRsrp(cursor.getInt(ssRsrpColumnIndex)); + cell.setSsRsrq(cursor.getInt(ssRsrqColumnIndex)); + cell.setSsSinr(cursor.getInt(ssSinrColumnIndex)); + cell.setCdmaDbm(cursor.getInt(cdmaDbmColumnIndex)); + cell.setCdmaEcio(cursor.getInt(cdmaEcioColumnIndex)); + cell.setEvdoDbm(cursor.getInt(evdoDbmColumnIndex)); + cell.setEvdoEcio(cursor.getInt(evdoEcioColumnIndex)); + cell.setEvdoSnr(cursor.getInt(evdoSnrColumnIndex)); measurement.addCell(cell); } cursor.close(); diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/DbMigrationHelper.java b/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/DbMigrationHelper.java index 69eff083..fea19a03 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/DbMigrationHelper.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/DbMigrationHelper.java @@ -78,6 +78,9 @@ private void registerScripts(int from) { if (from < 15) { this.upgradeScripts.add(new UpgradeScript15()); } + if (from < 16) { + this.upgradeScripts.add(new UpgradeScript16()); + } } } diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/UpgradeScript16.java b/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/UpgradeScript16.java new file mode 100644 index 00000000..de43e05a --- /dev/null +++ b/app/src/main/java/info/zamojski/soft/towercollector/dao/migration/UpgradeScript16.java @@ -0,0 +1,35 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package info.zamojski.soft.towercollector.dao.migration; + +import android.database.sqlite.SQLiteDatabase; + +class UpgradeScript16 implements IUpgradeScript { + + @Override + public void performUpgrade(SQLiteDatabase database) { + // backup old tables + database.execSQL("ALTER TABLE cell_signals RENAME TO cell_signals_backup"); + // drop index on old table + database.execSQL("DROP INDEX IF EXISTS IX_cell_signals_measurement_id"); + database.execSQL("DROP INDEX IF EXISTS IX_cell_signals_cell_id"); + // drop trigger on old table + database.execSQL("DROP TRIGGER IF EXISTS update_cell_signals_stats"); + // create new table and index + database.execSQL("CREATE TABLE cell_signals (row_id INTEGER PRIMARY KEY NOT NULL, measurement_id INTEGER NOT NULL, cell_id INTEGER NOT NULL, psc INTEGER NOT NULL, neighboring INTEGER NOT NULL, ta INTEGER NOT NULL, asu INTEGER NOT NULL, dbm INTEGER NOT NULL, rsrp INTEGER NOT NULL, rsrq INTEGER NOT NULL, rssi INTEGER NOT NULL, rssnr INTEGER NOT NULL, cqi INTEGER NOT NULL, rscp INTEGER NOT NULL, csi_rsrp INTEGER NOT NULL, csi_rsrq INTEGER NOT NULL, csi_sinr INTEGER NOT NULL, ss_rsrp INTEGER NOT NULL, ss_rsrq INTEGER NOT NULL, ss_sinr INTEGER NOT NULL, cdma_dbm INTEGER NOT NULL, cdma_ecio INTEGER NOT NULL, evdo_dbm INTEGER NOT NULL, evdo_ecio INTEGER NOT NULL, evdo_snr INTEGER NOT NULL, FOREIGN KEY(measurement_id) REFERENCES measurements(row_id), FOREIGN KEY(cell_id) REFERENCES cells(row_id))"); + database.execSQL("CREATE INDEX 'IX_cell_signals_measurement_id' on cell_signals (measurement_id DESC)"); + database.execSQL("CREATE INDEX 'IX_cell_signals_cell_id' on cell_signals (cell_id DESC)"); + // migrate data + database.execSQL("CREATE TRIGGER 'migrate_cell_signals' BEFORE DELETE ON cell_signals_backup BEGIN INSERT INTO cell_signals (measurement_id, cell_id, psc, neighboring, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi, rscp, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr) VALUES (old.measurement_id, old.cell_id, old.psc, old.neighboring, old.ta, old.asu, old.dbm, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647); END"); + database.execSQL("DELETE FROM cell_signals_backup"); + // create new trigger + database.execSQL("CREATE TRIGGER 'update_cell_signals_stats' AFTER INSERT ON cell_signals " + + "BEGIN " + + "UPDATE stats SET total_measurements = total_measurements + 1; " + + "END;"); + // delete backup + database.execSQL("DROP TABLE cell_signals_backup"); + } +} diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementBuilder.java b/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementBuilder.java index 5221aa45..d7bf99df 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementBuilder.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementBuilder.java @@ -63,23 +63,23 @@ public MeasurementBuilder setWcdmaSignal(int asu, int dbm) { return this; } - public MeasurementBuilder setLteSignal(int asu, int dbm, int ta) { - c.setLteSignalInfo(asu, dbm, ta); + public MeasurementBuilder setLteSignal(int asu, int dbm, int ta, int rsrp, int rsrq, int rssi, int rssnr, int cqi) { + c.setLteSignalInfo(asu, dbm, ta, rsrp, rsrq, rssi, rssnr, cqi); return this; } - public MeasurementBuilder setCdmaSignal(int asu, int dbm) { - c.setCdmaSignalInfo(asu, dbm); + public MeasurementBuilder setCdmaSignal(int asu, int dbm, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr) { + c.setCdmaSignalInfo(asu, dbm, cdmaDbm, cdmaEcio, evdoDbm, evdoEcio, evdoSnr); return this; } - public MeasurementBuilder setNrSignal(int asu, int dbm) { - c.setNrSignalInfo(asu, dbm); + public MeasurementBuilder setNrSignal(int asu, int dbm, int csiRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr) { + c.setNrSignalInfo(asu, dbm, csiRsrp, csiRsrq, csiSinr, ssRsrp, ssRsrq, ssSinr); return this; } - public MeasurementBuilder setTdscdmaSignal(int asu, int dbm) { - c.setTdscdmaSignalInfo(asu, dbm); + public MeasurementBuilder setTdscdmaSignal(int asu, int dbm, int rscp) { + c.setTdscdmaSignalInfo(asu, dbm, rscp); return this; } diff --git a/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementMocker.java b/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementMocker.java index 0220dae3..6972a554 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementMocker.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/dev/MeasurementMocker.java @@ -38,7 +38,7 @@ private static Measurement mockLastMeasurement() { Cell c = new Cell(); c.setLteCellInfo(260, 6, 5114, 1055842, 28); - c.setLteSignalInfo(46, -94, 76); + c.setLteSignalInfo(46, -94, 76, Cell.UNKNOWN_SIGNAL, Cell.UNKNOWN_SIGNAL, Cell.UNKNOWN_SIGNAL, Cell.UNKNOWN_SIGNAL, Cell.UNKNOWN_SIGNAL); m.addCell(c); return m; diff --git a/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/csv/CsvExportFormatter.java b/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/csv/CsvExportFormatter.java index 23d64c6c..901997a5 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/csv/CsvExportFormatter.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/csv/CsvExportFormatter.java @@ -33,7 +33,7 @@ public class CsvExportFormatter extends CsvFormatter { @Override public String formatHeader() { - return "mcc,mnc,lac,cell_id,psc,asu,dbm,ta,lat,lon,accuracy,speed,bearing,altitude,measured_at,net_type,neighboring,device\r\n"; + return "mcc,mnc,lac,cell_id,psc,asu,dbm,ta,lat,lon,accuracy,speed,bearing,altitude,measured_at,net_type,neighboring,device,rsrp,rsrq,rssi,rssnr,cqi,rscp,csi_rsrp,csi_rsrq,csi_sinr,ss_rsrp,ss_rsrq,ss_sinr,cdma_dbm,cdma_ecio,evdo_dbm,evdo_ecio,evdo_snr\r\n"; } @Override @@ -93,6 +93,75 @@ public String formatRow(Measurement m) { sb.append(deviceName); sb.append("\""); + sb.append(','); + int rsrp = c.getRsrp(); + if (rsrp != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(rsrp)); + sb.append(','); + int rsrq = c.getRsrq(); + if (rsrq != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(rsrq)); + sb.append(','); + int rssi = c.getRssi(); + if (rssi != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(rssi)); + sb.append(','); + int rssnr = c.getRssnr(); + if (rssnr != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(rssnr)); + sb.append(','); + int cqi = c.getCqi(); + if (cqi != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(cqi)); + sb.append(','); + int rscp = c.getRscp(); + if (rscp != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(rscp)); + sb.append(','); + int csiRsrp = c.getCsiRsrp(); + if (csiRsrp != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(csiRsrp)); + sb.append(','); + int csiRsrq = c.getCsiRsrq(); + if (csiRsrq != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(csiRsrq)); + sb.append(','); + int csiSinr = c.getCsiSinr(); + if (csiSinr != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(csiSinr)); + sb.append(','); + int ssRsrp = c.getSsRsrp(); + if (ssRsrp != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(ssRsrp)); + sb.append(','); + int ssRsrq = c.getSsRsrq(); + if (ssRsrq != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(ssRsrq)); + sb.append(','); + int ssSinr = c.getSsSinr(); + if (ssSinr != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(ssSinr)); + sb.append(','); + int cdmaDbm = c.getCdmaDbm(); + if (cdmaDbm != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(cdmaDbm)); + sb.append(','); + int cdmaEcio = c.getCdmaEcio(); + if (cdmaEcio != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(cdmaEcio)); + sb.append(','); + int evdoDbm = c.getEvdoDbm(); + if (evdoDbm != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(evdoDbm)); + sb.append(','); + int evdoEcio = c.getEvdoEcio(); + if (evdoEcio != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(evdoEcio)); + sb.append(','); + int evdoSnr = c.getEvdoSnr(); + if (evdoSnr != Cell.UNKNOWN_SIGNAL) + sb.append(formatInt(evdoSnr)); + sb.append("\r\n"); } diff --git a/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/json/JsonBroadcastFormatter.java b/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/json/JsonBroadcastFormatter.java index 34c7aed1..18208833 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/json/JsonBroadcastFormatter.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/files/formatters/json/JsonBroadcastFormatter.java @@ -63,6 +63,23 @@ public String formatList(List ms) throws JSONException { cell.put("asu", formatNullable(c.getAsu(), Cell.UNKNOWN_SIGNAL)); cell.put("dbm", formatNullable(c.getDbm(), Cell.UNKNOWN_SIGNAL)); cell.put("ta", formatNullable(c.getTa(), Cell.UNKNOWN_SIGNAL)); + cell.put("rsrp", formatNullable(c.getRsrp(), Cell.UNKNOWN_SIGNAL)); + cell.put("rsrq", formatNullable(c.getRsrq(), Cell.UNKNOWN_SIGNAL)); + cell.put("rssi", formatNullable(c.getRssi(), Cell.UNKNOWN_SIGNAL)); + cell.put("rssnr", formatNullable(c.getRssnr(), Cell.UNKNOWN_SIGNAL)); + cell.put("cqi", formatNullable(c.getCqi(), Cell.UNKNOWN_SIGNAL)); + cell.put("rscp", formatNullable(c.getRscp(), Cell.UNKNOWN_SIGNAL)); + cell.put("csi_rsrp", formatNullable(c.getCsiRsrp(), Cell.UNKNOWN_SIGNAL)); + cell.put("csi_rsrq", formatNullable(c.getCsiRsrq(), Cell.UNKNOWN_SIGNAL)); + cell.put("csi_sinr", formatNullable(c.getCsiSinr(), Cell.UNKNOWN_SIGNAL)); + cell.put("ss_rsrp", formatNullable(c.getSsRsrp(), Cell.UNKNOWN_SIGNAL)); + cell.put("ss_rsrq", formatNullable(c.getSsRsrq(), Cell.UNKNOWN_SIGNAL)); + cell.put("ss_sinr", formatNullable(c.getSsSinr(), Cell.UNKNOWN_SIGNAL)); + cell.put("cdma_dbm", formatNullable(c.getCdmaDbm(), Cell.UNKNOWN_SIGNAL)); + cell.put("cdma_ecio", formatNullable(c.getCdmaEcio(), Cell.UNKNOWN_SIGNAL)); + cell.put("evdo_dbm", formatNullable(c.getEvdoDbm(), Cell.UNKNOWN_SIGNAL)); + cell.put("evdo_ecio", formatNullable(c.getEvdoEcio(), Cell.UNKNOWN_SIGNAL)); + cell.put("evdo_snr", formatNullable(c.getEvdoSnr(), Cell.UNKNOWN_SIGNAL)); cell.put("neighboring", c.isNeighboring()); cell.put("net_type", cellUtils.getSystemType(c.getNetworkType())); cells.put(cell); diff --git a/app/src/main/java/info/zamojski/soft/towercollector/model/Cell.java b/app/src/main/java/info/zamojski/soft/towercollector/model/Cell.java index 83cbb298..51c67438 100644 --- a/app/src/main/java/info/zamojski/soft/towercollector/model/Cell.java +++ b/app/src/main/java/info/zamojski/soft/towercollector/model/Cell.java @@ -67,6 +67,74 @@ public class Cell implements Serializable { * Signal Strength in dBm. */ private int dbm = UNKNOWN_SIGNAL; + /** + * Reference Signal Received Power in dBm. + */ + private int rsrp = UNKNOWN_SIGNAL; + /** + * Reference Signal Received Quality in dB. + */ + private int rsrq = UNKNOWN_SIGNAL; + /** + * Received Signal Strength Indication in dBm. + */ + private int rssi = UNKNOWN_SIGNAL; + /** + * Reference Signal Signal-to-Noise Ratio in dB. + */ + private int rssnr = UNKNOWN_SIGNAL; + /** + * Channel Quality Indicator. + */ + private int cqi = UNKNOWN_SIGNAL; + /** + * Received Signal Code Power in dBm. + */ + private int rscp = UNKNOWN_SIGNAL; + /** + * Channel State Information (CSI) Reference Signal Received Power in dBm. + */ + private int csiRsrp = UNKNOWN_SIGNAL; + /** + * Channel State Information (CSI) Reference Signal Received Quality in dB. + */ + private int csiRsrq = UNKNOWN_SIGNAL; + /** + * Channel State Information (CSI) Signal-to-Noise and Interference Ratio in dB. + */ + private int csiSinr = UNKNOWN_SIGNAL; + /** + * Synchronization Signal (SS) Reference Signal Received Power in dBm. + */ + private int ssRsrp = UNKNOWN_SIGNAL; + /** + * Synchronization Signal (SS) Reference Signal Received Quality in dB. + */ + private int ssRsrq = UNKNOWN_SIGNAL; + /** + * Synchronization Signal (SS) Signal-to-Noise and Interference Ratio in dB. + */ + private int ssSinr = UNKNOWN_SIGNAL; + /** + * CDMA RSSI value in dBm. + */ + private int cdmaDbm = UNKNOWN_SIGNAL; + /** + * CDMA Ec/Io value in dB*10. + */ + private int cdmaEcio = UNKNOWN_SIGNAL; + /** + * EVDO RSSI value in dBm. + */ + private int evdoDbm = UNKNOWN_SIGNAL; + /** + * EVDO Ec/Io value in dB*10. + */ + private int evdoEcio = UNKNOWN_SIGNAL; + /** + * Signal to noise ratio. + */ + private int evdoSnr = UNKNOWN_SIGNAL; public int getCellId() { return cellId; @@ -192,12 +260,147 @@ public void setCid(long cid) { this.cid = cid; } + public int getRsrp() { + return rsrp; + } + + public void setRsrp(int rsrp) { + this.rsrp = rsrp; + } + + public int getRsrq() { + return rsrq; + } + + public void setRsrq(int rsrq) { + this.rsrq = rsrq; + } + + public int getRssi() { + return rssi; + } + + public void setRssi(int rssi) { + this.rssi = rssi; + } + + public int getRssnr() { + return rssnr; + } + + public void setRssnr(int rssnr) { + this.rssnr = rssnr; + } + + public int getCqi() { + return cqi; + } + + public void setCqi(int cqi) { + this.cqi = cqi; + } + + public int getRscp() { + return rscp; + } + + public void setRscp(int rscp) { + this.rscp = rscp; + } + + public int getCsiRsrp() { + return csiRsrp; + } + + public void setCsiRsrp(int csiRsrp) { + this.csiRsrp = csiRsrp; + } + + public int getCsiRsrq() { + return csiRsrq; + } + + public void setCsiRsrq(int csiRsrq) { + this.csiRsrq = csiRsrq; + } + + public int getCsiSinr() { + return csiSinr; + } + + public void setCsiSinr(int csiSinr) { + this.csiSinr = csiSinr; + } + + public int getSsRsrp() { + return ssRsrp; + } + + public void setSsRsrp(int ssRsrp) { + this.ssRsrp = ssRsrp; + } + + public int getSsRsrq() { + return ssRsrq; + } + + public void setSsRsrq(int ssRsrq) { + this.ssRsrq = ssRsrq; + } + + public int getSsSinr() { + return ssSinr; + } + + public void setSsSinr(int ssSinr) { + this.ssSinr = ssSinr; + } + + public int getCdmaDbm() { + return cdmaDbm; + } + + public void setCdmaDbm(int cdmaDbm) { + this.cdmaDbm = cdmaDbm; + } + + public int getCdmaEcio() { + return cdmaEcio; + } + + public void setCdmaEcio(int cdmaEcio) { + this.cdmaEcio = cdmaEcio; + } + + public int getEvdoDbm() { + return evdoDbm; + } + + public void setEvdoDbm(int evdoDbm) { + this.evdoDbm = evdoDbm; + } + + public int getEvdoEcio() { + return evdoEcio; + } + + public void setEvdoEcio(int evdoEcio) { + this.evdoEcio = evdoEcio; + } + + public int getEvdoSnr() { + return evdoSnr; + } + + public void setEvdoSnr(int evdoSnr) { + this.evdoSnr = evdoSnr; + } + public void setGsmCellInfo(int mcc, int mnc, int lac, int cid) { this.mcc = mcc; this.mnc = mnc; this.lac = lac; this.cid = cid; - this.psc = UNKNOWN_CID; this.networkType = NetworkGroup.Gsm; } @@ -219,22 +422,23 @@ public void setWcdmaCellInfo(int mcc, int mnc, int lac, int cid, int psc) { public void setWcdmaSignalInfo(int asu, int signalStrength) { this.asu = asu; this.dbm = signalStrength; - this.ta = UNKNOWN_SIGNAL; } public void setCdmaCellInfo(int systemId, int networkId, int baseStationId) { - this.mcc = UNKNOWN_CID; this.mnc = systemId; this.lac = networkId; this.cid = baseStationId; - this.psc = UNKNOWN_CID; this.networkType = NetworkGroup.Cdma; } - public void setCdmaSignalInfo(int asu, int signalStrength) { + public void setCdmaSignalInfo(int asu, int signalStrength, int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr) { this.asu = asu; this.dbm = signalStrength; - this.ta = UNKNOWN_SIGNAL; + this.cdmaDbm = cdmaDbm; + this.cdmaEcio = cdmaEcio; + this.evdoDbm = evdoDbm; + this.evdoEcio = evdoEcio; + this.evdoSnr = evdoSnr; } public void setLteCellInfo(int mcc, int mnc, int tac, int ci, int pci) { @@ -246,10 +450,15 @@ public void setLteCellInfo(int mcc, int mnc, int tac, int ci, int pci) { this.networkType = NetworkGroup.Lte; } - public void setLteSignalInfo(int asu, int signalStrength, int timingAdvance) { + public void setLteSignalInfo(int asu, int signalStrength, int timingAdvance, int rsrp, int rsrq, int rssi, int rssnr, int cqi) { this.asu = asu; this.dbm = signalStrength; this.ta = timingAdvance; + this.rsrp = rsrp; + this.rsrq = rsrq; + this.rssi = rssi; + this.rssnr = rssnr; + this.cqi = cqi; } public void setNrCellInfo(String mccString, String mncString, int tac, long nci, int pci) { @@ -261,9 +470,15 @@ public void setNrCellInfo(String mccString, String mncString, int tac, long nci, this.networkType = NetworkGroup.Nr; } - public void setNrSignalInfo(int asu, int signalStrength) { + public void setNrSignalInfo(int asu, int signalStrength, int csiRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr) { this.asu = asu; this.dbm = signalStrength; + this.csiRsrp = csiRsrp; + this.csiRsrq = csiRsrq; + this.csiSinr = csiSinr; + this.ssRsrp = ssRsrp; + this.ssRsrq = ssRsrq; + this.ssSinr = ssSinr; } public void setTdscdmaCellInfo(String mccString, String mncString, int lac, int cid, int cpid) { @@ -275,9 +490,10 @@ public void setTdscdmaCellInfo(String mccString, String mncString, int lac, int this.networkType = NetworkGroup.Tdscdma; } - public void setTdscdmaSignalInfo(int asu, int signalStrength) { + public void setTdscdmaSignalInfo(int asu, int signalStrength, int rscp) { this.asu = asu; this.dbm = signalStrength; + this.rscp = rscp; } public void setGsmCellLocation(int mcc, int mnc, int lac, int cid, NetworkGroup networkType) { @@ -285,7 +501,6 @@ public void setGsmCellLocation(int mcc, int mnc, int lac, int cid, NetworkGroup this.mnc = mnc; this.lac = lac; this.cid = cid; - this.psc = UNKNOWN_CID; this.networkType = networkType; } @@ -301,22 +516,18 @@ public void setGsmCellLocation(int mcc, int mnc, int lac, long cid, int psc, Net public void setGsmLocationSignal(int asu, int signalStrength) { this.asu = asu; this.dbm = signalStrength; - this.ta = UNKNOWN_SIGNAL; } public void setCdmaCellLocation(int systemId, int networkId, int baseStationId) { - this.mcc = UNKNOWN_CID; this.mnc = systemId; this.lac = networkId; this.cid = baseStationId; - this.psc = UNKNOWN_CID; this.networkType = NetworkGroup.Cdma; } public void setCdmaLocationSignal(int asu, int signalStrength) { this.asu = asu; this.dbm = signalStrength; - this.ta = UNKNOWN_SIGNAL; } @NotNull @@ -335,6 +546,23 @@ public String toString() { ", ta=" + ta + ", asu=" + asu + ", dbm=" + dbm + + ", rsrp=" + rsrp + + ", rsrq=" + rsrq + + ", rssi=" + rssi + + ", rssnr=" + rssnr + + ", cqi=" + cqi + + ", rscp=" + rscp + + ", csiRsrp=" + csiRsrp + + ", csiRsrq=" + csiRsrq + + ", csiSinr=" + csiSinr + + ", ssRsrp=" + ssRsrp + + ", ssRsrq=" + ssRsrq + + ", ssSinr=" + ssSinr + + ", cdmaDbm=" + cdmaDbm + + ", cdmaEcio=" + cdmaEcio + + ", evdoDbm=" + evdoDbm + + ", evdoEcio=" + evdoEcio + + ", evdoSnr=" + evdoSnr + '}'; } } diff --git a/app/src/main/res/raw-DE/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-DE/info_about_notify_measurements_collected_content.html index 90cf58bd..53e194a6 100644 --- a/app/src/main/res/raw-DE/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-DE/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Messungen-gesammelt Ereignis

Tower Collector kann jedes Mal einen Intent senden, wenn ein neues Satz an Messungen gesammelt wurde. Das kann in den Einstellungen aktiviert werden. Der Inhalt der Benachrichtigung ist eine JSON-Struktur mit Daten wie Uhrzeit und GPS-Position. Die Bedeutung von Feldnamen und Werten ist gleich wie in exportieren CSV-Dateien.
Bei Mobilfunkzellen hängt die Liste der Felder vom Typ des Netzes (net_type) ab. Nicht unterstützte oder fehlende Werte werden auf null gesetzt.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid zu mnc, nid zu lac, bid zu cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac zu lac, ci zu cell_id, pci zu psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac zu lac, nci zu cell_id, pci zu psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid zu cell_id, cpid zu psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Action:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Messungen-gesammelt Ereignis

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Messungen-gesammelt Ereignis

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-ES/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-ES/info_about_notify_measurements_collected_content.html index ecfdfae3..c0999c71 100644 --- a/app/src/main/res/raw-ES/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-ES/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Mediciones recogidas evento

El selector puede enviar una intención cada vez que se recoge un nuevo conjunto de mediciones si se establece en preferencias. El contenido de la notificación será una estructura JSON con cosas comunes como el tiempo y el GPS extraídos. Los nombres de campo y los valores se asignan de la misma manera que en el archivo CSV exportado.
La lista de campos utilizados por las celdas depende del tipo (net_type). Los valores no compatibles o faltantes se establecerán en null .

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid como mnc, nid como lac, bid como cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac como lac, ci como cell_id, pci como psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac como lac, nci como cell_id, pci como psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid como cell_id, cpid como psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Acción:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Mediciones recogidas evento

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Mediciones recogidas evento

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-HE/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-HE/info_about_notify_measurements_collected_content.html index 5fa611d3..4d8e0d18 100644 --- a/app/src/main/res/raw-HE/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-HE/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

אירוע מדידות שנאספו

מנגנון האיסוף יכול לשלוח intent בכל פעם שסדרה חדשה של בדיקות נאספת אם כך הוגדר בהגדרות. התוכן של ההתראות יהיה במבנה JSON עם דברים משותפים כמו זמן ו־GPS שיחולצו. שמות השדות והערכים ממופים באותו האופן כמו בקובץ CSV.
רשימת השדות בשימוש האנטנות תלויה בסוג (net_type). ערכים בלתי נתמכים או חסרים יוגדרו לכדי null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid as mnc, nid as lac, bid as cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac as lac, ci as cell_id, pci as psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac as lac, nci as cell_id, pci as psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid as cell_id, cpid as psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

פעולה:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

אירוע מדידות שנאספו

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
‎},
@@ -52,7 +51,12 @@

אירוע מדידות שנאספו

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
‎}
‎]
‎} \ No newline at end of file diff --git a/app/src/main/res/raw-HU/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-HU/info_about_notify_measurements_collected_content.html index 5b62a760..126d9880 100644 --- a/app/src/main/res/raw-HU/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-HU/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Mérés begyűjtési esemény

Az adatgyűjtő képes egy szándékot küldeni minden alkalommal, ha egy új mérés került begyűjtésre, ha ez engedélyezve van a Beállításokban. Az értesítés tartalma egy JSON struktúra lesz a szokásos dolgokkal, mint az idő és a kinyert GPS pozíció. A mezőnevek és értékek ugyanúgy vannak megfeleltetve, mint az exportált CSV fájlban.
A cellák által használt mezők listája a típustól függ (net_type). A nem támogatott vagy hiányzó értékek null értéket kapnak.

    -
  • GSM – mcc, mnc, lac, cell_id, asu, dbm
  • -
  • UMTS – mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA – sid mint mnc, nid mint lac, bid mint cell_id, asu, dbm
  • -
  • LTE – mcc, mnc, tac mint lac, ci mint cell_id, pci mint psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac mint lac, nci mint cell_id, pci mint psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid mint cell_id, cpid mint psc, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • +
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Művelet:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Mérés begyűjtési esemény

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Mérés begyűjtési esemény

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-IT/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-IT/info_about_notify_measurements_collected_content.html index 09bbd303..8cbbdd72 100644 --- a/app/src/main/res/raw-IT/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-IT/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Segnalazione delle misurazioni raccolte

Il programma può inviare una segnalazione ogni volta che vengono raccolte nuove serie di misurazioni, se impostato in Preferenze. Il contenuto della notifica sarà una struttura JSON con elementi comuni come l'orario e il GPS estratti. I nomi dei campi e i valori sono mappati allo stesso modo del file CSV esportato.
L'elenco dei campi usati dalle celle dipende dal tipo (net_type). I valori non supportati o mancanti verranno impostati su null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid come mnc, nid come lac, bid come cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac come lac, ci come cell_id, pci come psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac come lac, nci come cell_id, pci come psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid come cell_id, cpid come psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Azione:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Segnalazione delle misurazioni raccolte

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Segnalazione delle misurazioni raccolte

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-IW/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-IW/info_about_notify_measurements_collected_content.html index 5fa611d3..4d8e0d18 100644 --- a/app/src/main/res/raw-IW/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-IW/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

אירוע מדידות שנאספו

מנגנון האיסוף יכול לשלוח intent בכל פעם שסדרה חדשה של בדיקות נאספת אם כך הוגדר בהגדרות. התוכן של ההתראות יהיה במבנה JSON עם דברים משותפים כמו זמן ו־GPS שיחולצו. שמות השדות והערכים ממופים באותו האופן כמו בקובץ CSV.
רשימת השדות בשימוש האנטנות תלויה בסוג (net_type). ערכים בלתי נתמכים או חסרים יוגדרו לכדי null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid as mnc, nid as lac, bid as cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac as lac, ci as cell_id, pci as psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac as lac, nci as cell_id, pci as psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid as cell_id, cpid as psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

פעולה:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

אירוע מדידות שנאספו

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
‎},
@@ -52,7 +51,12 @@

אירוע מדידות שנאספו

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
‎}
‎]
‎} \ No newline at end of file diff --git a/app/src/main/res/raw-PL/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-PL/info_about_notify_measurements_collected_content.html index 32fe5f33..92af882f 100644 --- a/app/src/main/res/raw-PL/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-PL/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Zdarzenie zebrania próbki

Podczas zbierania mogą zostać wysyłane powiadomienia za każdym razem, gdy nowy zbiór próbek jest zapisywany, o ile odpowiednia opcja została włączona w Ustawieniach. Zawartość powiadomienia będzie zapisana w formacie JSON, a części wspólne zbioru próbek, takie jak czas i współrzędne, będą wydzielone. Nazwy pól i wartości są takie same jak w wyeksportowanym pliku CSV.
Lista pól dostępnych dla przekaźników zależy od jego typu (net_type). Nieobsługiwane lub brakujące wartości zostaną ustawione na null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid jako mnc, nid jako lac, bid jako cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac jako lac, ci jako cell_id, pci jako psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac jako lac, nci jako cell_id, pci jako psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid jako cell_id, cpid jako psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Akcja:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Zdarzenie zebrania próbki

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Zdarzenie zebrania próbki

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-PT/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-PT/info_about_notify_measurements_collected_content.html index 28268747..a8f2949e 100644 --- a/app/src/main/res/raw-PT/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-PT/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Evento de medições coletadas

O coletor pode enviar um intent toda vez que um novo conjunto de medições é coletado se assim estiver configurado em Preferências. O conteúdo da notificação será uma estrutura JSON com coisas comuns, como horário e GPS. Nomes e valores dos campos são mapeados da mesma forma que no arquivo CSV exportado.
A lista de campos usados pelas células depende do tipo (net_type). Valores não suportados ou faltantes serão definidos com null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid como mnc, nid como lac, bid como cell_id, asi, dbm
  • -
  • LTE - mcc, mnc, tac como lac, ci como cell_id, pci como psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac como lac, nci como cell_id, pci como psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid como cell_id, cpid como psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Action:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Evento de medições coletadas

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Evento de medições coletadas

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-RU/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-RU/info_about_notify_measurements_collected_content.html index c74ec32e..f2ca11b7 100644 --- a/app/src/main/res/raw-RU/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-RU/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Событие сбора измерений

Tower Collector может отправлять уведомления отсылкой события при каждом собранном наборе измерений, если это установлено в настройках. Содержанием уведомления будет JSON структура с общими полями типа времени и GPS координат. Имена полей и значений аналогичны экспортиртируемым в CSV файл.
Список полей, используемых в сотах зависит от их типа (net_type). Неподдерживаемые или пустые значения передаются как null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid это mnc, nid это lac, bid это cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac это lac, ci это cell_id, pci это psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac это lac, nci это cell_id, pci это psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid это cell_id, cpid это psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Действие:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Событие сбора измерений

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Событие сбора измерений

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw-UK/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-UK/info_about_notify_measurements_collected_content.html index c957af22..7afcd8e7 100644 --- a/app/src/main/res/raw-UK/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-UK/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Виміри зібраних подій

Колектор може відправити дані кожен раз, коли збирається новий набір вимірювань, якщо встановлено в налаштуваннях. Зміст сповіщення буде структурою JSON із загальними даними, такими як час та координати GPS. Імена і значення полів відображаються так само, як у експортованому файлі CSV.
Список полів, що використовуються клітинками, залежить від типу (net_type). Непідтримувані чи відсутні значення будуть встановлені як null .

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid для mnc, nid для lac, bid для cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac для lac, ci для cell_id, pci для psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac для lac, nci для cell_id, pci для psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid для cell_id, cpid для psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Дія:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Виміри зібраних подій

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Виміри зібраних подій

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
}
\ No newline at end of file diff --git a/app/src/main/res/raw-ZH-rCN/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw-ZH-rCN/info_about_notify_measurements_collected_content.html index 313ceef0..5862f518 100644 --- a/app/src/main/res/raw-ZH-rCN/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw-ZH-rCN/info_about_notify_measurements_collected_content.html @@ -8,12 +8,12 @@

测量收集事件

单元格使用的字段列表取决于类型(net_type)。 不支持或缺少的值将设置为 null

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid 相当于 mnc, nid 相当于 lac, bid 相当于 cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac 相当于 lac, ci 相当于 cell_id, pci 相当于 psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac 相当于 lac, nci 相当于 cell_id, pci 相当于 psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid 相当于 cell_id, cpid 相当于 psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

操作:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -39,7 +39,6 @@

测量收集事件

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -53,7 +52,12 @@

测量收集事件

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file diff --git a/app/src/main/res/raw/info_about_notify_measurements_collected_content.html b/app/src/main/res/raw/info_about_notify_measurements_collected_content.html index a210b5a8..939106f6 100644 --- a/app/src/main/res/raw/info_about_notify_measurements_collected_content.html +++ b/app/src/main/res/raw/info_about_notify_measurements_collected_content.html @@ -7,12 +7,12 @@

Measurements collected event

Collector can send an intent every time new set of measurements is collected if set in Preferences. The content of notification will be a JSON structure with common things like time and GPS extracted. Field names and values are mapped the same way as in exported CSV file.
List of fields used by cells depend on type (net_type). Unsupported or missing values will be set to null.

    -
  • GSM - mcc, mnc, lac, cell_id, asu, dbm
  • +
  • GSM - mcc, mnc, lac, cell_id, asu, dbm, ta
  • UMTS - mcc, mnc, lac, cell_id, psc, asu, dbm
  • -
  • CDMA - sid as mnc, nid as lac, bid as cell_id, asu, dbm
  • -
  • LTE - mcc, mnc, tac as lac, ci as cell_id, pci as psc, ta, asu, dbm
  • -
  • 5G NR - mcc, mnc, tac as lac, nci as cell_id, pci as psc, asu, dbm
  • -
  • TD-SCDMA - mcc, mnc, lac, cid as cell_id, cpid as psc, asu, dbm
  • +
  • CDMA - sid → mnc, nid → lac, bid → cell_id, asu, dbm, cdma_dbm, cdma_ecio, evdo_dbm, evdo_ecio, evdo_snr
  • +
  • LTE - mcc, mnc, tac → lac, ci → cell_id, pci → psc, ta, asu, dbm, rsrp, rsrq, rssi, rssnr, cqi
  • +
  • 5G NR - mcc, mnc, tac → lac, nci → cell_id, pci → psc, asu, dbm, csi_rsrp, csi_rsrq, csi_sinr, ss_rsrp, ss_rsrq, ss_sinr
  • +
  • TD-SCDMA - mcc, mnc, lac, cid → cell_id, cpid → psc, asu, dbm, rscp

Action:

info.zamojski.soft.towercollector.MEASUREMENTS_COLLECTED @@ -38,7 +38,6 @@

Measurements collected event

"psc" : 1234,
"asu" : 12,
"dbm" : -112,
- "ta" : 21,
"neighboring" : "false",
"net_type" : "UMTS"
},
@@ -52,7 +51,12 @@

Measurements collected event

"dbm" : -112,
"ta" : null,
"neighboring" : "false",
- "net_type" : "CDMA"
+ "net_type" : "CDMA",
+ "cdma_dbm" : null,
+ "cdma_ecio" : null,
+ "evdo_dbm" : null,
+ "evdo_ecio" : null,
+ "evdo_snr" : null
}
]
} \ No newline at end of file