提交 d6d89335 authored 作者: PGY's avatar PGY

feat(Mqtt_Universal_Tool): 重构Android信息上报脚本以支持设备配对模式

- 将CSV配置从列表改为字典,区分心跳和设备信息配置
- 修改线程模型:每个线程固定负责一个设备,持续发送心跳和设备信息对
- 调整发送策略:每30秒发送一次心跳和设备信息,而非循环发送
- 增强错误处理:添加连续错误检测,超过阈值自动退出线程
- 优化日志输出:减少冗余日志,按优先级分级显示
- 添加资源监控:集成psutil监控内存和CPU使用情况
- 改进路径处理:修复BOM编码问题和路径导入逻辑
- 优化线程管理:调整线程启动间隔和超时设置
上级 4e9152d6
......@@ -13,13 +13,12 @@ import signal
# ==================== 配置区域 (修改这里即可自定义行为) ====================
# ============================================================================
# 1. CSV配置文件路径列表 (支持多个文件,同时加载)
# 1. CSV配置文件路径字典 (区分心跳和设备信息)
# 注意:路径可以是相对于当前脚本的路径,也可以是绝对路径
CSV_FILES = [
'../TestData/ReservationSystem_DoorScreen/MQTT心跳上报_100条.csv',
#'../TestData/ReservationSystem_DoorScreen/MQTT信息上报_100条.csv',
'../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv', # 新增:设备信息上报
]
CSV_FILES = {
'heartbeat': '../TestData/ReservationSystem_DoorScreen/MQTT心跳上报_300条.csv',
'device_info': '../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_300条.csv',
}
# 2. MQTT服务器连接配置
MQTT_CONFIG = {
......@@ -31,22 +30,23 @@ MQTT_CONFIG = {
# 3. 线程和发送控制
THREAD_CONFIG = {
'max_threads': 100, # 最大线程数
'send_interval': 5, # 每条消息发送间隔(秒)
'startup_delay': 0.05, # 线程启动间隔(秒),避免同时启动
'max_threads': 300, # 最大线程数(建议根据实际需求调整,50-100通常足够)
'send_interval': 30, # 每对消息发送间隔(秒)
'startup_delay': 0.1, # 线程启动间隔(秒),避免同时启动消耗过大资源
'enable_resource_monitor': True, # 是否启用资源监控
}
# 4. 日志配置
LOG_CONFIG = {
'log_dir': '/var/log/scripts', # Linux日志目录
'fallback_log_dir': 'logs', # Windows备用日志目录
'log_level': logging.INFO, # 日志级别: DEBUG/INFO/WARNING/ERROR
'log_level': logging.ERROR, # 日志级别: DEBUG/INFO/WARNING/ERROR(改为INFO以便看到启动信息)
'reconnect_log_interval': 10, # 每N次重连打印一次日志
}
# 5. 优雅退出配置
SHUTDOWN_CONFIG = {
'thread_join_timeout': 10, # 等待线程结束的最大时间(秒)
'thread_join_timeout': 2, # 等待线程结束的最大时间(秒)
'error_wait_time': 5, # 发生错误后等待时间(秒)
}
......@@ -56,44 +56,66 @@ SHUTDOWN_CONFIG = {
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
# 构建预定系统的绝对路径(向上一级到 Mqtt_Universal_Tool,再向上一级到项目根目录)
预定系统_path = os.path.abspath(os.path.join(current_dir, '..', '..'))
# 添加路径
sys.path.append(预定系统_path)
if 预定系统_path not in sys.path:
sys.path.insert(0, 预定系统_path)
print(f"已添加路径: {预定系统_path}")
# 导入模块
try:
from 预定系统.Base.Mqtt_Send import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.Mqtt_Send import *
print(f"当前 sys.path: {sys.path}")
raise
# ========== 日志配置 ==========
# 创建日志目录(遵循项目规范:/var/log/scripts/)
LOG_DIR = LOG_CONFIG['log_dir']
# 检测操作系统并设置合适的日志目录
import platform
if platform.system() == 'Windows':
# Windows 系统使用脚本所在目录的 logs 文件夹
LOG_DIR = os.path.join(current_dir, LOG_CONFIG['fallback_log_dir'])
else:
# Linux 系统使用标准日志目录
LOG_DIR = LOG_CONFIG['log_dir']
# 创建日志目录
if not os.path.exists(LOG_DIR):
try:
os.makedirs(LOG_DIR, exist_ok=True)
print(f"已创建日志目录: {LOG_DIR}")
except PermissionError:
# Windows环境下使用当前目录作为备选
LOG_DIR = os.path.join(current_dir, LOG_CONFIG['fallback_log_dir'])
except Exception as e:
# 如果创建失败,使用当前目录作为备选
LOG_DIR = os.path.join(current_dir, 'logs')
os.makedirs(LOG_DIR, exist_ok=True)
print(f"权限不足,使用备用日志目录: {LOG_DIR}")
print(f"使用备用日志目录: {LOG_DIR}")
# 生成日志文件名(包含时间戳)
log_filename = f"mqtt_android_info_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"
log_filepath = os.path.join(LOG_DIR, log_filename)
# 配置双通道日志输出(控制台 + 文件)
logging.basicConfig(
level=LOG_CONFIG['log_level'],
format='%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s',
handlers=[
logging.StreamHandler(), # 控制台输出
logging.FileHandler(log_filepath, encoding='utf-8') # 文件输出
]
)
# 先配置根 logger,确保所有模块的 logging 调用都能输出到控制台
root_logger = logging.getLogger()
root_logger.setLevel(LOG_CONFIG['log_level'])
# 清除可能存在的旧 handlers
root_logger.handlers.clear()
# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(LOG_CONFIG['log_level'])
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s')
console_handler.setFormatter(console_formatter)
root_logger.addHandler(console_handler)
# 创建文件处理器
file_handler = logging.FileHandler(log_filepath, encoding='utf-8')
file_handler.setLevel(LOG_CONFIG['log_level'])
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s')
file_handler.setFormatter(file_formatter)
root_logger.addHandler(file_handler)
logger = logging.getLogger(__name__)
logger.info(f"日志文件路径: {log_filepath}")
......@@ -131,10 +153,10 @@ class StableMQTTClient:
self.client = None
# 连接状态标记:用于避免重复打印连接成功日志
self.is_connected = False
self.is_connected = True
# 重连计数器:统计重连次数
self.reconnect_count = 0
self.reconnect_count = 5
# 最后重连日志时间:用于控制重连日志频率
self.last_reconnect_log_time = 0
......@@ -170,7 +192,7 @@ class StableMQTTClient:
# 只在首次连接或重连成功后打印日志
if not self.is_connected:
logger.info(f"✅ 连接成功,Client ID: {self.client_id}")
#logger.info(f"✅ 连接成功,Client ID: {self.client_id}")
self.is_connected = True
else:
self.reconnect_count += 1
......@@ -222,191 +244,301 @@ class StableMQTTClient:
# 工作线程函数
def worker(mqtt_client, config_queue, interval, stop_event):
def worker(mqtt_client, device_index, heartbeat_config, device_info_config, interval, stop_event):
"""MQTT消息发布工作线程
持续从配置队列中获取配置信息,构建MQTT消息并发布到指定主题。
该线程会循环运行直到被外部中断。
每个线程固定负责一个设备,持续向该设备发送相同的消息对:
1. 心跳上报消息 (/uams/android/broadcast)
2. 设备信息上报消息 (rebootResponseTopic)
每30秒发送一次相同的消息对,循环执行直到被外部中断。
Args:
mqtt_client: 已连接的MQTT客户端实例,用于发布消息
config_queue: 包含配置信息的队列,每个配置项应包含topic等必要字段
interval: 每次消息发布后的间隔时间(秒)
device_index: 设备索引号(用于日志标识)
heartbeat_config: 该设备的心跳上报配置
device_info_config: 该设备的设备信息上报配置
interval: 每次消息对发送后的间隔时间(秒)
stop_event: 停止事件标志,用于优雅退出线程
"""
thread_name = threading.current_thread().name
message_count = 0
# 获取设备ID用于日志
device_id = heartbeat_config.get('clientId', 'Unknown')
logger.info(f"📋 [{thread_name}] 初始化完成,负责设备 {device_index+1} (clientId={device_id})")
# 资源监控:记录线程启动时间
thread_start_time = time.time()
error_count = 0
max_consecutive_errors = 10 # 连续错误最大次数
while not stop_event.is_set():
try:
# 从队列获取配置信息(带超时,便于响应停止信号)
try:
config = config_queue.get(timeout=1)
except:
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# ========== 第1条:发送心跳上报消息 ==========
topic = heartbeat_config.get("topic")
if not topic:
logger.error(f"❌ [{thread_name}] 心跳配置缺少topic字段!")
time.sleep(interval)
continue
# 构建并发布MQTT消息
topic = config["topic"]
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
message = Mqtt.build_message(config, current_time, topic)
message = Mqtt.build_message(heartbeat_config, current_time, topic)
mqtt_client.publish(topic, message)
message_count += 1
error_count = 0 # 成功后重置错误计数
# 仅在WARNING级别记录心跳消息,减少日志量
logger.log(logging.WARNING if message_count % 10 == 0 else logging.DEBUG,
f"💓 [{thread_name}] 设备{device_index+1} 心跳消息 #{message_count}: clientId={device_id}")
# ========== 第2条:发送设备信息上报消息 ==========
topic = device_info_config.get("topic")
if not topic:
logger.error(f"❌ [{thread_name}] 设备信息配置缺少topic字段!")
time.sleep(interval)
continue
message = Mqtt.build_message(device_info_config, current_time, topic)
mqtt_client.publish(topic, message)
message_count += 1
# 每发送100条消息打印一次统计信息
if message_count % 100 == 0:
logger.debug(f"📊 [{thread_name}] 已发送 {message_count} 条消息")
# 仅在WARNING级别记录设备信息消息,减少日志量
logger.log(logging.WARNING if message_count % 10 == 0 else logging.DEBUG,
f"📱 [{thread_name}] 设备{device_index+1} 设备信息 #{message_count}: clientId={device_id}")
# ✅ 关键:每对消息发送后等待固定间隔(30秒)
# 优化:减少INFO日志频率,每10次输出一次
if message_count % 20 == 0:
elapsed = time.time() - thread_start_time
logger.info(f"⏰ [{thread_name}] 设备{device_index+1} 已发送 {message_count} 条消息,运行时长 {elapsed:.0f}秒,等待 {interval} 秒后发送下一轮...")
time.sleep(interval)
except Exception as e:
# 异常处理:记录错误日志并短暂等待
logger.error(f"❌ 线程 {thread_name} 发送消息失败: {e}")
time.sleep(SHUTDOWN_CONFIG['error_wait_time']) # 出错后等待
finally:
# 标记队列任务完成
try:
config_queue.task_done()
except:
pass
error_count += 1
logger.error(f"❌ [{thread_name}] 设备{device_index+1} 发生错误 #{error_count}: {str(e)}")
logger.info(f"🛑 [{thread_name}] 线程已停止,共发送 {message_count} 条消息")
# 连续错误过多时,线程自动退出防止资源泄漏
if error_count >= max_consecutive_errors:
logger.critical(f"💀 [{thread_name}] 设备{device_index+1} 连续错误 {error_count} 次,线程将退出")
break
time.sleep(SHUTDOWN_CONFIG['error_wait_time'])
# 全局停止事件
stop_event = threading.Event()
# 主函数
def main():
logger.info("=" * 80)
logger.info("开始执行 MQTT Android 信息上报脚本")
logger.info("=" * 80)
def signal_handler(sig, frame):
"""处理Ctrl+C信号,优雅退出"""
logger.info("\n🛑 接收到中断信号,正在优雅退出...")
stop_event.set()
# 资源监控:记录脚本启动时间
script_start_time = time.time()
# 分别加载两种类型的配置
heartbeat_configs = []
device_info_configs = []
if __name__ == "__main__":
# 注册信号处理器
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
# 合并所有CSV配置
configs = []
for csv_file_relative_path in CSV_FILES:
csv_file_path = os.path.join(current_dir, csv_file_relative_path)
# 加载心跳上报配置
heartbeat_csv_path = os.path.join(current_dir, CSV_FILES['heartbeat'])
logger.info(f"📂 尝试读取心跳配置文件: {heartbeat_csv_path}")
if os.path.exists(heartbeat_csv_path):
try:
logger.info(f"⏳ 正在读取心跳 CSV 文件...")
heartbeat_configs = Mqtt.read_config_from_csv(heartbeat_csv_path)
logger.info(f"✅ 读取完成,共 {len(heartbeat_configs)} 条心跳配置")
# 修复BOM问题
if heartbeat_configs and len(heartbeat_configs) > 0:
first_key = list(heartbeat_configs[0].keys())[0]
if first_key.startswith('\ufeff'):
logger.warning(f"⚠️ 检测到BOM,正在修复心跳配置的键名")
for config in heartbeat_configs:
clean_key = first_key.replace('\ufeff', '')
if first_key in config:
config[clean_key] = config.pop(first_key)
# 过滤无效配置
heartbeat_configs = [c for c in heartbeat_configs if c and isinstance(c, dict) and c.get("topic")]
logger.info(f"📄 有效心跳配置: {len(heartbeat_configs)} 条")
except Exception as e:
logger.error(f"❌ 读取心跳配置文件时发生错误: {str(e)}", exc_info=True)
else:
logger.error(f"❌ 心跳配置文件不存在: {heartbeat_csv_path}")
# 加载设备信息上报配置
device_info_csv_path = os.path.join(current_dir, CSV_FILES['device_info'])
logger.info(f"📂 尝试读取设备信息配置文件: {device_info_csv_path}")
if os.path.exists(device_info_csv_path):
try:
file_configs = Mqtt.read_config_from_csv(csv_file_path)
configs.extend(file_configs)
logger.info(f"📄 从 {csv_file_path} 读取了 {len(file_configs)} 条配置")
logger.info(f"⏳ 正在读取设备信息 CSV 文件...")
device_info_configs = Mqtt.read_config_from_csv(device_info_csv_path)
logger.info(f"✅ 读取完成,共 {len(device_info_configs)} 条设备信息配置")
# 修复BOM问题
if device_info_configs and len(device_info_configs) > 0:
first_key = list(device_info_configs[0].keys())[0]
if first_key.startswith('\ufeff'):
logger.warning(f"⚠️ 检测到BOM,正在修复设备信息配置的键名")
for config in device_info_configs:
clean_key = first_key.replace('\ufeff', '')
if first_key in config:
config[clean_key] = config.pop(first_key)
# 过滤无效配置
device_info_configs = [c for c in device_info_configs if c and isinstance(c, dict) and c.get("topic")]
logger.info(f"📄 有效设备信息配置: {len(device_info_configs)} 条")
except Exception as e:
logger.error(f"❌ 读取 {csv_file_path} 失败: {e}")
logger.error(f"❌ 读取设备信息配置文件时发生错误: {str(e)}", exc_info=True)
else:
logger.error(f"❌ 设备信息配置文件不存在: {device_info_csv_path}")
if not configs:
logger.error("❌ 未读取到任何配置,程序退出")
sys.exit(1)
# 检查是否有配置
logger.info(f"📊 总共加载了 {len(heartbeat_configs)} 条心跳配置, {len(device_info_configs)} 条设备信息配置")
logger.info(f"📊 总共加载 {len(configs)} 条配置")
if not heartbeat_configs or not device_info_configs:
logger.error("❌ 没有有效的配置文件,无法继续执行")
return
# 统计不同类型配置数量
topic_stats = {}
for config in configs:
topic = config.get("topic", "unknown")
topic_stats[topic] = topic_stats.get(topic, 0) + 1
# 计算实际设备数量(取两个配置列表的最小值)
actual_device_count = min(len(heartbeat_configs), len(device_info_configs))
logger.info(f"🔢 实际可运行的设备数量: {actual_device_count}")
logger.info(f"📈 配置分布: {topic_stats}")
# 智能调整线程数
actual_thread_count = min(THREAD_CONFIG['max_threads'], actual_device_count)
num_threads = min(len(configs), THREAD_CONFIG['max_threads']) # 线程数不超过配置数
# 资源警告
if actual_thread_count > 100:
logger.warning(f"⚠️ 线程数 {actual_thread_count} 较多,请注意系统资源消耗!")
logger.warning(f"⚠️ 建议:如果不是压力测试,请减少 max_threads 配置")
# 创建配置队列
config_queue = Queue()
logger.info(f"🧵 将启动 {actual_thread_count} 个工作线程(每个线程负责一个设备)")
# 创建稳定的MQTT客户端列表
mqtt_clients = []
failed_clients = 0
for i, config in enumerate(configs):
client_id = config.get("clientId", f"python_client_{i}")
# 资源监控:显示系统信息
try:
import psutil
process = psutil.Process()
memory_info = process.memory_info()
logger.info(f"💾 当前内存占用: {memory_info.rss / 1024 / 1024:.2f} MB")
except ImportError:
logger.debug("⚠️ psutil 未安装,跳过资源监控(可选安装: pip install psutil)")
logger.info("✅ 配置加载完成,开始创建 MQTT 客户端...")
# 创建MQTT客户端实例
logger.info(f"🔌 正在连接 MQTT 服务器: {MQTT_CONFIG['broker_address']}:{MQTT_CONFIG['port']}")
mqtt_client = StableMQTTClient(
MQTT_CONFIG['broker_address'],
MQTT_CONFIG['port'],
MQTT_CONFIG['username'],
MQTT_CONFIG['password'],
client_id
broker_address=MQTT_CONFIG['broker_address'],
port=MQTT_CONFIG['port'],
username=MQTT_CONFIG['username'],
password=MQTT_CONFIG['password'],
client_id="MQTT_Publisher"
)
mqtt_clients.append(mqtt_client)
except Exception as e:
logger.error(f"❌ 创建客户端 {client_id} 失败: {str(e)}")
failed_clients += 1
logger.info("✅ MQTT 客户端创建成功")
if failed_clients > 0:
logger.warning(f"⚠️ 共有 {failed_clients} 个客户端创建失败")
# 创建统一的停止事件(所有线程共享)
stop_event = threading.Event()
if not mqtt_clients:
logger.error("❌ 没有可用的MQTT客户端,程序退出")
sys.exit(1)
try:
# 创建工作线程
# 启动工作线程 - 每个线程负责一个固定设备
threads = []
for i in range(num_threads):
t = threading.Thread(
logger.info(f"🚀 正在启动 {actual_thread_count} 个工作线程...")
for i in range(actual_thread_count):
# 为每个线程分配固定的设备配置
heartbeat_config = heartbeat_configs[i]
device_info_config = device_info_configs[i]
thread = threading.Thread(
target=worker,
args=(
mqtt_clients[i % len(mqtt_clients)],
config_queue,
THREAD_CONFIG['send_interval'],
stop_event
),
name=f"Worker-{i + 1}",
daemon=False # 改为非守护线程,便于优雅退出
args=(mqtt_client, i, heartbeat_config, device_info_config, THREAD_CONFIG['send_interval'], stop_event),
name=f"Device-{i+1}"
)
t.start()
threads.append(t)
time.sleep(THREAD_CONFIG['startup_delay']) # 线程启动间隔
threads.append(thread)
thread.start()
# 主循环 - 持续运行
logger.info("🚀 系统已启动,将持续运行... (按 Ctrl+C 停止)")
# 增加启动间隔,避免同时创建线程消耗过大资源
if THREAD_CONFIG['startup_delay'] > 0:
time.sleep(THREAD_CONFIG['startup_delay'])
# 每启动50个线程输出一次进度
if (i + 1) % 50 == 0:
logger.info(f"📈 已启动 {i + 1}/{actual_thread_count} 个线程...")
logger.info("✅ 所有工作线程已启动,每个线程负责一个固定设备")
# 资源监控:启动定时监控线程
if THREAD_CONFIG.get('enable_resource_monitor', False):
def resource_monitor():
"""定期监控系统资源使用情况"""
monitor_count = 0
while not stop_event.is_set():
try:
# 将配置放入队列
for config in configs:
time.sleep(60) # 每60秒监控一次
if stop_event.is_set():
break
config_queue.put(config)
# 等待所有任务完成或收到停止信号
while not config_queue.empty() and not stop_event.is_set():
time.sleep(0.1)
monitor_count += 1
try:
import psutil
process = psutil.Process()
memory_mb = process.memory_info().rss / 1024 / 1024
cpu_percent = process.cpu_percent()
active_threads = threading.active_count()
logger.info(f"📊 [资源监控] 运行时长 {monitor_count}分钟 | 内存: {memory_mb:.2f}MB | CPU: {cpu_percent:.1f}% | 活跃线程: {active_threads}")
# 内存使用过高警告
if memory_mb > 500:
logger.warning(f"⚠️ [资源监控] 内存使用过高: {memory_mb:.2f}MB,请检查是否有内存泄漏")
except ImportError:
pass # psutil未安装,跳过监控
except Exception as e:
logger.debug(f"资源监控异常: {e}")
monitor_thread = threading.Thread(target=resource_monitor, name="ResourceMonitor", daemon=True)
monitor_thread.start()
logger.info("📊 资源监控已启用(每60秒输出一次)")
if not stop_event.is_set():
logger.info("=" * 80)
logger.info("🎉 脚本启动完成!开始持续发送 MQTT 消息...")
logger.info("💡 提示:按 Ctrl+C 可优雅退出")
logger.info(f"📊 预期消息频率: {actual_thread_count * 2 // THREAD_CONFIG['send_interval']} 条/秒")
logger.info("=" * 80)
try:
# 保持主线程运行,等待中断信号
while not stop_event.is_set():
time.sleep(1)
except KeyboardInterrupt:
logger.info("⚠️ 接收到中断信号,正在优雅退出...")
stop_event.set()
except Exception as e:
logger.error(f"❌ 主循环发生错误: {e}", exc_info=True)
time.sleep(SHUTDOWN_CONFIG['error_wait_time']) # 出错后等待
# 等待工作线程结束
logger.info(f"⏳ 等待 {len(threads)} 个工作线程结束...")
for thread in threads:
thread.join(timeout=SHUTDOWN_CONFIG['thread_join_timeout'])
except Exception as e:
logger.error(f"❌ 发生错误: {e}", exc_info=True)
finally:
logger.info("🛑 正在关闭所有连接...")
# 资源统计
elapsed = time.time() - script_start_time
logger.info(f"📊 [退出统计] 运行时长: {elapsed:.0f}秒 ({elapsed/60:.1f}分钟)")
# 设置停止事件
stop_event.set()
try:
import psutil
process = psutil.Process()
memory_mb = process.memory_info().rss / 1024 / 1024
logger.info(f"💾 [退出统计] 最终内存占用: {memory_mb:.2f}MB")
except:
pass
# 等待所有线程结束
for t in threads:
t.join(timeout=SHUTDOWN_CONFIG['thread_join_timeout'])
logger.info("✅ 所有线程已停止,脚本结束")
# 断开所有MQTT连接
success_count = 0
fail_count = 0
for client in mqtt_clients:
if __name__ == "__main__":
try:
client.client.disconnect()
success_count += 1
main()
except Exception as e:
fail_count += 1
logger.debug(f"断开连接失败: {str(e)}")
logger.info(f"✅ 已断开 {success_count} 个连接,{fail_count} 个失败")
logger.info(f"📝 日志文件保存在: {log_filepath}")
logger.info("👋 程序已退出")
logger.error(f"❌ 脚本执行出错: {str(e)}", exc_info=True)
raise
......@@ -13,17 +13,16 @@ import signal
# ==================== 配置区域 (修改这里即可自定义行为) ====================
# ============================================================================
# 1. CSV配置文件路径列表 (支持多个文件,同时加载)
# 1. CSV配置文件路径字典 (区分心跳和设备信息)
# 注意:路径可以是相对于当前脚本的路径,也可以是绝对路径
CSV_FILES = [
'../../TestData/ReservationSystem_DoorScreen/MQTT心跳上报_100条.csv',
#'../TestData/ReservationSystem_DoorScreen/MQTT信息上报_100条.csv',
'../../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv', # 新增:设备信息上报
]
CSV_FILES = {
'heartbeat': '../TestData/ReservationSystem_DoorScreen/MQTT心跳上报_300条553.csv',
'device_info': '../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_300条553.csv',
}
# 2. MQTT服务器连接配置
MQTT_CONFIG = {
'broker_address': '192.168.5.50', # MQTT服务器地址
'broker_address': '192.168.5.53', # MQTT服务器地址
'port': 1883, # 端口号
'username': 'mqtt@cmdb', # 用户名
'password': 'mqtt@webpassw0RD', # 密码
......@@ -31,22 +30,23 @@ MQTT_CONFIG = {
# 3. 线程和发送控制
THREAD_CONFIG = {
'max_threads': 100, # 最大线程数
'send_interval': 1, # 每条消息发送间隔(秒)
'startup_delay': 0.05, # 线程启动间隔(秒),避免同时启动
'max_threads': 300, # 最大线程数(建议根据实际需求调整,50-100通常足够)
'send_interval': 30, # 每对消息发送间隔(秒)
'startup_delay': 0.1, # 线程启动间隔(秒),避免同时启动消耗过大资源
'enable_resource_monitor': True, # 是否启用资源监控
}
# 4. 日志配置
LOG_CONFIG = {
'log_dir': '/var/log/scripts', # Linux日志目录
'fallback_log_dir': 'logs', # Windows备用日志目录
'log_level': logging.INFO, # 日志级别: DEBUG/INFO/WARNING/ERROR
'log_level': logging.ERROR, # 日志级别: DEBUG/INFO/WARNING/ERROR(改为INFO以便看到启动信息)
'reconnect_log_interval': 10, # 每N次重连打印一次日志
}
# 5. 优雅退出配置
SHUTDOWN_CONFIG = {
'thread_join_timeout': 10, # 等待线程结束的最大时间(秒)
'thread_join_timeout': 2, # 等待线程结束的最大时间(秒)
'error_wait_time': 5, # 发生错误后等待时间(秒)
}
......@@ -56,44 +56,66 @@ SHUTDOWN_CONFIG = {
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
# 构建预定系统的绝对路径(向上一级到 Mqtt_Universal_Tool,再向上一级到项目根目录)
预定系统_path = os.path.abspath(os.path.join(current_dir, '..', '..'))
# 添加路径
sys.path.append(预定系统_path)
if 预定系统_path not in sys.path:
sys.path.insert(0, 预定系统_path)
print(f"已添加路径: {预定系统_path}")
# 导入模块
try:
from 预定系统.Base.Mqtt_Send import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.Mqtt_Send import *
print(f"当前 sys.path: {sys.path}")
raise
# ========== 日志配置 ==========
# 创建日志目录(遵循项目规范:/var/log/scripts/)
LOG_DIR = LOG_CONFIG['log_dir']
# 检测操作系统并设置合适的日志目录
import platform
if platform.system() == 'Windows':
# Windows 系统使用脚本所在目录的 logs 文件夹
LOG_DIR = os.path.join(current_dir, LOG_CONFIG['fallback_log_dir'])
else:
# Linux 系统使用标准日志目录
LOG_DIR = LOG_CONFIG['log_dir']
# 创建日志目录
if not os.path.exists(LOG_DIR):
try:
os.makedirs(LOG_DIR, exist_ok=True)
print(f"已创建日志目录: {LOG_DIR}")
except PermissionError:
# Windows环境下使用当前目录作为备选
LOG_DIR = os.path.join(current_dir, LOG_CONFIG['fallback_log_dir'])
except Exception as e:
# 如果创建失败,使用当前目录作为备选
LOG_DIR = os.path.join(current_dir, 'logs')
os.makedirs(LOG_DIR, exist_ok=True)
print(f"权限不足,使用备用日志目录: {LOG_DIR}")
print(f"使用备用日志目录: {LOG_DIR}")
# 生成日志文件名(包含时间戳)
log_filename = f"mqtt_android_info_{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"
log_filepath = os.path.join(LOG_DIR, log_filename)
# 配置双通道日志输出(控制台 + 文件)
logging.basicConfig(
level=LOG_CONFIG['log_level'],
format='%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s',
handlers=[
logging.StreamHandler(), # 控制台输出
logging.FileHandler(log_filepath, encoding='utf-8') # 文件输出
]
)
# 先配置根 logger,确保所有模块的 logging 调用都能输出到控制台
root_logger = logging.getLogger()
root_logger.setLevel(LOG_CONFIG['log_level'])
# 清除可能存在的旧 handlers
root_logger.handlers.clear()
# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(LOG_CONFIG['log_level'])
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s')
console_handler.setFormatter(console_formatter)
root_logger.addHandler(console_handler)
# 创建文件处理器
file_handler = logging.FileHandler(log_filepath, encoding='utf-8')
file_handler.setLevel(LOG_CONFIG['log_level'])
file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(threadName)s] - %(message)s')
file_handler.setFormatter(file_formatter)
root_logger.addHandler(file_handler)
logger = logging.getLogger(__name__)
logger.info(f"日志文件路径: {log_filepath}")
......@@ -131,10 +153,10 @@ class StableMQTTClient:
self.client = None
# 连接状态标记:用于避免重复打印连接成功日志
self.is_connected = False
self.is_connected = True
# 重连计数器:统计重连次数
self.reconnect_count = 0
self.reconnect_count = 5
# 最后重连日志时间:用于控制重连日志频率
self.last_reconnect_log_time = 0
......@@ -170,7 +192,7 @@ class StableMQTTClient:
# 只在首次连接或重连成功后打印日志
if not self.is_connected:
logger.info(f"✅ 连接成功,Client ID: {self.client_id}")
#logger.info(f"✅ 连接成功,Client ID: {self.client_id}")
self.is_connected = True
else:
self.reconnect_count += 1
......@@ -222,191 +244,301 @@ class StableMQTTClient:
# 工作线程函数
def worker(mqtt_client, config_queue, interval, stop_event):
def worker(mqtt_client, device_index, heartbeat_config, device_info_config, interval, stop_event):
"""MQTT消息发布工作线程
持续从配置队列中获取配置信息,构建MQTT消息并发布到指定主题。
该线程会循环运行直到被外部中断。
每个线程固定负责一个设备,持续向该设备发送相同的消息对:
1. 心跳上报消息 (/uams/android/broadcast)
2. 设备信息上报消息 (rebootResponseTopic)
每30秒发送一次相同的消息对,循环执行直到被外部中断。
Args:
mqtt_client: 已连接的MQTT客户端实例,用于发布消息
config_queue: 包含配置信息的队列,每个配置项应包含topic等必要字段
interval: 每次消息发布后的间隔时间(秒)
device_index: 设备索引号(用于日志标识)
heartbeat_config: 该设备的心跳上报配置
device_info_config: 该设备的设备信息上报配置
interval: 每次消息对发送后的间隔时间(秒)
stop_event: 停止事件标志,用于优雅退出线程
"""
thread_name = threading.current_thread().name
message_count = 0
# 获取设备ID用于日志
device_id = heartbeat_config.get('clientId', 'Unknown')
logger.info(f"📋 [{thread_name}] 初始化完成,负责设备 {device_index+1} (clientId={device_id})")
# 资源监控:记录线程启动时间
thread_start_time = time.time()
error_count = 0
max_consecutive_errors = 10 # 连续错误最大次数
while not stop_event.is_set():
try:
# 从队列获取配置信息(带超时,便于响应停止信号)
try:
config = config_queue.get(timeout=1)
except:
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# ========== 第1条:发送心跳上报消息 ==========
topic = heartbeat_config.get("topic")
if not topic:
logger.error(f"❌ [{thread_name}] 心跳配置缺少topic字段!")
time.sleep(interval)
continue
# 构建并发布MQTT消息
topic = config["topic"]
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
message = Mqtt.build_message(config, current_time, topic)
message = Mqtt.build_message(heartbeat_config, current_time, topic)
mqtt_client.publish(topic, message)
message_count += 1
error_count = 0 # 成功后重置错误计数
# 仅在WARNING级别记录心跳消息,减少日志量
logger.log(logging.WARNING if message_count % 10 == 0 else logging.DEBUG,
f"💓 [{thread_name}] 设备{device_index+1} 心跳消息 #{message_count}: clientId={device_id}")
# ========== 第2条:发送设备信息上报消息 ==========
topic = device_info_config.get("topic")
if not topic:
logger.error(f"❌ [{thread_name}] 设备信息配置缺少topic字段!")
time.sleep(interval)
continue
message = Mqtt.build_message(device_info_config, current_time, topic)
mqtt_client.publish(topic, message)
message_count += 1
# 每发送100条消息打印一次统计信息
if message_count % 100 == 0:
logger.debug(f"📊 [{thread_name}] 已发送 {message_count} 条消息")
# 仅在WARNING级别记录设备信息消息,减少日志量
logger.log(logging.WARNING if message_count % 10 == 0 else logging.DEBUG,
f"📱 [{thread_name}] 设备{device_index+1} 设备信息 #{message_count}: clientId={device_id}")
# ✅ 关键:每对消息发送后等待固定间隔(30秒)
# 优化:减少INFO日志频率,每10次输出一次
if message_count % 20 == 0:
elapsed = time.time() - thread_start_time
logger.info(f"⏰ [{thread_name}] 设备{device_index+1} 已发送 {message_count} 条消息,运行时长 {elapsed:.0f}秒,等待 {interval} 秒后发送下一轮...")
time.sleep(interval)
except Exception as e:
# 异常处理:记录错误日志并短暂等待
logger.error(f"❌ 线程 {thread_name} 发送消息失败: {e}")
time.sleep(SHUTDOWN_CONFIG['error_wait_time']) # 出错后等待
finally:
# 标记队列任务完成
try:
config_queue.task_done()
except:
pass
error_count += 1
logger.error(f"❌ [{thread_name}] 设备{device_index+1} 发生错误 #{error_count}: {str(e)}")
logger.info(f"🛑 [{thread_name}] 线程已停止,共发送 {message_count} 条消息")
# 连续错误过多时,线程自动退出防止资源泄漏
if error_count >= max_consecutive_errors:
logger.critical(f"💀 [{thread_name}] 设备{device_index+1} 连续错误 {error_count} 次,线程将退出")
break
time.sleep(SHUTDOWN_CONFIG['error_wait_time'])
# 全局停止事件
stop_event = threading.Event()
# 主函数
def main():
logger.info("=" * 80)
logger.info("开始执行 MQTT Android 信息上报脚本")
logger.info("=" * 80)
def signal_handler(sig, frame):
"""处理Ctrl+C信号,优雅退出"""
logger.info("\n🛑 接收到中断信号,正在优雅退出...")
stop_event.set()
# 资源监控:记录脚本启动时间
script_start_time = time.time()
# 分别加载两种类型的配置
heartbeat_configs = []
device_info_configs = []
if __name__ == "__main__":
# 注册信号处理器
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
# 合并所有CSV配置
configs = []
for csv_file_relative_path in CSV_FILES:
csv_file_path = os.path.join(current_dir, csv_file_relative_path)
# 加载心跳上报配置
heartbeat_csv_path = os.path.join(current_dir, CSV_FILES['heartbeat'])
logger.info(f"📂 尝试读取心跳配置文件: {heartbeat_csv_path}")
if os.path.exists(heartbeat_csv_path):
try:
logger.info(f"⏳ 正在读取心跳 CSV 文件...")
heartbeat_configs = Mqtt.read_config_from_csv(heartbeat_csv_path)
logger.info(f"✅ 读取完成,共 {len(heartbeat_configs)} 条心跳配置")
# 修复BOM问题
if heartbeat_configs and len(heartbeat_configs) > 0:
first_key = list(heartbeat_configs[0].keys())[0]
if first_key.startswith('\ufeff'):
logger.warning(f"⚠️ 检测到BOM,正在修复心跳配置的键名")
for config in heartbeat_configs:
clean_key = first_key.replace('\ufeff', '')
if first_key in config:
config[clean_key] = config.pop(first_key)
# 过滤无效配置
heartbeat_configs = [c for c in heartbeat_configs if c and isinstance(c, dict) and c.get("topic")]
logger.info(f"📄 有效心跳配置: {len(heartbeat_configs)} 条")
except Exception as e:
logger.error(f"❌ 读取心跳配置文件时发生错误: {str(e)}", exc_info=True)
else:
logger.error(f"❌ 心跳配置文件不存在: {heartbeat_csv_path}")
# 加载设备信息上报配置
device_info_csv_path = os.path.join(current_dir, CSV_FILES['device_info'])
logger.info(f"📂 尝试读取设备信息配置文件: {device_info_csv_path}")
if os.path.exists(device_info_csv_path):
try:
file_configs = Mqtt.read_config_from_csv(csv_file_path)
configs.extend(file_configs)
logger.info(f"📄 从 {csv_file_path} 读取了 {len(file_configs)} 条配置")
logger.info(f"⏳ 正在读取设备信息 CSV 文件...")
device_info_configs = Mqtt.read_config_from_csv(device_info_csv_path)
logger.info(f"✅ 读取完成,共 {len(device_info_configs)} 条设备信息配置")
# 修复BOM问题
if device_info_configs and len(device_info_configs) > 0:
first_key = list(device_info_configs[0].keys())[0]
if first_key.startswith('\ufeff'):
logger.warning(f"⚠️ 检测到BOM,正在修复设备信息配置的键名")
for config in device_info_configs:
clean_key = first_key.replace('\ufeff', '')
if first_key in config:
config[clean_key] = config.pop(first_key)
# 过滤无效配置
device_info_configs = [c for c in device_info_configs if c and isinstance(c, dict) and c.get("topic")]
logger.info(f"📄 有效设备信息配置: {len(device_info_configs)} 条")
except Exception as e:
logger.error(f"❌ 读取 {csv_file_path} 失败: {e}")
logger.error(f"❌ 读取设备信息配置文件时发生错误: {str(e)}", exc_info=True)
else:
logger.error(f"❌ 设备信息配置文件不存在: {device_info_csv_path}")
if not configs:
logger.error("❌ 未读取到任何配置,程序退出")
sys.exit(1)
# 检查是否有配置
logger.info(f"📊 总共加载了 {len(heartbeat_configs)} 条心跳配置, {len(device_info_configs)} 条设备信息配置")
logger.info(f"📊 总共加载 {len(configs)} 条配置")
if not heartbeat_configs or not device_info_configs:
logger.error("❌ 没有有效的配置文件,无法继续执行")
return
# 统计不同类型配置数量
topic_stats = {}
for config in configs:
topic = config.get("topic", "unknown")
topic_stats[topic] = topic_stats.get(topic, 0) + 1
# 计算实际设备数量(取两个配置列表的最小值)
actual_device_count = min(len(heartbeat_configs), len(device_info_configs))
logger.info(f"🔢 实际可运行的设备数量: {actual_device_count}")
logger.info(f"📈 配置分布: {topic_stats}")
# 智能调整线程数
actual_thread_count = min(THREAD_CONFIG['max_threads'], actual_device_count)
num_threads = min(len(configs), THREAD_CONFIG['max_threads']) # 线程数不超过配置数
# 资源警告
if actual_thread_count > 100:
logger.warning(f"⚠️ 线程数 {actual_thread_count} 较多,请注意系统资源消耗!")
logger.warning(f"⚠️ 建议:如果不是压力测试,请减少 max_threads 配置")
# 创建配置队列
config_queue = Queue()
logger.info(f"🧵 将启动 {actual_thread_count} 个工作线程(每个线程负责一个设备)")
# 创建稳定的MQTT客户端列表
mqtt_clients = []
failed_clients = 0
for i, config in enumerate(configs):
client_id = config.get("clientId", f"python_client_{i}")
# 资源监控:显示系统信息
try:
import psutil
process = psutil.Process()
memory_info = process.memory_info()
logger.info(f"💾 当前内存占用: {memory_info.rss / 1024 / 1024:.2f} MB")
except ImportError:
logger.debug("⚠️ psutil 未安装,跳过资源监控(可选安装: pip install psutil)")
logger.info("✅ 配置加载完成,开始创建 MQTT 客户端...")
# 创建MQTT客户端实例
logger.info(f"🔌 正在连接 MQTT 服务器: {MQTT_CONFIG['broker_address']}:{MQTT_CONFIG['port']}")
mqtt_client = StableMQTTClient(
MQTT_CONFIG['broker_address'],
MQTT_CONFIG['port'],
MQTT_CONFIG['username'],
MQTT_CONFIG['password'],
client_id
broker_address=MQTT_CONFIG['broker_address'],
port=MQTT_CONFIG['port'],
username=MQTT_CONFIG['username'],
password=MQTT_CONFIG['password'],
client_id="MQTT_Publisher"
)
mqtt_clients.append(mqtt_client)
except Exception as e:
logger.error(f"❌ 创建客户端 {client_id} 失败: {str(e)}")
failed_clients += 1
logger.info("✅ MQTT 客户端创建成功")
if failed_clients > 0:
logger.warning(f"⚠️ 共有 {failed_clients} 个客户端创建失败")
# 创建统一的停止事件(所有线程共享)
stop_event = threading.Event()
if not mqtt_clients:
logger.error("❌ 没有可用的MQTT客户端,程序退出")
sys.exit(1)
try:
# 创建工作线程
# 启动工作线程 - 每个线程负责一个固定设备
threads = []
for i in range(num_threads):
t = threading.Thread(
logger.info(f"🚀 正在启动 {actual_thread_count} 个工作线程...")
for i in range(actual_thread_count):
# 为每个线程分配固定的设备配置
heartbeat_config = heartbeat_configs[i]
device_info_config = device_info_configs[i]
thread = threading.Thread(
target=worker,
args=(
mqtt_clients[i % len(mqtt_clients)],
config_queue,
THREAD_CONFIG['send_interval'],
stop_event
),
name=f"Worker-{i + 1}",
daemon=False # 改为非守护线程,便于优雅退出
args=(mqtt_client, i, heartbeat_config, device_info_config, THREAD_CONFIG['send_interval'], stop_event),
name=f"Device-{i+1}"
)
t.start()
threads.append(t)
time.sleep(THREAD_CONFIG['startup_delay']) # 线程启动间隔
threads.append(thread)
thread.start()
# 主循环 - 持续运行
logger.info("🚀 系统已启动,将持续运行... (按 Ctrl+C 停止)")
# 增加启动间隔,避免同时创建线程消耗过大资源
if THREAD_CONFIG['startup_delay'] > 0:
time.sleep(THREAD_CONFIG['startup_delay'])
# 每启动50个线程输出一次进度
if (i + 1) % 50 == 0:
logger.info(f"📈 已启动 {i + 1}/{actual_thread_count} 个线程...")
logger.info("✅ 所有工作线程已启动,每个线程负责一个固定设备")
# 资源监控:启动定时监控线程
if THREAD_CONFIG.get('enable_resource_monitor', False):
def resource_monitor():
"""定期监控系统资源使用情况"""
monitor_count = 0
while not stop_event.is_set():
try:
# 将配置放入队列
for config in configs:
time.sleep(60) # 每60秒监控一次
if stop_event.is_set():
break
config_queue.put(config)
# 等待所有任务完成或收到停止信号
while not config_queue.empty() and not stop_event.is_set():
time.sleep(0.1)
monitor_count += 1
try:
import psutil
process = psutil.Process()
memory_mb = process.memory_info().rss / 1024 / 1024
cpu_percent = process.cpu_percent()
active_threads = threading.active_count()
logger.info(f"📊 [资源监控] 运行时长 {monitor_count}分钟 | 内存: {memory_mb:.2f}MB | CPU: {cpu_percent:.1f}% | 活跃线程: {active_threads}")
# 内存使用过高警告
if memory_mb > 500:
logger.warning(f"⚠️ [资源监控] 内存使用过高: {memory_mb:.2f}MB,请检查是否有内存泄漏")
except ImportError:
pass # psutil未安装,跳过监控
except Exception as e:
logger.debug(f"资源监控异常: {e}")
monitor_thread = threading.Thread(target=resource_monitor, name="ResourceMonitor", daemon=True)
monitor_thread.start()
logger.info("📊 资源监控已启用(每60秒输出一次)")
if not stop_event.is_set():
logger.info("=" * 80)
logger.info("🎉 脚本启动完成!开始持续发送 MQTT 消息...")
logger.info("💡 提示:按 Ctrl+C 可优雅退出")
logger.info(f"📊 预期消息频率: {actual_thread_count * 2 // THREAD_CONFIG['send_interval']} 条/秒")
logger.info("=" * 80)
try:
# 保持主线程运行,等待中断信号
while not stop_event.is_set():
time.sleep(1)
except KeyboardInterrupt:
logger.info("⚠️ 接收到中断信号,正在优雅退出...")
stop_event.set()
except Exception as e:
logger.error(f"❌ 主循环发生错误: {e}", exc_info=True)
time.sleep(SHUTDOWN_CONFIG['error_wait_time']) # 出错后等待
# 等待工作线程结束
logger.info(f"⏳ 等待 {len(threads)} 个工作线程结束...")
for thread in threads:
thread.join(timeout=SHUTDOWN_CONFIG['thread_join_timeout'])
except Exception as e:
logger.error(f"❌ 发生错误: {e}", exc_info=True)
finally:
logger.info("🛑 正在关闭所有连接...")
# 资源统计
elapsed = time.time() - script_start_time
logger.info(f"📊 [退出统计] 运行时长: {elapsed:.0f}秒 ({elapsed/60:.1f}分钟)")
# 设置停止事件
stop_event.set()
try:
import psutil
process = psutil.Process()
memory_mb = process.memory_info().rss / 1024 / 1024
logger.info(f"💾 [退出统计] 最终内存占用: {memory_mb:.2f}MB")
except:
pass
# 等待所有线程结束
for t in threads:
t.join(timeout=SHUTDOWN_CONFIG['thread_join_timeout'])
logger.info("✅ 所有线程已停止,脚本结束")
# 断开所有MQTT连接
success_count = 0
fail_count = 0
for client in mqtt_clients:
if __name__ == "__main__":
try:
client.client.disconnect()
success_count += 1
main()
except Exception as e:
fail_count += 1
logger.debug(f"断开连接失败: {str(e)}")
logger.info(f"✅ 已断开 {success_count} 个连接,{fail_count} 个失败")
logger.info(f"📝 日志文件保存在: {log_filepath}")
logger.info("👋 程序已退出")
logger.error(f"❌ 脚本执行出错: {str(e)}", exc_info=True)
raise
import csv
csv_file = r'E:\ubains-module-test\ubains-module-test\Mqtt_Universal_Tool\TestData\ReservationSystem_DoorScreen\MQTT设备信息上报_100条.csv'
print("=" * 80)
print("测试不同编码的读取结果")
print("=" * 80)
# 测试1: utf-8 (不带sig)
print("\n【测试1】使用 encoding='utf-8' (Mqtt类使用的编码):")
with open(csv_file, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
configs = [row for row in reader]
first = configs[0]
keys = list(first.keys())[:3]
bom_topic = '\ufefftopic'
print(f" 前3个键: {keys}")
print(f" 第一个键的repr: {repr(keys[0])}")
print(f" topic值: '{first.get('topic', 'MISSING')}'")
print(f" BOM+topic值: '{first.get(bom_topic, 'MISSING')}'")
# 测试2: utf-8-sig (带BOM处理)
print("\n【测试2】使用 encoding='utf-8-sig' (正确处理BOM):")
with open(csv_file, 'r', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
configs = [row for row in reader]
first = configs[0]
keys = list(first.keys())[:3]
print(f" 前3个键: {keys}")
print(f" 第一个键的repr: {repr(keys[0])}")
print(f" topic值: '{first.get('topic', 'MISSING')}'")
print("\n" + "=" * 80)
print("结论: CSV文件有BOM,必须用utf-8-sig编码读取!")
print("=" * 80)
import csv
import os
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
csv_file = os.path.join(current_dir, '../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv')
print("=" * 80)
print("调试CSV读取结果")
print("=" * 80)
with open(csv_file, 'r', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
configs = [row for row in reader]
if configs:
first = configs[0]
print(f"配置类型: {type(first)}")
print(f"是否为dict: {isinstance(first, dict)}")
if isinstance(first, dict):
all_keys = list(first.keys())
print(f"\n所有键名 ({len(all_keys)}个):")
for i, key in enumerate(all_keys[:15]):
print(f" [{i}] '{key}' -> 值长度:{len(str(first[key])) if first[key] else 0}")
# 查找topic相关键
topic_keys = [k for k in all_keys if 'topic' in k.lower()]
print(f"\n包含'topic'的键: {topic_keys}")
for tk in topic_keys:
value = first.get(tk)
print(f" 键'{tk}'的值: '{value}' (类型:{type(value)}, 长度:{len(str(value)) if value else 0})")
# 检查topic键
topic_value = first.get('topic', 'KEY_NOT_FOUND')
print(f"\nfirst.get('topic'): '{topic_value}' (类型:{type(topic_value)})")
# 尝试直接访问
try:
direct_topic = first['topic']
print(f"first['topic']: '{direct_topic}'")
except KeyError as e:
print(f"first['topic'] 抛出KeyError: {e}")
print("=" * 80)
import os
import sys
import csv
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
预定系统_path = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
sys.path.append(预定系统_path)
from 预定系统.Base.Mqtt_Send import Mqtt
# CSV文件路径
csv_file = os.path.join(current_dir, '../TestData/ReservationSystem_DoorScreen/MQTT设备信息上报_100条.csv')
print("=" * 80)
print("调试CSV文件读取")
print("=" * 80)
print(f"文件路径: {csv_file}")
print(f"文件存在: {os.path.exists(csv_file)}")
print()
# 读取配置
configs = Mqtt.read_config_from_csv(csv_file)
print(f"读取到的配置数量: {len(configs)}")
print()
# 检查前5条配置
print("前5条配置的topic字段:")
for i, config in enumerate(configs[:5]):
topic = config.get('topic', 'MISSING')
print(f" [{i}] topic='{topic}', 类型={type(topic)}, 长度={len(str(topic)) if topic else 0}")
# 显示所有键
if i == 0:
print(f"\n第一条配置的所有键 ({len(config.keys())}个):")
for key in config.keys():
value = config[key]
display_value = value if len(str(value)) < 50 else str(value)[:50] + "..."
print(f" - {key}: '{display_value}'")
print()
# 检查是否有空topic
empty_topic_count = sum(1 for c in configs if not c.get('topic'))
print(f"topic为空的配置数量: {empty_topic_count}")
if empty_topic_count > 0:
print("\n⚠️ 发现空topic配置! 这些配置会导致发送失败。")
print("\n空topic配置示例:")
for i, config in enumerate(configs):
if not config.get('topic'):
print(f" [{i}] 完整配置: {dict(list(config.items())[:5])}")
if i >= 2: # 只显示前3个
break
else:
print("✓ 所有配置都有topic字段")
print()
print("=" * 80)
import os
import sys
import csv
# 直接使用csv模块测试,不依赖Mqtt类
csv_file = r'E:\ubains-module-test\ubains-module-test\Mqtt_Universal_Tool\TestData\ReservationSystem_DoorScreen\MQTT设备信息上报_100条.csv'
print("=" * 80)
print("验证CSV配置数据完整性")
print("=" * 80)
print(f"文件路径: {csv_file}")
print(f"文件存在: {os.path.exists(csv_file)}")
print()
# 读取配置
with open(csv_file, 'r', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
configs = [row for row in reader]
print(f"原始配置数量: {len(configs)}")
# 模拟过滤逻辑
valid_configs = []
invalid_count = 0
for config in configs:
if config and isinstance(config, dict) and config.get("topic"):
valid_configs.append(config)
else:
invalid_count += 1
print(f"有效配置数量: {len(valid_configs)}")
print(f"无效配置数量: {invalid_count}")
print()
if invalid_count > 0:
print("⚠️ 发现无效配置!")
print("\n无效配置示例:")
for i, config in enumerate(configs):
if not config or not isinstance(config, dict) or not config.get("topic"):
print(f" [{i}] 配置类型: {type(config)}")
if isinstance(config, dict):
print(f" 所有键: {list(config.keys())[:5]}")
else:
print(f" 值: {config}")
if i >= 2:
break
else:
print("✓ 所有配置都有效!")
print()
# 检查前3条有效配置
if valid_configs:
print("前3条有效配置示例:")
for i, config in enumerate(valid_configs[:3]):
topic = config.get('topic', 'MISSING')
client_id = config.get('clientId', 'MISSING')
conference_name = config.get('conferenceName', 'MISSING')
print(f" [{i}] topic={topic}, clientId={client_id}, conferenceName={conference_name}")
print()
print("=" * 80)
topic,clientId,appToken,companyNumber,cnum,conferenceId,macAddress,authCode,clientId,deviceId
/uams/android/broadcast,,,,,,,,48134e6047a19a0001,aa44e258a4e1e0001
/uams/android/broadcast,,,,,,,,48134e6047a19a0002,aa44e258a4e1e0002
/uams/android/broadcast,,,,,,,,48134e6047a19a0003,aa44e258a4e1e0003
/uams/android/broadcast,,,,,,,,48134e6047a19a0004,aa44e258a4e1e0004
/uams/android/broadcast,,,,,,,,48134e6047a19a0005,aa44e258a4e1e0005
/uams/android/broadcast,,,,,,,,48134e6047a19a0006,aa44e258a4e1e0006
/uams/android/broadcast,,,,,,,,48134e6047a19a0007,aa44e258a4e1e0007
/uams/android/broadcast,,,,,,,,48134e6047a19a0008,aa44e258a4e1e0008
/uams/android/broadcast,,,,,,,,48134e6047a19a0009,aa44e258a4e1e0009
/uams/android/broadcast,,,,,,,,48134e6047a19a0010,aa44e258a4e1e0010
/uams/android/broadcast,,,,,,,,48134e6047a19a0011,aa44e258a4e1e0011
/uams/android/broadcast,,,,,,,,48134e6047a19a0012,aa44e258a4e1e0012
/uams/android/broadcast,,,,,,,,48134e6047a19a0013,aa44e258a4e1e0013
/uams/android/broadcast,,,,,,,,48134e6047a19a0014,aa44e258a4e1e0014
/uams/android/broadcast,,,,,,,,48134e6047a19a0015,aa44e258a4e1e0015
/uams/android/broadcast,,,,,,,,48134e6047a19a0016,aa44e258a4e1e0016
/uams/android/broadcast,,,,,,,,48134e6047a19a0017,aa44e258a4e1e0017
/uams/android/broadcast,,,,,,,,48134e6047a19a0018,aa44e258a4e1e0018
/uams/android/broadcast,,,,,,,,48134e6047a19a0019,aa44e258a4e1e0019
/uams/android/broadcast,,,,,,,,48134e6047a19a0020,aa44e258a4e1e0020
/uams/android/broadcast,,,,,,,,48134e6047a19a0021,aa44e258a4e1e0021
/uams/android/broadcast,,,,,,,,48134e6047a19a0022,aa44e258a4e1e0022
/uams/android/broadcast,,,,,,,,48134e6047a19a0023,aa44e258a4e1e0023
/uams/android/broadcast,,,,,,,,48134e6047a19a0024,aa44e258a4e1e0024
/uams/android/broadcast,,,,,,,,48134e6047a19a0025,aa44e258a4e1e0025
/uams/android/broadcast,,,,,,,,48134e6047a19a0026,aa44e258a4e1e0026
/uams/android/broadcast,,,,,,,,48134e6047a19a0027,aa44e258a4e1e0027
/uams/android/broadcast,,,,,,,,48134e6047a19a0028,aa44e258a4e1e0028
/uams/android/broadcast,,,,,,,,48134e6047a19a0029,aa44e258a4e1e0029
/uams/android/broadcast,,,,,,,,48134e6047a19a0030,aa44e258a4e1e0030
/uams/android/broadcast,,,,,,,,48134e6047a19a0031,aa44e258a4e1e0031
/uams/android/broadcast,,,,,,,,48134e6047a19a0032,aa44e258a4e1e0032
/uams/android/broadcast,,,,,,,,48134e6047a19a0033,aa44e258a4e1e0033
/uams/android/broadcast,,,,,,,,48134e6047a19a0034,aa44e258a4e1e0034
/uams/android/broadcast,,,,,,,,48134e6047a19a0035,aa44e258a4e1e0035
/uams/android/broadcast,,,,,,,,48134e6047a19a0036,aa44e258a4e1e0036
/uams/android/broadcast,,,,,,,,48134e6047a19a0037,aa44e258a4e1e0037
/uams/android/broadcast,,,,,,,,48134e6047a19a0038,aa44e258a4e1e0038
/uams/android/broadcast,,,,,,,,48134e6047a19a0039,aa44e258a4e1e0039
/uams/android/broadcast,,,,,,,,48134e6047a19a0040,aa44e258a4e1e0040
/uams/android/broadcast,,,,,,,,48134e6047a19a0041,aa44e258a4e1e0041
/uams/android/broadcast,,,,,,,,48134e6047a19a0042,aa44e258a4e1e0042
/uams/android/broadcast,,,,,,,,48134e6047a19a0043,aa44e258a4e1e0043
/uams/android/broadcast,,,,,,,,48134e6047a19a0044,aa44e258a4e1e0044
/uams/android/broadcast,,,,,,,,48134e6047a19a0045,aa44e258a4e1e0045
/uams/android/broadcast,,,,,,,,48134e6047a19a0046,aa44e258a4e1e0046
/uams/android/broadcast,,,,,,,,48134e6047a19a0047,aa44e258a4e1e0047
/uams/android/broadcast,,,,,,,,48134e6047a19a0048,aa44e258a4e1e0048
/uams/android/broadcast,,,,,,,,48134e6047a19a0049,aa44e258a4e1e0049
/uams/android/broadcast,,,,,,,,48134e6047a19a0050,aa44e258a4e1e0050
/uams/android/broadcast,,,,,,,,48134e6047a19a0051,aa44e258a4e1e0051
/uams/android/broadcast,,,,,,,,48134e6047a19a0052,aa44e258a4e1e0052
/uams/android/broadcast,,,,,,,,48134e6047a19a0053,aa44e258a4e1e0053
/uams/android/broadcast,,,,,,,,48134e6047a19a0054,aa44e258a4e1e0054
/uams/android/broadcast,,,,,,,,48134e6047a19a0055,aa44e258a4e1e0055
/uams/android/broadcast,,,,,,,,48134e6047a19a0056,aa44e258a4e1e0056
/uams/android/broadcast,,,,,,,,48134e6047a19a0057,aa44e258a4e1e0057
/uams/android/broadcast,,,,,,,,48134e6047a19a0058,aa44e258a4e1e0058
/uams/android/broadcast,,,,,,,,48134e6047a19a0059,aa44e258a4e1e0059
/uams/android/broadcast,,,,,,,,48134e6047a19a0060,aa44e258a4e1e0060
/uams/android/broadcast,,,,,,,,48134e6047a19a0061,aa44e258a4e1e0061
/uams/android/broadcast,,,,,,,,48134e6047a19a0062,aa44e258a4e1e0062
/uams/android/broadcast,,,,,,,,48134e6047a19a0063,aa44e258a4e1e0063
/uams/android/broadcast,,,,,,,,48134e6047a19a0064,aa44e258a4e1e0064
/uams/android/broadcast,,,,,,,,48134e6047a19a0065,aa44e258a4e1e0065
/uams/android/broadcast,,,,,,,,48134e6047a19a0066,aa44e258a4e1e0066
/uams/android/broadcast,,,,,,,,48134e6047a19a0067,aa44e258a4e1e0067
/uams/android/broadcast,,,,,,,,48134e6047a19a0068,aa44e258a4e1e0068
/uams/android/broadcast,,,,,,,,48134e6047a19a0069,aa44e258a4e1e0069
/uams/android/broadcast,,,,,,,,48134e6047a19a0070,aa44e258a4e1e0070
/uams/android/broadcast,,,,,,,,48134e6047a19a0071,aa44e258a4e1e0071
/uams/android/broadcast,,,,,,,,48134e6047a19a0072,aa44e258a4e1e0072
/uams/android/broadcast,,,,,,,,48134e6047a19a0073,aa44e258a4e1e0073
/uams/android/broadcast,,,,,,,,48134e6047a19a0074,aa44e258a4e1e0074
/uams/android/broadcast,,,,,,,,48134e6047a19a0075,aa44e258a4e1e0075
/uams/android/broadcast,,,,,,,,48134e6047a19a0076,aa44e258a4e1e0076
/uams/android/broadcast,,,,,,,,48134e6047a19a0077,aa44e258a4e1e0077
/uams/android/broadcast,,,,,,,,48134e6047a19a0078,aa44e258a4e1e0078
/uams/android/broadcast,,,,,,,,48134e6047a19a0079,aa44e258a4e1e0079
/uams/android/broadcast,,,,,,,,48134e6047a19a0080,aa44e258a4e1e0080
/uams/android/broadcast,,,,,,,,48134e6047a19a0081,aa44e258a4e1e0081
/uams/android/broadcast,,,,,,,,48134e6047a19a0082,aa44e258a4e1e0082
/uams/android/broadcast,,,,,,,,48134e6047a19a0083,aa44e258a4e1e0083
/uams/android/broadcast,,,,,,,,48134e6047a19a0084,aa44e258a4e1e0084
/uams/android/broadcast,,,,,,,,48134e6047a19a0085,aa44e258a4e1e0085
/uams/android/broadcast,,,,,,,,48134e6047a19a0086,aa44e258a4e1e0086
/uams/android/broadcast,,,,,,,,48134e6047a19a0087,aa44e258a4e1e0087
/uams/android/broadcast,,,,,,,,48134e6047a19a0088,aa44e258a4e1e0088
/uams/android/broadcast,,,,,,,,48134e6047a19a0089,aa44e258a4e1e0089
/uams/android/broadcast,,,,,,,,48134e6047a19a0090,aa44e258a4e1e0090
/uams/android/broadcast,,,,,,,,48134e6047a19a0091,aa44e258a4e1e0091
/uams/android/broadcast,,,,,,,,48134e6047a19a0092,aa44e258a4e1e0092
/uams/android/broadcast,,,,,,,,48134e6047a19a0093,aa44e258a4e1e0093
/uams/android/broadcast,,,,,,,,48134e6047a19a0094,aa44e258a4e1e0094
/uams/android/broadcast,,,,,,,,48134e6047a19a0095,aa44e258a4e1e0095
/uams/android/broadcast,,,,,,,,48134e6047a19a0096,aa44e258a4e1e0096
/uams/android/broadcast,,,,,,,,48134e6047a19a0097,aa44e258a4e1e0097
/uams/android/broadcast,,,,,,,,48134e6047a19a0098,aa44e258a4e1e0098
/uams/android/broadcast,,,,,,,,48134e6047a19a0099,aa44e258a4e1e0099
/uams/android/broadcast,,,,,,,,48134e6047a19a0100,aa44e258a4e1e0100
/uams/android/broadcast,,,,,,,,48134e6047a19a0101,aa44e258a4e1e0101
\ No newline at end of file
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
/uams/android/broadcast,48134e6047a19a0101,48134e6047a19a0101
/uams/android/broadcast,48134e6047a19a0102,48134e6047a19a0102
/uams/android/broadcast,48134e6047a19a0103,48134e6047a19a0103
/uams/android/broadcast,48134e6047a19a0104,48134e6047a19a0104
/uams/android/broadcast,48134e6047a19a0105,48134e6047a19a0105
/uams/android/broadcast,48134e6047a19a0106,48134e6047a19a0106
/uams/android/broadcast,48134e6047a19a0107,48134e6047a19a0107
/uams/android/broadcast,48134e6047a19a0108,48134e6047a19a0108
/uams/android/broadcast,48134e6047a19a0109,48134e6047a19a0109
/uams/android/broadcast,48134e6047a19a0110,48134e6047a19a0110
/uams/android/broadcast,48134e6047a19a0111,48134e6047a19a0111
/uams/android/broadcast,48134e6047a19a0112,48134e6047a19a0112
/uams/android/broadcast,48134e6047a19a0113,48134e6047a19a0113
/uams/android/broadcast,48134e6047a19a0114,48134e6047a19a0114
/uams/android/broadcast,48134e6047a19a0115,48134e6047a19a0115
/uams/android/broadcast,48134e6047a19a0116,48134e6047a19a0116
/uams/android/broadcast,48134e6047a19a0117,48134e6047a19a0117
/uams/android/broadcast,48134e6047a19a0118,48134e6047a19a0118
/uams/android/broadcast,48134e6047a19a0119,48134e6047a19a0119
/uams/android/broadcast,48134e6047a19a0120,48134e6047a19a0120
/uams/android/broadcast,48134e6047a19a0121,48134e6047a19a0121
/uams/android/broadcast,48134e6047a19a0122,48134e6047a19a0122
/uams/android/broadcast,48134e6047a19a0123,48134e6047a19a0123
/uams/android/broadcast,48134e6047a19a0124,48134e6047a19a0124
/uams/android/broadcast,48134e6047a19a0125,48134e6047a19a0125
/uams/android/broadcast,48134e6047a19a0126,48134e6047a19a0126
/uams/android/broadcast,48134e6047a19a0127,48134e6047a19a0127
/uams/android/broadcast,48134e6047a19a0128,48134e6047a19a0128
/uams/android/broadcast,48134e6047a19a0129,48134e6047a19a0129
/uams/android/broadcast,48134e6047a19a0130,48134e6047a19a0130
/uams/android/broadcast,48134e6047a19a0131,48134e6047a19a0131
/uams/android/broadcast,48134e6047a19a0132,48134e6047a19a0132
/uams/android/broadcast,48134e6047a19a0133,48134e6047a19a0133
/uams/android/broadcast,48134e6047a19a0134,48134e6047a19a0134
/uams/android/broadcast,48134e6047a19a0135,48134e6047a19a0135
/uams/android/broadcast,48134e6047a19a0136,48134e6047a19a0136
/uams/android/broadcast,48134e6047a19a0137,48134e6047a19a0137
/uams/android/broadcast,48134e6047a19a0138,48134e6047a19a0138
/uams/android/broadcast,48134e6047a19a0139,48134e6047a19a0139
/uams/android/broadcast,48134e6047a19a0140,48134e6047a19a0140
/uams/android/broadcast,48134e6047a19a0141,48134e6047a19a0141
/uams/android/broadcast,48134e6047a19a0142,48134e6047a19a0142
/uams/android/broadcast,48134e6047a19a0143,48134e6047a19a0143
/uams/android/broadcast,48134e6047a19a0144,48134e6047a19a0144
/uams/android/broadcast,48134e6047a19a0145,48134e6047a19a0145
/uams/android/broadcast,48134e6047a19a0146,48134e6047a19a0146
/uams/android/broadcast,48134e6047a19a0147,48134e6047a19a0147
/uams/android/broadcast,48134e6047a19a0148,48134e6047a19a0148
/uams/android/broadcast,48134e6047a19a0149,48134e6047a19a0149
/uams/android/broadcast,48134e6047a19a0150,48134e6047a19a0150
/uams/android/broadcast,48134e6047a19a0151,48134e6047a19a0151
/uams/android/broadcast,48134e6047a19a0152,48134e6047a19a0152
/uams/android/broadcast,48134e6047a19a0153,48134e6047a19a0153
/uams/android/broadcast,48134e6047a19a0154,48134e6047a19a0154
/uams/android/broadcast,48134e6047a19a0155,48134e6047a19a0155
/uams/android/broadcast,48134e6047a19a0156,48134e6047a19a0156
/uams/android/broadcast,48134e6047a19a0157,48134e6047a19a0157
/uams/android/broadcast,48134e6047a19a0158,48134e6047a19a0158
/uams/android/broadcast,48134e6047a19a0159,48134e6047a19a0159
/uams/android/broadcast,48134e6047a19a0160,48134e6047a19a0160
/uams/android/broadcast,48134e6047a19a0161,48134e6047a19a0161
/uams/android/broadcast,48134e6047a19a0162,48134e6047a19a0162
/uams/android/broadcast,48134e6047a19a0163,48134e6047a19a0163
/uams/android/broadcast,48134e6047a19a0164,48134e6047a19a0164
/uams/android/broadcast,48134e6047a19a0165,48134e6047a19a0165
/uams/android/broadcast,48134e6047a19a0166,48134e6047a19a0166
/uams/android/broadcast,48134e6047a19a0167,48134e6047a19a0167
/uams/android/broadcast,48134e6047a19a0168,48134e6047a19a0168
/uams/android/broadcast,48134e6047a19a0169,48134e6047a19a0169
/uams/android/broadcast,48134e6047a19a0170,48134e6047a19a0170
/uams/android/broadcast,48134e6047a19a0171,48134e6047a19a0171
/uams/android/broadcast,48134e6047a19a0172,48134e6047a19a0172
/uams/android/broadcast,48134e6047a19a0173,48134e6047a19a0173
/uams/android/broadcast,48134e6047a19a0174,48134e6047a19a0174
/uams/android/broadcast,48134e6047a19a0175,48134e6047a19a0175
/uams/android/broadcast,48134e6047a19a0176,48134e6047a19a0176
/uams/android/broadcast,48134e6047a19a0177,48134e6047a19a0177
/uams/android/broadcast,48134e6047a19a0178,48134e6047a19a0178
/uams/android/broadcast,48134e6047a19a0179,48134e6047a19a0179
/uams/android/broadcast,48134e6047a19a0180,48134e6047a19a0180
/uams/android/broadcast,48134e6047a19a0181,48134e6047a19a0181
/uams/android/broadcast,48134e6047a19a0182,48134e6047a19a0182
/uams/android/broadcast,48134e6047a19a0183,48134e6047a19a0183
/uams/android/broadcast,48134e6047a19a0184,48134e6047a19a0184
/uams/android/broadcast,48134e6047a19a0185,48134e6047a19a0185
/uams/android/broadcast,48134e6047a19a0186,48134e6047a19a0186
/uams/android/broadcast,48134e6047a19a0187,48134e6047a19a0187
/uams/android/broadcast,48134e6047a19a0188,48134e6047a19a0188
/uams/android/broadcast,48134e6047a19a0189,48134e6047a19a0189
/uams/android/broadcast,48134e6047a19a0190,48134e6047a19a0190
/uams/android/broadcast,48134e6047a19a0191,48134e6047a19a0191
/uams/android/broadcast,48134e6047a19a0192,48134e6047a19a0192
/uams/android/broadcast,48134e6047a19a0193,48134e6047a19a0193
/uams/android/broadcast,48134e6047a19a0194,48134e6047a19a0194
/uams/android/broadcast,48134e6047a19a0195,48134e6047a19a0195
/uams/android/broadcast,48134e6047a19a0196,48134e6047a19a0196
/uams/android/broadcast,48134e6047a19a0197,48134e6047a19a0197
/uams/android/broadcast,48134e6047a19a0198,48134e6047a19a0198
/uams/android/broadcast,48134e6047a19a0199,48134e6047a19a0199
/uams/android/broadcast,48134e6047a19a0200,48134e6047a19a0200
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
/uams/android/broadcast,48134e6047a19a0101,48134e6047a19a0101
/uams/android/broadcast,48134e6047a19a0102,48134e6047a19a0102
/uams/android/broadcast,48134e6047a19a0103,48134e6047a19a0103
/uams/android/broadcast,48134e6047a19a0104,48134e6047a19a0104
/uams/android/broadcast,48134e6047a19a0105,48134e6047a19a0105
/uams/android/broadcast,48134e6047a19a0106,48134e6047a19a0106
/uams/android/broadcast,48134e6047a19a0107,48134e6047a19a0107
/uams/android/broadcast,48134e6047a19a0108,48134e6047a19a0108
/uams/android/broadcast,48134e6047a19a0109,48134e6047a19a0109
/uams/android/broadcast,48134e6047a19a0110,48134e6047a19a0110
/uams/android/broadcast,48134e6047a19a0111,48134e6047a19a0111
/uams/android/broadcast,48134e6047a19a0112,48134e6047a19a0112
/uams/android/broadcast,48134e6047a19a0113,48134e6047a19a0113
/uams/android/broadcast,48134e6047a19a0114,48134e6047a19a0114
/uams/android/broadcast,48134e6047a19a0115,48134e6047a19a0115
/uams/android/broadcast,48134e6047a19a0116,48134e6047a19a0116
/uams/android/broadcast,48134e6047a19a0117,48134e6047a19a0117
/uams/android/broadcast,48134e6047a19a0118,48134e6047a19a0118
/uams/android/broadcast,48134e6047a19a0119,48134e6047a19a0119
/uams/android/broadcast,48134e6047a19a0120,48134e6047a19a0120
/uams/android/broadcast,48134e6047a19a0121,48134e6047a19a0121
/uams/android/broadcast,48134e6047a19a0122,48134e6047a19a0122
/uams/android/broadcast,48134e6047a19a0123,48134e6047a19a0123
/uams/android/broadcast,48134e6047a19a0124,48134e6047a19a0124
/uams/android/broadcast,48134e6047a19a0125,48134e6047a19a0125
/uams/android/broadcast,48134e6047a19a0126,48134e6047a19a0126
/uams/android/broadcast,48134e6047a19a0127,48134e6047a19a0127
/uams/android/broadcast,48134e6047a19a0128,48134e6047a19a0128
/uams/android/broadcast,48134e6047a19a0129,48134e6047a19a0129
/uams/android/broadcast,48134e6047a19a0130,48134e6047a19a0130
/uams/android/broadcast,48134e6047a19a0131,48134e6047a19a0131
/uams/android/broadcast,48134e6047a19a0132,48134e6047a19a0132
/uams/android/broadcast,48134e6047a19a0133,48134e6047a19a0133
/uams/android/broadcast,48134e6047a19a0134,48134e6047a19a0134
/uams/android/broadcast,48134e6047a19a0135,48134e6047a19a0135
/uams/android/broadcast,48134e6047a19a0136,48134e6047a19a0136
/uams/android/broadcast,48134e6047a19a0137,48134e6047a19a0137
/uams/android/broadcast,48134e6047a19a0138,48134e6047a19a0138
/uams/android/broadcast,48134e6047a19a0139,48134e6047a19a0139
/uams/android/broadcast,48134e6047a19a0140,48134e6047a19a0140
/uams/android/broadcast,48134e6047a19a0141,48134e6047a19a0141
/uams/android/broadcast,48134e6047a19a0142,48134e6047a19a0142
/uams/android/broadcast,48134e6047a19a0143,48134e6047a19a0143
/uams/android/broadcast,48134e6047a19a0144,48134e6047a19a0144
/uams/android/broadcast,48134e6047a19a0145,48134e6047a19a0145
/uams/android/broadcast,48134e6047a19a0146,48134e6047a19a0146
/uams/android/broadcast,48134e6047a19a0147,48134e6047a19a0147
/uams/android/broadcast,48134e6047a19a0148,48134e6047a19a0148
/uams/android/broadcast,48134e6047a19a0149,48134e6047a19a0149
/uams/android/broadcast,48134e6047a19a0150,48134e6047a19a0150
/uams/android/broadcast,48134e6047a19a0151,48134e6047a19a0151
/uams/android/broadcast,48134e6047a19a0152,48134e6047a19a0152
/uams/android/broadcast,48134e6047a19a0153,48134e6047a19a0153
/uams/android/broadcast,48134e6047a19a0154,48134e6047a19a0154
/uams/android/broadcast,48134e6047a19a0155,48134e6047a19a0155
/uams/android/broadcast,48134e6047a19a0156,48134e6047a19a0156
/uams/android/broadcast,48134e6047a19a0157,48134e6047a19a0157
/uams/android/broadcast,48134e6047a19a0158,48134e6047a19a0158
/uams/android/broadcast,48134e6047a19a0159,48134e6047a19a0159
/uams/android/broadcast,48134e6047a19a0160,48134e6047a19a0160
/uams/android/broadcast,48134e6047a19a0161,48134e6047a19a0161
/uams/android/broadcast,48134e6047a19a0162,48134e6047a19a0162
/uams/android/broadcast,48134e6047a19a0163,48134e6047a19a0163
/uams/android/broadcast,48134e6047a19a0164,48134e6047a19a0164
/uams/android/broadcast,48134e6047a19a0165,48134e6047a19a0165
/uams/android/broadcast,48134e6047a19a0166,48134e6047a19a0166
/uams/android/broadcast,48134e6047a19a0167,48134e6047a19a0167
/uams/android/broadcast,48134e6047a19a0168,48134e6047a19a0168
/uams/android/broadcast,48134e6047a19a0169,48134e6047a19a0169
/uams/android/broadcast,48134e6047a19a0170,48134e6047a19a0170
/uams/android/broadcast,48134e6047a19a0171,48134e6047a19a0171
/uams/android/broadcast,48134e6047a19a0172,48134e6047a19a0172
/uams/android/broadcast,48134e6047a19a0173,48134e6047a19a0173
/uams/android/broadcast,48134e6047a19a0174,48134e6047a19a0174
/uams/android/broadcast,48134e6047a19a0175,48134e6047a19a0175
/uams/android/broadcast,48134e6047a19a0176,48134e6047a19a0176
/uams/android/broadcast,48134e6047a19a0177,48134e6047a19a0177
/uams/android/broadcast,48134e6047a19a0178,48134e6047a19a0178
/uams/android/broadcast,48134e6047a19a0179,48134e6047a19a0179
/uams/android/broadcast,48134e6047a19a0180,48134e6047a19a0180
/uams/android/broadcast,48134e6047a19a0181,48134e6047a19a0181
/uams/android/broadcast,48134e6047a19a0182,48134e6047a19a0182
/uams/android/broadcast,48134e6047a19a0183,48134e6047a19a0183
/uams/android/broadcast,48134e6047a19a0184,48134e6047a19a0184
/uams/android/broadcast,48134e6047a19a0185,48134e6047a19a0185
/uams/android/broadcast,48134e6047a19a0186,48134e6047a19a0186
/uams/android/broadcast,48134e6047a19a0187,48134e6047a19a0187
/uams/android/broadcast,48134e6047a19a0188,48134e6047a19a0188
/uams/android/broadcast,48134e6047a19a0189,48134e6047a19a0189
/uams/android/broadcast,48134e6047a19a0190,48134e6047a19a0190
/uams/android/broadcast,48134e6047a19a0191,48134e6047a19a0191
/uams/android/broadcast,48134e6047a19a0192,48134e6047a19a0192
/uams/android/broadcast,48134e6047a19a0193,48134e6047a19a0193
/uams/android/broadcast,48134e6047a19a0194,48134e6047a19a0194
/uams/android/broadcast,48134e6047a19a0195,48134e6047a19a0195
/uams/android/broadcast,48134e6047a19a0196,48134e6047a19a0196
/uams/android/broadcast,48134e6047a19a0197,48134e6047a19a0197
/uams/android/broadcast,48134e6047a19a0198,48134e6047a19a0198
/uams/android/broadcast,48134e6047a19a0199,48134e6047a19a0199
/uams/android/broadcast,48134e6047a19a0200,48134e6047a19a0200
/uams/android/broadcast,48134e6047a19a0201,48134e6047a19a0201
/uams/android/broadcast,48134e6047a19a0202,48134e6047a19a0202
/uams/android/broadcast,48134e6047a19a0203,48134e6047a19a0203
/uams/android/broadcast,48134e6047a19a0204,48134e6047a19a0204
/uams/android/broadcast,48134e6047a19a0205,48134e6047a19a0205
/uams/android/broadcast,48134e6047a19a0206,48134e6047a19a0206
/uams/android/broadcast,48134e6047a19a0207,48134e6047a19a0207
/uams/android/broadcast,48134e6047a19a0208,48134e6047a19a0208
/uams/android/broadcast,48134e6047a19a0209,48134e6047a19a0209
/uams/android/broadcast,48134e6047a19a0210,48134e6047a19a0210
/uams/android/broadcast,48134e6047a19a0211,48134e6047a19a0211
/uams/android/broadcast,48134e6047a19a0212,48134e6047a19a0212
/uams/android/broadcast,48134e6047a19a0213,48134e6047a19a0213
/uams/android/broadcast,48134e6047a19a0214,48134e6047a19a0214
/uams/android/broadcast,48134e6047a19a0215,48134e6047a19a0215
/uams/android/broadcast,48134e6047a19a0216,48134e6047a19a0216
/uams/android/broadcast,48134e6047a19a0217,48134e6047a19a0217
/uams/android/broadcast,48134e6047a19a0218,48134e6047a19a0218
/uams/android/broadcast,48134e6047a19a0219,48134e6047a19a0219
/uams/android/broadcast,48134e6047a19a0220,48134e6047a19a0220
/uams/android/broadcast,48134e6047a19a0221,48134e6047a19a0221
/uams/android/broadcast,48134e6047a19a0222,48134e6047a19a0222
/uams/android/broadcast,48134e6047a19a0223,48134e6047a19a0223
/uams/android/broadcast,48134e6047a19a0224,48134e6047a19a0224
/uams/android/broadcast,48134e6047a19a0225,48134e6047a19a0225
/uams/android/broadcast,48134e6047a19a0226,48134e6047a19a0226
/uams/android/broadcast,48134e6047a19a0227,48134e6047a19a0227
/uams/android/broadcast,48134e6047a19a0228,48134e6047a19a0228
/uams/android/broadcast,48134e6047a19a0229,48134e6047a19a0229
/uams/android/broadcast,48134e6047a19a0230,48134e6047a19a0230
/uams/android/broadcast,48134e6047a19a0231,48134e6047a19a0231
/uams/android/broadcast,48134e6047a19a0232,48134e6047a19a0232
/uams/android/broadcast,48134e6047a19a0233,48134e6047a19a0233
/uams/android/broadcast,48134e6047a19a0234,48134e6047a19a0234
/uams/android/broadcast,48134e6047a19a0235,48134e6047a19a0235
/uams/android/broadcast,48134e6047a19a0236,48134e6047a19a0236
/uams/android/broadcast,48134e6047a19a0237,48134e6047a19a0237
/uams/android/broadcast,48134e6047a19a0238,48134e6047a19a0238
/uams/android/broadcast,48134e6047a19a0239,48134e6047a19a0239
/uams/android/broadcast,48134e6047a19a0240,48134e6047a19a0240
/uams/android/broadcast,48134e6047a19a0241,48134e6047a19a0241
/uams/android/broadcast,48134e6047a19a0242,48134e6047a19a0242
/uams/android/broadcast,48134e6047a19a0243,48134e6047a19a0243
/uams/android/broadcast,48134e6047a19a0244,48134e6047a19a0244
/uams/android/broadcast,48134e6047a19a0245,48134e6047a19a0245
/uams/android/broadcast,48134e6047a19a0246,48134e6047a19a0246
/uams/android/broadcast,48134e6047a19a0247,48134e6047a19a0247
/uams/android/broadcast,48134e6047a19a0248,48134e6047a19a0248
/uams/android/broadcast,48134e6047a19a0249,48134e6047a19a0249
/uams/android/broadcast,48134e6047a19a0250,48134e6047a19a0250
/uams/android/broadcast,48134e6047a19a0251,48134e6047a19a0251
/uams/android/broadcast,48134e6047a19a0252,48134e6047a19a0252
/uams/android/broadcast,48134e6047a19a0253,48134e6047a19a0253
/uams/android/broadcast,48134e6047a19a0254,48134e6047a19a0254
/uams/android/broadcast,48134e6047a19a0255,48134e6047a19a0255
/uams/android/broadcast,48134e6047a19a0256,48134e6047a19a0256
/uams/android/broadcast,48134e6047a19a0257,48134e6047a19a0257
/uams/android/broadcast,48134e6047a19a0258,48134e6047a19a0258
/uams/android/broadcast,48134e6047a19a0259,48134e6047a19a0259
/uams/android/broadcast,48134e6047a19a0260,48134e6047a19a0260
/uams/android/broadcast,48134e6047a19a0261,48134e6047a19a0261
/uams/android/broadcast,48134e6047a19a0262,48134e6047a19a0262
/uams/android/broadcast,48134e6047a19a0263,48134e6047a19a0263
/uams/android/broadcast,48134e6047a19a0264,48134e6047a19a0264
/uams/android/broadcast,48134e6047a19a0265,48134e6047a19a0265
/uams/android/broadcast,48134e6047a19a0266,48134e6047a19a0266
/uams/android/broadcast,48134e6047a19a0267,48134e6047a19a0267
/uams/android/broadcast,48134e6047a19a0268,48134e6047a19a0268
/uams/android/broadcast,48134e6047a19a0269,48134e6047a19a0269
/uams/android/broadcast,48134e6047a19a0270,48134e6047a19a0270
/uams/android/broadcast,48134e6047a19a0271,48134e6047a19a0271
/uams/android/broadcast,48134e6047a19a0272,48134e6047a19a0272
/uams/android/broadcast,48134e6047a19a0273,48134e6047a19a0273
/uams/android/broadcast,48134e6047a19a0274,48134e6047a19a0274
/uams/android/broadcast,48134e6047a19a0275,48134e6047a19a0275
/uams/android/broadcast,48134e6047a19a0276,48134e6047a19a0276
/uams/android/broadcast,48134e6047a19a0277,48134e6047a19a0277
/uams/android/broadcast,48134e6047a19a0278,48134e6047a19a0278
/uams/android/broadcast,48134e6047a19a0279,48134e6047a19a0279
/uams/android/broadcast,48134e6047a19a0280,48134e6047a19a0280
/uams/android/broadcast,48134e6047a19a0281,48134e6047a19a0281
/uams/android/broadcast,48134e6047a19a0282,48134e6047a19a0282
/uams/android/broadcast,48134e6047a19a0283,48134e6047a19a0283
/uams/android/broadcast,48134e6047a19a0284,48134e6047a19a0284
/uams/android/broadcast,48134e6047a19a0285,48134e6047a19a0285
/uams/android/broadcast,48134e6047a19a0286,48134e6047a19a0286
/uams/android/broadcast,48134e6047a19a0287,48134e6047a19a0287
/uams/android/broadcast,48134e6047a19a0288,48134e6047a19a0288
/uams/android/broadcast,48134e6047a19a0289,48134e6047a19a0289
/uams/android/broadcast,48134e6047a19a0290,48134e6047a19a0290
/uams/android/broadcast,48134e6047a19a0291,48134e6047a19a0291
/uams/android/broadcast,48134e6047a19a0292,48134e6047a19a0292
/uams/android/broadcast,48134e6047a19a0293,48134e6047a19a0293
/uams/android/broadcast,48134e6047a19a0294,48134e6047a19a0294
/uams/android/broadcast,48134e6047a19a0295,48134e6047a19a0295
/uams/android/broadcast,48134e6047a19a0296,48134e6047a19a0296
/uams/android/broadcast,48134e6047a19a0297,48134e6047a19a0297
/uams/android/broadcast,48134e6047a19a0298,48134e6047a19a0298
/uams/android/broadcast,48134e6047a19a0299,48134e6047a19a0299
/uams/android/broadcast,48134e6047a19a0300,48134e6047a19a0300
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
/uams/android/broadcast,48134e6047a19a0101,48134e6047a19a0101
/uams/android/broadcast,48134e6047a19a0102,48134e6047a19a0102
/uams/android/broadcast,48134e6047a19a0103,48134e6047a19a0103
/uams/android/broadcast,48134e6047a19a0104,48134e6047a19a0104
/uams/android/broadcast,48134e6047a19a0105,48134e6047a19a0105
/uams/android/broadcast,48134e6047a19a0106,48134e6047a19a0106
/uams/android/broadcast,48134e6047a19a0107,48134e6047a19a0107
/uams/android/broadcast,48134e6047a19a0108,48134e6047a19a0108
/uams/android/broadcast,48134e6047a19a0109,48134e6047a19a0109
/uams/android/broadcast,48134e6047a19a0110,48134e6047a19a0110
/uams/android/broadcast,48134e6047a19a0111,48134e6047a19a0111
/uams/android/broadcast,48134e6047a19a0112,48134e6047a19a0112
/uams/android/broadcast,48134e6047a19a0113,48134e6047a19a0113
/uams/android/broadcast,48134e6047a19a0114,48134e6047a19a0114
/uams/android/broadcast,48134e6047a19a0115,48134e6047a19a0115
/uams/android/broadcast,48134e6047a19a0116,48134e6047a19a0116
/uams/android/broadcast,48134e6047a19a0117,48134e6047a19a0117
/uams/android/broadcast,48134e6047a19a0118,48134e6047a19a0118
/uams/android/broadcast,48134e6047a19a0119,48134e6047a19a0119
/uams/android/broadcast,48134e6047a19a0120,48134e6047a19a0120
/uams/android/broadcast,48134e6047a19a0121,48134e6047a19a0121
/uams/android/broadcast,48134e6047a19a0122,48134e6047a19a0122
/uams/android/broadcast,48134e6047a19a0123,48134e6047a19a0123
/uams/android/broadcast,48134e6047a19a0124,48134e6047a19a0124
/uams/android/broadcast,48134e6047a19a0125,48134e6047a19a0125
/uams/android/broadcast,48134e6047a19a0126,48134e6047a19a0126
/uams/android/broadcast,48134e6047a19a0127,48134e6047a19a0127
/uams/android/broadcast,48134e6047a19a0128,48134e6047a19a0128
/uams/android/broadcast,48134e6047a19a0129,48134e6047a19a0129
/uams/android/broadcast,48134e6047a19a0130,48134e6047a19a0130
/uams/android/broadcast,48134e6047a19a0131,48134e6047a19a0131
/uams/android/broadcast,48134e6047a19a0132,48134e6047a19a0132
/uams/android/broadcast,48134e6047a19a0133,48134e6047a19a0133
/uams/android/broadcast,48134e6047a19a0134,48134e6047a19a0134
/uams/android/broadcast,48134e6047a19a0135,48134e6047a19a0135
/uams/android/broadcast,48134e6047a19a0136,48134e6047a19a0136
/uams/android/broadcast,48134e6047a19a0137,48134e6047a19a0137
/uams/android/broadcast,48134e6047a19a0138,48134e6047a19a0138
/uams/android/broadcast,48134e6047a19a0139,48134e6047a19a0139
/uams/android/broadcast,48134e6047a19a0140,48134e6047a19a0140
/uams/android/broadcast,48134e6047a19a0141,48134e6047a19a0141
/uams/android/broadcast,48134e6047a19a0142,48134e6047a19a0142
/uams/android/broadcast,48134e6047a19a0143,48134e6047a19a0143
/uams/android/broadcast,48134e6047a19a0144,48134e6047a19a0144
/uams/android/broadcast,48134e6047a19a0145,48134e6047a19a0145
/uams/android/broadcast,48134e6047a19a0146,48134e6047a19a0146
/uams/android/broadcast,48134e6047a19a0147,48134e6047a19a0147
/uams/android/broadcast,48134e6047a19a0148,48134e6047a19a0148
/uams/android/broadcast,48134e6047a19a0149,48134e6047a19a0149
/uams/android/broadcast,48134e6047a19a0150,48134e6047a19a0150
/uams/android/broadcast,48134e6047a19a0151,48134e6047a19a0151
/uams/android/broadcast,48134e6047a19a0152,48134e6047a19a0152
/uams/android/broadcast,48134e6047a19a0153,48134e6047a19a0153
/uams/android/broadcast,48134e6047a19a0154,48134e6047a19a0154
/uams/android/broadcast,48134e6047a19a0155,48134e6047a19a0155
/uams/android/broadcast,48134e6047a19a0156,48134e6047a19a0156
/uams/android/broadcast,48134e6047a19a0157,48134e6047a19a0157
/uams/android/broadcast,48134e6047a19a0158,48134e6047a19a0158
/uams/android/broadcast,48134e6047a19a0159,48134e6047a19a0159
/uams/android/broadcast,48134e6047a19a0160,48134e6047a19a0160
/uams/android/broadcast,48134e6047a19a0161,48134e6047a19a0161
/uams/android/broadcast,48134e6047a19a0162,48134e6047a19a0162
/uams/android/broadcast,48134e6047a19a0163,48134e6047a19a0163
/uams/android/broadcast,48134e6047a19a0164,48134e6047a19a0164
/uams/android/broadcast,48134e6047a19a0165,48134e6047a19a0165
/uams/android/broadcast,48134e6047a19a0166,48134e6047a19a0166
/uams/android/broadcast,48134e6047a19a0167,48134e6047a19a0167
/uams/android/broadcast,48134e6047a19a0168,48134e6047a19a0168
/uams/android/broadcast,48134e6047a19a0169,48134e6047a19a0169
/uams/android/broadcast,48134e6047a19a0170,48134e6047a19a0170
/uams/android/broadcast,48134e6047a19a0171,48134e6047a19a0171
/uams/android/broadcast,48134e6047a19a0172,48134e6047a19a0172
/uams/android/broadcast,48134e6047a19a0173,48134e6047a19a0173
/uams/android/broadcast,48134e6047a19a0174,48134e6047a19a0174
/uams/android/broadcast,48134e6047a19a0175,48134e6047a19a0175
/uams/android/broadcast,48134e6047a19a0176,48134e6047a19a0176
/uams/android/broadcast,48134e6047a19a0177,48134e6047a19a0177
/uams/android/broadcast,48134e6047a19a0178,48134e6047a19a0178
/uams/android/broadcast,48134e6047a19a0179,48134e6047a19a0179
/uams/android/broadcast,48134e6047a19a0180,48134e6047a19a0180
/uams/android/broadcast,48134e6047a19a0181,48134e6047a19a0181
/uams/android/broadcast,48134e6047a19a0182,48134e6047a19a0182
/uams/android/broadcast,48134e6047a19a0183,48134e6047a19a0183
/uams/android/broadcast,48134e6047a19a0184,48134e6047a19a0184
/uams/android/broadcast,48134e6047a19a0185,48134e6047a19a0185
/uams/android/broadcast,48134e6047a19a0186,48134e6047a19a0186
/uams/android/broadcast,48134e6047a19a0187,48134e6047a19a0187
/uams/android/broadcast,48134e6047a19a0188,48134e6047a19a0188
/uams/android/broadcast,48134e6047a19a0189,48134e6047a19a0189
/uams/android/broadcast,48134e6047a19a0190,48134e6047a19a0190
/uams/android/broadcast,48134e6047a19a0191,48134e6047a19a0191
/uams/android/broadcast,48134e6047a19a0192,48134e6047a19a0192
/uams/android/broadcast,48134e6047a19a0193,48134e6047a19a0193
/uams/android/broadcast,48134e6047a19a0194,48134e6047a19a0194
/uams/android/broadcast,48134e6047a19a0195,48134e6047a19a0195
/uams/android/broadcast,48134e6047a19a0196,48134e6047a19a0196
/uams/android/broadcast,48134e6047a19a0197,48134e6047a19a0197
/uams/android/broadcast,48134e6047a19a0198,48134e6047a19a0198
/uams/android/broadcast,48134e6047a19a0199,48134e6047a19a0199
/uams/android/broadcast,48134e6047a19a0200,48134e6047a19a0200
/uams/android/broadcast,48134e6047a19a0201,48134e6047a19a0201
/uams/android/broadcast,48134e6047a19a0202,48134e6047a19a0202
/uams/android/broadcast,48134e6047a19a0203,48134e6047a19a0203
/uams/android/broadcast,48134e6047a19a0204,48134e6047a19a0204
/uams/android/broadcast,48134e6047a19a0205,48134e6047a19a0205
/uams/android/broadcast,48134e6047a19a0206,48134e6047a19a0206
/uams/android/broadcast,48134e6047a19a0207,48134e6047a19a0207
/uams/android/broadcast,48134e6047a19a0208,48134e6047a19a0208
/uams/android/broadcast,48134e6047a19a0209,48134e6047a19a0209
/uams/android/broadcast,48134e6047a19a0210,48134e6047a19a0210
/uams/android/broadcast,48134e6047a19a0211,48134e6047a19a0211
/uams/android/broadcast,48134e6047a19a0212,48134e6047a19a0212
/uams/android/broadcast,48134e6047a19a0213,48134e6047a19a0213
/uams/android/broadcast,48134e6047a19a0214,48134e6047a19a0214
/uams/android/broadcast,48134e6047a19a0215,48134e6047a19a0215
/uams/android/broadcast,48134e6047a19a0216,48134e6047a19a0216
/uams/android/broadcast,48134e6047a19a0217,48134e6047a19a0217
/uams/android/broadcast,48134e6047a19a0218,48134e6047a19a0218
/uams/android/broadcast,48134e6047a19a0219,48134e6047a19a0219
/uams/android/broadcast,48134e6047a19a0220,48134e6047a19a0220
/uams/android/broadcast,48134e6047a19a0221,48134e6047a19a0221
/uams/android/broadcast,48134e6047a19a0222,48134e6047a19a0222
/uams/android/broadcast,48134e6047a19a0223,48134e6047a19a0223
/uams/android/broadcast,48134e6047a19a0224,48134e6047a19a0224
/uams/android/broadcast,48134e6047a19a0225,48134e6047a19a0225
/uams/android/broadcast,48134e6047a19a0226,48134e6047a19a0226
/uams/android/broadcast,48134e6047a19a0227,48134e6047a19a0227
/uams/android/broadcast,48134e6047a19a0228,48134e6047a19a0228
/uams/android/broadcast,48134e6047a19a0229,48134e6047a19a0229
/uams/android/broadcast,48134e6047a19a0230,48134e6047a19a0230
/uams/android/broadcast,48134e6047a19a0231,48134e6047a19a0231
/uams/android/broadcast,48134e6047a19a0232,48134e6047a19a0232
/uams/android/broadcast,48134e6047a19a0233,48134e6047a19a0233
/uams/android/broadcast,48134e6047a19a0234,48134e6047a19a0234
/uams/android/broadcast,48134e6047a19a0235,48134e6047a19a0235
/uams/android/broadcast,48134e6047a19a0236,48134e6047a19a0236
/uams/android/broadcast,48134e6047a19a0237,48134e6047a19a0237
/uams/android/broadcast,48134e6047a19a0238,48134e6047a19a0238
/uams/android/broadcast,48134e6047a19a0239,48134e6047a19a0239
/uams/android/broadcast,48134e6047a19a0240,48134e6047a19a0240
/uams/android/broadcast,48134e6047a19a0241,48134e6047a19a0241
/uams/android/broadcast,48134e6047a19a0242,48134e6047a19a0242
/uams/android/broadcast,48134e6047a19a0243,48134e6047a19a0243
/uams/android/broadcast,48134e6047a19a0244,48134e6047a19a0244
/uams/android/broadcast,48134e6047a19a0245,48134e6047a19a0245
/uams/android/broadcast,48134e6047a19a0246,48134e6047a19a0246
/uams/android/broadcast,48134e6047a19a0247,48134e6047a19a0247
/uams/android/broadcast,48134e6047a19a0248,48134e6047a19a0248
/uams/android/broadcast,48134e6047a19a0249,48134e6047a19a0249
/uams/android/broadcast,48134e6047a19a0250,48134e6047a19a0250
/uams/android/broadcast,48134e6047a19a0251,48134e6047a19a0251
/uams/android/broadcast,48134e6047a19a0252,48134e6047a19a0252
/uams/android/broadcast,48134e6047a19a0253,48134e6047a19a0253
/uams/android/broadcast,48134e6047a19a0254,48134e6047a19a0254
/uams/android/broadcast,48134e6047a19a0255,48134e6047a19a0255
/uams/android/broadcast,48134e6047a19a0256,48134e6047a19a0256
/uams/android/broadcast,48134e6047a19a0257,48134e6047a19a0257
/uams/android/broadcast,48134e6047a19a0258,48134e6047a19a0258
/uams/android/broadcast,48134e6047a19a0259,48134e6047a19a0259
/uams/android/broadcast,48134e6047a19a0260,48134e6047a19a0260
/uams/android/broadcast,48134e6047a19a0261,48134e6047a19a0261
/uams/android/broadcast,48134e6047a19a0262,48134e6047a19a0262
/uams/android/broadcast,48134e6047a19a0263,48134e6047a19a0263
/uams/android/broadcast,48134e6047a19a0264,48134e6047a19a0264
/uams/android/broadcast,48134e6047a19a0265,48134e6047a19a0265
/uams/android/broadcast,48134e6047a19a0266,48134e6047a19a0266
/uams/android/broadcast,48134e6047a19a0267,48134e6047a19a0267
/uams/android/broadcast,48134e6047a19a0268,48134e6047a19a0268
/uams/android/broadcast,48134e6047a19a0269,48134e6047a19a0269
/uams/android/broadcast,48134e6047a19a0270,48134e6047a19a0270
/uams/android/broadcast,48134e6047a19a0271,48134e6047a19a0271
/uams/android/broadcast,48134e6047a19a0272,48134e6047a19a0272
/uams/android/broadcast,48134e6047a19a0273,48134e6047a19a0273
/uams/android/broadcast,48134e6047a19a0274,48134e6047a19a0274
/uams/android/broadcast,48134e6047a19a0275,48134e6047a19a0275
/uams/android/broadcast,48134e6047a19a0276,48134e6047a19a0276
/uams/android/broadcast,48134e6047a19a0277,48134e6047a19a0277
/uams/android/broadcast,48134e6047a19a0278,48134e6047a19a0278
/uams/android/broadcast,48134e6047a19a0279,48134e6047a19a0279
/uams/android/broadcast,48134e6047a19a0280,48134e6047a19a0280
/uams/android/broadcast,48134e6047a19a0281,48134e6047a19a0281
/uams/android/broadcast,48134e6047a19a0282,48134e6047a19a0282
/uams/android/broadcast,48134e6047a19a0283,48134e6047a19a0283
/uams/android/broadcast,48134e6047a19a0284,48134e6047a19a0284
/uams/android/broadcast,48134e6047a19a0285,48134e6047a19a0285
/uams/android/broadcast,48134e6047a19a0286,48134e6047a19a0286
/uams/android/broadcast,48134e6047a19a0287,48134e6047a19a0287
/uams/android/broadcast,48134e6047a19a0288,48134e6047a19a0288
/uams/android/broadcast,48134e6047a19a0289,48134e6047a19a0289
/uams/android/broadcast,48134e6047a19a0290,48134e6047a19a0290
/uams/android/broadcast,48134e6047a19a0291,48134e6047a19a0291
/uams/android/broadcast,48134e6047a19a0292,48134e6047a19a0292
/uams/android/broadcast,48134e6047a19a0293,48134e6047a19a0293
/uams/android/broadcast,48134e6047a19a0294,48134e6047a19a0294
/uams/android/broadcast,48134e6047a19a0295,48134e6047a19a0295
/uams/android/broadcast,48134e6047a19a0296,48134e6047a19a0296
/uams/android/broadcast,48134e6047a19a0297,48134e6047a19a0297
/uams/android/broadcast,48134e6047a19a0298,48134e6047a19a0298
/uams/android/broadcast,48134e6047a19a0299,48134e6047a19a0299
/uams/android/broadcast,48134e6047a19a0300,48134e6047a19a0300
topic,clientId,deviceId
/uams/android/broadcast,48134e6047a19a0001,48134e6047a19a0001
/uams/android/broadcast,48134e6047a19a0002,48134e6047a19a0002
/uams/android/broadcast,48134e6047a19a0003,48134e6047a19a0003
/uams/android/broadcast,48134e6047a19a0004,48134e6047a19a0004
/uams/android/broadcast,48134e6047a19a0005,48134e6047a19a0005
/uams/android/broadcast,48134e6047a19a0006,48134e6047a19a0006
/uams/android/broadcast,48134e6047a19a0007,48134e6047a19a0007
/uams/android/broadcast,48134e6047a19a0008,48134e6047a19a0008
/uams/android/broadcast,48134e6047a19a0009,48134e6047a19a0009
/uams/android/broadcast,48134e6047a19a0010,48134e6047a19a0010
/uams/android/broadcast,48134e6047a19a0011,48134e6047a19a0011
/uams/android/broadcast,48134e6047a19a0012,48134e6047a19a0012
/uams/android/broadcast,48134e6047a19a0013,48134e6047a19a0013
/uams/android/broadcast,48134e6047a19a0014,48134e6047a19a0014
/uams/android/broadcast,48134e6047a19a0015,48134e6047a19a0015
/uams/android/broadcast,48134e6047a19a0016,48134e6047a19a0016
/uams/android/broadcast,48134e6047a19a0017,48134e6047a19a0017
/uams/android/broadcast,48134e6047a19a0018,48134e6047a19a0018
/uams/android/broadcast,48134e6047a19a0019,48134e6047a19a0019
/uams/android/broadcast,48134e6047a19a0020,48134e6047a19a0020
/uams/android/broadcast,48134e6047a19a0021,48134e6047a19a0021
/uams/android/broadcast,48134e6047a19a0022,48134e6047a19a0022
/uams/android/broadcast,48134e6047a19a0023,48134e6047a19a0023
/uams/android/broadcast,48134e6047a19a0024,48134e6047a19a0024
/uams/android/broadcast,48134e6047a19a0025,48134e6047a19a0025
/uams/android/broadcast,48134e6047a19a0026,48134e6047a19a0026
/uams/android/broadcast,48134e6047a19a0027,48134e6047a19a0027
/uams/android/broadcast,48134e6047a19a0028,48134e6047a19a0028
/uams/android/broadcast,48134e6047a19a0029,48134e6047a19a0029
/uams/android/broadcast,48134e6047a19a0030,48134e6047a19a0030
/uams/android/broadcast,48134e6047a19a0031,48134e6047a19a0031
/uams/android/broadcast,48134e6047a19a0032,48134e6047a19a0032
/uams/android/broadcast,48134e6047a19a0033,48134e6047a19a0033
/uams/android/broadcast,48134e6047a19a0034,48134e6047a19a0034
/uams/android/broadcast,48134e6047a19a0035,48134e6047a19a0035
/uams/android/broadcast,48134e6047a19a0036,48134e6047a19a0036
/uams/android/broadcast,48134e6047a19a0037,48134e6047a19a0037
/uams/android/broadcast,48134e6047a19a0038,48134e6047a19a0038
/uams/android/broadcast,48134e6047a19a0039,48134e6047a19a0039
/uams/android/broadcast,48134e6047a19a0040,48134e6047a19a0040
/uams/android/broadcast,48134e6047a19a0041,48134e6047a19a0041
/uams/android/broadcast,48134e6047a19a0042,48134e6047a19a0042
/uams/android/broadcast,48134e6047a19a0043,48134e6047a19a0043
/uams/android/broadcast,48134e6047a19a0044,48134e6047a19a0044
/uams/android/broadcast,48134e6047a19a0045,48134e6047a19a0045
/uams/android/broadcast,48134e6047a19a0046,48134e6047a19a0046
/uams/android/broadcast,48134e6047a19a0047,48134e6047a19a0047
/uams/android/broadcast,48134e6047a19a0048,48134e6047a19a0048
/uams/android/broadcast,48134e6047a19a0049,48134e6047a19a0049
/uams/android/broadcast,48134e6047a19a0050,48134e6047a19a0050
/uams/android/broadcast,48134e6047a19a0051,48134e6047a19a0051
/uams/android/broadcast,48134e6047a19a0052,48134e6047a19a0052
/uams/android/broadcast,48134e6047a19a0053,48134e6047a19a0053
/uams/android/broadcast,48134e6047a19a0054,48134e6047a19a0054
/uams/android/broadcast,48134e6047a19a0055,48134e6047a19a0055
/uams/android/broadcast,48134e6047a19a0056,48134e6047a19a0056
/uams/android/broadcast,48134e6047a19a0057,48134e6047a19a0057
/uams/android/broadcast,48134e6047a19a0058,48134e6047a19a0058
/uams/android/broadcast,48134e6047a19a0059,48134e6047a19a0059
/uams/android/broadcast,48134e6047a19a0060,48134e6047a19a0060
/uams/android/broadcast,48134e6047a19a0061,48134e6047a19a0061
/uams/android/broadcast,48134e6047a19a0062,48134e6047a19a0062
/uams/android/broadcast,48134e6047a19a0063,48134e6047a19a0063
/uams/android/broadcast,48134e6047a19a0064,48134e6047a19a0064
/uams/android/broadcast,48134e6047a19a0065,48134e6047a19a0065
/uams/android/broadcast,48134e6047a19a0066,48134e6047a19a0066
/uams/android/broadcast,48134e6047a19a0067,48134e6047a19a0067
/uams/android/broadcast,48134e6047a19a0068,48134e6047a19a0068
/uams/android/broadcast,48134e6047a19a0069,48134e6047a19a0069
/uams/android/broadcast,48134e6047a19a0070,48134e6047a19a0070
/uams/android/broadcast,48134e6047a19a0071,48134e6047a19a0071
/uams/android/broadcast,48134e6047a19a0072,48134e6047a19a0072
/uams/android/broadcast,48134e6047a19a0073,48134e6047a19a0073
/uams/android/broadcast,48134e6047a19a0074,48134e6047a19a0074
/uams/android/broadcast,48134e6047a19a0075,48134e6047a19a0075
/uams/android/broadcast,48134e6047a19a0076,48134e6047a19a0076
/uams/android/broadcast,48134e6047a19a0077,48134e6047a19a0077
/uams/android/broadcast,48134e6047a19a0078,48134e6047a19a0078
/uams/android/broadcast,48134e6047a19a0079,48134e6047a19a0079
/uams/android/broadcast,48134e6047a19a0080,48134e6047a19a0080
/uams/android/broadcast,48134e6047a19a0081,48134e6047a19a0081
/uams/android/broadcast,48134e6047a19a0082,48134e6047a19a0082
/uams/android/broadcast,48134e6047a19a0083,48134e6047a19a0083
/uams/android/broadcast,48134e6047a19a0084,48134e6047a19a0084
/uams/android/broadcast,48134e6047a19a0085,48134e6047a19a0085
/uams/android/broadcast,48134e6047a19a0086,48134e6047a19a0086
/uams/android/broadcast,48134e6047a19a0087,48134e6047a19a0087
/uams/android/broadcast,48134e6047a19a0088,48134e6047a19a0088
/uams/android/broadcast,48134e6047a19a0089,48134e6047a19a0089
/uams/android/broadcast,48134e6047a19a0090,48134e6047a19a0090
/uams/android/broadcast,48134e6047a19a0091,48134e6047a19a0091
/uams/android/broadcast,48134e6047a19a0092,48134e6047a19a0092
/uams/android/broadcast,48134e6047a19a0093,48134e6047a19a0093
/uams/android/broadcast,48134e6047a19a0094,48134e6047a19a0094
/uams/android/broadcast,48134e6047a19a0095,48134e6047a19a0095
/uams/android/broadcast,48134e6047a19a0096,48134e6047a19a0096
/uams/android/broadcast,48134e6047a19a0097,48134e6047a19a0097
/uams/android/broadcast,48134e6047a19a0098,48134e6047a19a0098
/uams/android/broadcast,48134e6047a19a0099,48134e6047a19a0099
/uams/android/broadcast,48134e6047a19a0100,48134e6047a19a0100
/uams/android/broadcast,48134e6047a19a0101,48134e6047a19a0101
/uams/android/broadcast,48134e6047a19a0102,48134e6047a19a0102
/uams/android/broadcast,48134e6047a19a0103,48134e6047a19a0103
/uams/android/broadcast,48134e6047a19a0104,48134e6047a19a0104
/uams/android/broadcast,48134e6047a19a0105,48134e6047a19a0105
/uams/android/broadcast,48134e6047a19a0106,48134e6047a19a0106
/uams/android/broadcast,48134e6047a19a0107,48134e6047a19a0107
/uams/android/broadcast,48134e6047a19a0108,48134e6047a19a0108
/uams/android/broadcast,48134e6047a19a0109,48134e6047a19a0109
/uams/android/broadcast,48134e6047a19a0110,48134e6047a19a0110
/uams/android/broadcast,48134e6047a19a0111,48134e6047a19a0111
/uams/android/broadcast,48134e6047a19a0112,48134e6047a19a0112
/uams/android/broadcast,48134e6047a19a0113,48134e6047a19a0113
/uams/android/broadcast,48134e6047a19a0114,48134e6047a19a0114
/uams/android/broadcast,48134e6047a19a0115,48134e6047a19a0115
/uams/android/broadcast,48134e6047a19a0116,48134e6047a19a0116
/uams/android/broadcast,48134e6047a19a0117,48134e6047a19a0117
/uams/android/broadcast,48134e6047a19a0118,48134e6047a19a0118
/uams/android/broadcast,48134e6047a19a0119,48134e6047a19a0119
/uams/android/broadcast,48134e6047a19a0120,48134e6047a19a0120
/uams/android/broadcast,48134e6047a19a0121,48134e6047a19a0121
/uams/android/broadcast,48134e6047a19a0122,48134e6047a19a0122
/uams/android/broadcast,48134e6047a19a0123,48134e6047a19a0123
/uams/android/broadcast,48134e6047a19a0124,48134e6047a19a0124
/uams/android/broadcast,48134e6047a19a0125,48134e6047a19a0125
/uams/android/broadcast,48134e6047a19a0126,48134e6047a19a0126
/uams/android/broadcast,48134e6047a19a0127,48134e6047a19a0127
/uams/android/broadcast,48134e6047a19a0128,48134e6047a19a0128
/uams/android/broadcast,48134e6047a19a0129,48134e6047a19a0129
/uams/android/broadcast,48134e6047a19a0130,48134e6047a19a0130
/uams/android/broadcast,48134e6047a19a0131,48134e6047a19a0131
/uams/android/broadcast,48134e6047a19a0132,48134e6047a19a0132
/uams/android/broadcast,48134e6047a19a0133,48134e6047a19a0133
/uams/android/broadcast,48134e6047a19a0134,48134e6047a19a0134
/uams/android/broadcast,48134e6047a19a0135,48134e6047a19a0135
/uams/android/broadcast,48134e6047a19a0136,48134e6047a19a0136
/uams/android/broadcast,48134e6047a19a0137,48134e6047a19a0137
/uams/android/broadcast,48134e6047a19a0138,48134e6047a19a0138
/uams/android/broadcast,48134e6047a19a0139,48134e6047a19a0139
/uams/android/broadcast,48134e6047a19a0140,48134e6047a19a0140
/uams/android/broadcast,48134e6047a19a0141,48134e6047a19a0141
/uams/android/broadcast,48134e6047a19a0142,48134e6047a19a0142
/uams/android/broadcast,48134e6047a19a0143,48134e6047a19a0143
/uams/android/broadcast,48134e6047a19a0144,48134e6047a19a0144
/uams/android/broadcast,48134e6047a19a0145,48134e6047a19a0145
/uams/android/broadcast,48134e6047a19a0146,48134e6047a19a0146
/uams/android/broadcast,48134e6047a19a0147,48134e6047a19a0147
/uams/android/broadcast,48134e6047a19a0148,48134e6047a19a0148
/uams/android/broadcast,48134e6047a19a0149,48134e6047a19a0149
/uams/android/broadcast,48134e6047a19a0150,48134e6047a19a0150
/uams/android/broadcast,48134e6047a19a0151,48134e6047a19a0151
/uams/android/broadcast,48134e6047a19a0152,48134e6047a19a0152
/uams/android/broadcast,48134e6047a19a0153,48134e6047a19a0153
/uams/android/broadcast,48134e6047a19a0154,48134e6047a19a0154
/uams/android/broadcast,48134e6047a19a0155,48134e6047a19a0155
/uams/android/broadcast,48134e6047a19a0156,48134e6047a19a0156
/uams/android/broadcast,48134e6047a19a0157,48134e6047a19a0157
/uams/android/broadcast,48134e6047a19a0158,48134e6047a19a0158
/uams/android/broadcast,48134e6047a19a0159,48134e6047a19a0159
/uams/android/broadcast,48134e6047a19a0160,48134e6047a19a0160
/uams/android/broadcast,48134e6047a19a0161,48134e6047a19a0161
/uams/android/broadcast,48134e6047a19a0162,48134e6047a19a0162
/uams/android/broadcast,48134e6047a19a0163,48134e6047a19a0163
/uams/android/broadcast,48134e6047a19a0164,48134e6047a19a0164
/uams/android/broadcast,48134e6047a19a0165,48134e6047a19a0165
/uams/android/broadcast,48134e6047a19a0166,48134e6047a19a0166
/uams/android/broadcast,48134e6047a19a0167,48134e6047a19a0167
/uams/android/broadcast,48134e6047a19a0168,48134e6047a19a0168
/uams/android/broadcast,48134e6047a19a0169,48134e6047a19a0169
/uams/android/broadcast,48134e6047a19a0170,48134e6047a19a0170
/uams/android/broadcast,48134e6047a19a0171,48134e6047a19a0171
/uams/android/broadcast,48134e6047a19a0172,48134e6047a19a0172
/uams/android/broadcast,48134e6047a19a0173,48134e6047a19a0173
/uams/android/broadcast,48134e6047a19a0174,48134e6047a19a0174
/uams/android/broadcast,48134e6047a19a0175,48134e6047a19a0175
/uams/android/broadcast,48134e6047a19a0176,48134e6047a19a0176
/uams/android/broadcast,48134e6047a19a0177,48134e6047a19a0177
/uams/android/broadcast,48134e6047a19a0178,48134e6047a19a0178
/uams/android/broadcast,48134e6047a19a0179,48134e6047a19a0179
/uams/android/broadcast,48134e6047a19a0180,48134e6047a19a0180
/uams/android/broadcast,48134e6047a19a0181,48134e6047a19a0181
/uams/android/broadcast,48134e6047a19a0182,48134e6047a19a0182
/uams/android/broadcast,48134e6047a19a0183,48134e6047a19a0183
/uams/android/broadcast,48134e6047a19a0184,48134e6047a19a0184
/uams/android/broadcast,48134e6047a19a0185,48134e6047a19a0185
/uams/android/broadcast,48134e6047a19a0186,48134e6047a19a0186
/uams/android/broadcast,48134e6047a19a0187,48134e6047a19a0187
/uams/android/broadcast,48134e6047a19a0188,48134e6047a19a0188
/uams/android/broadcast,48134e6047a19a0189,48134e6047a19a0189
/uams/android/broadcast,48134e6047a19a0190,48134e6047a19a0190
/uams/android/broadcast,48134e6047a19a0191,48134e6047a19a0191
/uams/android/broadcast,48134e6047a19a0192,48134e6047a19a0192
/uams/android/broadcast,48134e6047a19a0193,48134e6047a19a0193
/uams/android/broadcast,48134e6047a19a0194,48134e6047a19a0194
/uams/android/broadcast,48134e6047a19a0195,48134e6047a19a0195
/uams/android/broadcast,48134e6047a19a0196,48134e6047a19a0196
/uams/android/broadcast,48134e6047a19a0197,48134e6047a19a0197
/uams/android/broadcast,48134e6047a19a0198,48134e6047a19a0198
/uams/android/broadcast,48134e6047a19a0199,48134e6047a19a0199
/uams/android/broadcast,48134e6047a19a0200,48134e6047a19a0200
/uams/android/broadcast,48134e6047a19a0201,48134e6047a19a0201
/uams/android/broadcast,48134e6047a19a0202,48134e6047a19a0202
/uams/android/broadcast,48134e6047a19a0203,48134e6047a19a0203
/uams/android/broadcast,48134e6047a19a0204,48134e6047a19a0204
/uams/android/broadcast,48134e6047a19a0205,48134e6047a19a0205
/uams/android/broadcast,48134e6047a19a0206,48134e6047a19a0206
/uams/android/broadcast,48134e6047a19a0207,48134e6047a19a0207
/uams/android/broadcast,48134e6047a19a0208,48134e6047a19a0208
/uams/android/broadcast,48134e6047a19a0209,48134e6047a19a0209
/uams/android/broadcast,48134e6047a19a0210,48134e6047a19a0210
/uams/android/broadcast,48134e6047a19a0211,48134e6047a19a0211
/uams/android/broadcast,48134e6047a19a0212,48134e6047a19a0212
/uams/android/broadcast,48134e6047a19a0213,48134e6047a19a0213
/uams/android/broadcast,48134e6047a19a0214,48134e6047a19a0214
/uams/android/broadcast,48134e6047a19a0215,48134e6047a19a0215
/uams/android/broadcast,48134e6047a19a0216,48134e6047a19a0216
/uams/android/broadcast,48134e6047a19a0217,48134e6047a19a0217
/uams/android/broadcast,48134e6047a19a0218,48134e6047a19a0218
/uams/android/broadcast,48134e6047a19a0219,48134e6047a19a0219
/uams/android/broadcast,48134e6047a19a0220,48134e6047a19a0220
/uams/android/broadcast,48134e6047a19a0221,48134e6047a19a0221
/uams/android/broadcast,48134e6047a19a0222,48134e6047a19a0222
/uams/android/broadcast,48134e6047a19a0223,48134e6047a19a0223
/uams/android/broadcast,48134e6047a19a0224,48134e6047a19a0224
/uams/android/broadcast,48134e6047a19a0225,48134e6047a19a0225
/uams/android/broadcast,48134e6047a19a0226,48134e6047a19a0226
/uams/android/broadcast,48134e6047a19a0227,48134e6047a19a0227
/uams/android/broadcast,48134e6047a19a0228,48134e6047a19a0228
/uams/android/broadcast,48134e6047a19a0229,48134e6047a19a0229
/uams/android/broadcast,48134e6047a19a0230,48134e6047a19a0230
/uams/android/broadcast,48134e6047a19a0231,48134e6047a19a0231
/uams/android/broadcast,48134e6047a19a0232,48134e6047a19a0232
/uams/android/broadcast,48134e6047a19a0233,48134e6047a19a0233
/uams/android/broadcast,48134e6047a19a0234,48134e6047a19a0234
/uams/android/broadcast,48134e6047a19a0235,48134e6047a19a0235
/uams/android/broadcast,48134e6047a19a0236,48134e6047a19a0236
/uams/android/broadcast,48134e6047a19a0237,48134e6047a19a0237
/uams/android/broadcast,48134e6047a19a0238,48134e6047a19a0238
/uams/android/broadcast,48134e6047a19a0239,48134e6047a19a0239
/uams/android/broadcast,48134e6047a19a0240,48134e6047a19a0240
/uams/android/broadcast,48134e6047a19a0241,48134e6047a19a0241
/uams/android/broadcast,48134e6047a19a0242,48134e6047a19a0242
/uams/android/broadcast,48134e6047a19a0243,48134e6047a19a0243
/uams/android/broadcast,48134e6047a19a0244,48134e6047a19a0244
/uams/android/broadcast,48134e6047a19a0245,48134e6047a19a0245
/uams/android/broadcast,48134e6047a19a0246,48134e6047a19a0246
/uams/android/broadcast,48134e6047a19a0247,48134e6047a19a0247
/uams/android/broadcast,48134e6047a19a0248,48134e6047a19a0248
/uams/android/broadcast,48134e6047a19a0249,48134e6047a19a0249
/uams/android/broadcast,48134e6047a19a0250,48134e6047a19a0250
/uams/android/broadcast,48134e6047a19a0251,48134e6047a19a0251
/uams/android/broadcast,48134e6047a19a0252,48134e6047a19a0252
/uams/android/broadcast,48134e6047a19a0253,48134e6047a19a0253
/uams/android/broadcast,48134e6047a19a0254,48134e6047a19a0254
/uams/android/broadcast,48134e6047a19a0255,48134e6047a19a0255
/uams/android/broadcast,48134e6047a19a0256,48134e6047a19a0256
/uams/android/broadcast,48134e6047a19a0257,48134e6047a19a0257
/uams/android/broadcast,48134e6047a19a0258,48134e6047a19a0258
/uams/android/broadcast,48134e6047a19a0259,48134e6047a19a0259
/uams/android/broadcast,48134e6047a19a0260,48134e6047a19a0260
/uams/android/broadcast,48134e6047a19a0261,48134e6047a19a0261
/uams/android/broadcast,48134e6047a19a0262,48134e6047a19a0262
/uams/android/broadcast,48134e6047a19a0263,48134e6047a19a0263
/uams/android/broadcast,48134e6047a19a0264,48134e6047a19a0264
/uams/android/broadcast,48134e6047a19a0265,48134e6047a19a0265
/uams/android/broadcast,48134e6047a19a0266,48134e6047a19a0266
/uams/android/broadcast,48134e6047a19a0267,48134e6047a19a0267
/uams/android/broadcast,48134e6047a19a0268,48134e6047a19a0268
/uams/android/broadcast,48134e6047a19a0269,48134e6047a19a0269
/uams/android/broadcast,48134e6047a19a0270,48134e6047a19a0270
/uams/android/broadcast,48134e6047a19a0271,48134e6047a19a0271
/uams/android/broadcast,48134e6047a19a0272,48134e6047a19a0272
/uams/android/broadcast,48134e6047a19a0273,48134e6047a19a0273
/uams/android/broadcast,48134e6047a19a0274,48134e6047a19a0274
/uams/android/broadcast,48134e6047a19a0275,48134e6047a19a0275
/uams/android/broadcast,48134e6047a19a0276,48134e6047a19a0276
/uams/android/broadcast,48134e6047a19a0277,48134e6047a19a0277
/uams/android/broadcast,48134e6047a19a0278,48134e6047a19a0278
/uams/android/broadcast,48134e6047a19a0279,48134e6047a19a0279
/uams/android/broadcast,48134e6047a19a0280,48134e6047a19a0280
/uams/android/broadcast,48134e6047a19a0281,48134e6047a19a0281
/uams/android/broadcast,48134e6047a19a0282,48134e6047a19a0282
/uams/android/broadcast,48134e6047a19a0283,48134e6047a19a0283
/uams/android/broadcast,48134e6047a19a0284,48134e6047a19a0284
/uams/android/broadcast,48134e6047a19a0285,48134e6047a19a0285
/uams/android/broadcast,48134e6047a19a0286,48134e6047a19a0286
/uams/android/broadcast,48134e6047a19a0287,48134e6047a19a0287
/uams/android/broadcast,48134e6047a19a0288,48134e6047a19a0288
/uams/android/broadcast,48134e6047a19a0289,48134e6047a19a0289
/uams/android/broadcast,48134e6047a19a0290,48134e6047a19a0290
/uams/android/broadcast,48134e6047a19a0291,48134e6047a19a0291
/uams/android/broadcast,48134e6047a19a0292,48134e6047a19a0292
/uams/android/broadcast,48134e6047a19a0293,48134e6047a19a0293
/uams/android/broadcast,48134e6047a19a0294,48134e6047a19a0294
/uams/android/broadcast,48134e6047a19a0295,48134e6047a19a0295
/uams/android/broadcast,48134e6047a19a0296,48134e6047a19a0296
/uams/android/broadcast,48134e6047a19a0297,48134e6047a19a0297
/uams/android/broadcast,48134e6047a19a0298,48134e6047a19a0298
/uams/android/broadcast,48134e6047a19a0299,48134e6047a19a0299
/uams/android/broadcast,48134e6047a19a0300,48134e6047a19a0300
/uams/android/broadcast,48134e6047a19a0301,48134e6047a19a0301
/uams/android/broadcast,48134e6047a19a0302,48134e6047a19a0302
/uams/android/broadcast,48134e6047a19a0303,48134e6047a19a0303
/uams/android/broadcast,48134e6047a19a0304,48134e6047a19a0304
/uams/android/broadcast,48134e6047a19a0305,48134e6047a19a0305
/uams/android/broadcast,48134e6047a19a0306,48134e6047a19a0306
/uams/android/broadcast,48134e6047a19a0307,48134e6047a19a0307
/uams/android/broadcast,48134e6047a19a0308,48134e6047a19a0308
/uams/android/broadcast,48134e6047a19a0309,48134e6047a19a0309
/uams/android/broadcast,48134e6047a19a0310,48134e6047a19a0310
/uams/android/broadcast,48134e6047a19a0311,48134e6047a19a0311
/uams/android/broadcast,48134e6047a19a0312,48134e6047a19a0312
/uams/android/broadcast,48134e6047a19a0313,48134e6047a19a0313
/uams/android/broadcast,48134e6047a19a0314,48134e6047a19a0314
/uams/android/broadcast,48134e6047a19a0315,48134e6047a19a0315
/uams/android/broadcast,48134e6047a19a0316,48134e6047a19a0316
/uams/android/broadcast,48134e6047a19a0317,48134e6047a19a0317
/uams/android/broadcast,48134e6047a19a0318,48134e6047a19a0318
/uams/android/broadcast,48134e6047a19a0319,48134e6047a19a0319
/uams/android/broadcast,48134e6047a19a0320,48134e6047a19a0320
/uams/android/broadcast,48134e6047a19a0321,48134e6047a19a0321
/uams/android/broadcast,48134e6047a19a0322,48134e6047a19a0322
/uams/android/broadcast,48134e6047a19a0323,48134e6047a19a0323
/uams/android/broadcast,48134e6047a19a0324,48134e6047a19a0324
/uams/android/broadcast,48134e6047a19a0325,48134e6047a19a0325
/uams/android/broadcast,48134e6047a19a0326,48134e6047a19a0326
/uams/android/broadcast,48134e6047a19a0327,48134e6047a19a0327
/uams/android/broadcast,48134e6047a19a0328,48134e6047a19a0328
/uams/android/broadcast,48134e6047a19a0329,48134e6047a19a0329
/uams/android/broadcast,48134e6047a19a0330,48134e6047a19a0330
/uams/android/broadcast,48134e6047a19a0331,48134e6047a19a0331
/uams/android/broadcast,48134e6047a19a0332,48134e6047a19a0332
/uams/android/broadcast,48134e6047a19a0333,48134e6047a19a0333
/uams/android/broadcast,48134e6047a19a0334,48134e6047a19a0334
/uams/android/broadcast,48134e6047a19a0335,48134e6047a19a0335
/uams/android/broadcast,48134e6047a19a0336,48134e6047a19a0336
/uams/android/broadcast,48134e6047a19a0337,48134e6047a19a0337
/uams/android/broadcast,48134e6047a19a0338,48134e6047a19a0338
/uams/android/broadcast,48134e6047a19a0339,48134e6047a19a0339
/uams/android/broadcast,48134e6047a19a0340,48134e6047a19a0340
/uams/android/broadcast,48134e6047a19a0341,48134e6047a19a0341
/uams/android/broadcast,48134e6047a19a0342,48134e6047a19a0342
/uams/android/broadcast,48134e6047a19a0343,48134e6047a19a0343
/uams/android/broadcast,48134e6047a19a0344,48134e6047a19a0344
/uams/android/broadcast,48134e6047a19a0345,48134e6047a19a0345
/uams/android/broadcast,48134e6047a19a0346,48134e6047a19a0346
/uams/android/broadcast,48134e6047a19a0347,48134e6047a19a0347
/uams/android/broadcast,48134e6047a19a0348,48134e6047a19a0348
/uams/android/broadcast,48134e6047a19a0349,48134e6047a19a0349
/uams/android/broadcast,48134e6047a19a0350,48134e6047a19a0350
/uams/android/broadcast,48134e6047a19a0351,48134e6047a19a0351
/uams/android/broadcast,48134e6047a19a0352,48134e6047a19a0352
/uams/android/broadcast,48134e6047a19a0353,48134e6047a19a0353
/uams/android/broadcast,48134e6047a19a0354,48134e6047a19a0354
/uams/android/broadcast,48134e6047a19a0355,48134e6047a19a0355
/uams/android/broadcast,48134e6047a19a0356,48134e6047a19a0356
/uams/android/broadcast,48134e6047a19a0357,48134e6047a19a0357
/uams/android/broadcast,48134e6047a19a0358,48134e6047a19a0358
/uams/android/broadcast,48134e6047a19a0359,48134e6047a19a0359
/uams/android/broadcast,48134e6047a19a0360,48134e6047a19a0360
/uams/android/broadcast,48134e6047a19a0361,48134e6047a19a0361
/uams/android/broadcast,48134e6047a19a0362,48134e6047a19a0362
/uams/android/broadcast,48134e6047a19a0363,48134e6047a19a0363
/uams/android/broadcast,48134e6047a19a0364,48134e6047a19a0364
/uams/android/broadcast,48134e6047a19a0365,48134e6047a19a0365
/uams/android/broadcast,48134e6047a19a0366,48134e6047a19a0366
/uams/android/broadcast,48134e6047a19a0367,48134e6047a19a0367
/uams/android/broadcast,48134e6047a19a0368,48134e6047a19a0368
/uams/android/broadcast,48134e6047a19a0369,48134e6047a19a0369
/uams/android/broadcast,48134e6047a19a0370,48134e6047a19a0370
/uams/android/broadcast,48134e6047a19a0371,48134e6047a19a0371
/uams/android/broadcast,48134e6047a19a0372,48134e6047a19a0372
/uams/android/broadcast,48134e6047a19a0373,48134e6047a19a0373
/uams/android/broadcast,48134e6047a19a0374,48134e6047a19a0374
/uams/android/broadcast,48134e6047a19a0375,48134e6047a19a0375
/uams/android/broadcast,48134e6047a19a0376,48134e6047a19a0376
/uams/android/broadcast,48134e6047a19a0377,48134e6047a19a0377
/uams/android/broadcast,48134e6047a19a0378,48134e6047a19a0378
/uams/android/broadcast,48134e6047a19a0379,48134e6047a19a0379
/uams/android/broadcast,48134e6047a19a0380,48134e6047a19a0380
/uams/android/broadcast,48134e6047a19a0381,48134e6047a19a0381
/uams/android/broadcast,48134e6047a19a0382,48134e6047a19a0382
/uams/android/broadcast,48134e6047a19a0383,48134e6047a19a0383
/uams/android/broadcast,48134e6047a19a0384,48134e6047a19a0384
/uams/android/broadcast,48134e6047a19a0385,48134e6047a19a0385
/uams/android/broadcast,48134e6047a19a0386,48134e6047a19a0386
/uams/android/broadcast,48134e6047a19a0387,48134e6047a19a0387
/uams/android/broadcast,48134e6047a19a0388,48134e6047a19a0388
/uams/android/broadcast,48134e6047a19a0389,48134e6047a19a0389
/uams/android/broadcast,48134e6047a19a0390,48134e6047a19a0390
/uams/android/broadcast,48134e6047a19a0391,48134e6047a19a0391
/uams/android/broadcast,48134e6047a19a0392,48134e6047a19a0392
/uams/android/broadcast,48134e6047a19a0393,48134e6047a19a0393
/uams/android/broadcast,48134e6047a19a0394,48134e6047a19a0394
/uams/android/broadcast,48134e6047a19a0395,48134e6047a19a0395
/uams/android/broadcast,48134e6047a19a0396,48134e6047a19a0396
/uams/android/broadcast,48134e6047a19a0397,48134e6047a19a0397
/uams/android/broadcast,48134e6047a19a0398,48134e6047a19a0398
/uams/android/broadcast,48134e6047a19a0399,48134e6047a19a0399
/uams/android/broadcast,48134e6047a19a0400,48134e6047a19a0400
/uams/android/broadcast,48134e6047a19a0401,48134e6047a19a0401
/uams/android/broadcast,48134e6047a19a0402,48134e6047a19a0402
/uams/android/broadcast,48134e6047a19a0403,48134e6047a19a0403
/uams/android/broadcast,48134e6047a19a0404,48134e6047a19a0404
/uams/android/broadcast,48134e6047a19a0405,48134e6047a19a0405
/uams/android/broadcast,48134e6047a19a0406,48134e6047a19a0406
/uams/android/broadcast,48134e6047a19a0407,48134e6047a19a0407
/uams/android/broadcast,48134e6047a19a0408,48134e6047a19a0408
/uams/android/broadcast,48134e6047a19a0409,48134e6047a19a0409
/uams/android/broadcast,48134e6047a19a0410,48134e6047a19a0410
/uams/android/broadcast,48134e6047a19a0411,48134e6047a19a0411
/uams/android/broadcast,48134e6047a19a0412,48134e6047a19a0412
/uams/android/broadcast,48134e6047a19a0413,48134e6047a19a0413
/uams/android/broadcast,48134e6047a19a0414,48134e6047a19a0414
/uams/android/broadcast,48134e6047a19a0415,48134e6047a19a0415
/uams/android/broadcast,48134e6047a19a0416,48134e6047a19a0416
/uams/android/broadcast,48134e6047a19a0417,48134e6047a19a0417
/uams/android/broadcast,48134e6047a19a0418,48134e6047a19a0418
/uams/android/broadcast,48134e6047a19a0419,48134e6047a19a0419
/uams/android/broadcast,48134e6047a19a0420,48134e6047a19a0420
/uams/android/broadcast,48134e6047a19a0421,48134e6047a19a0421
/uams/android/broadcast,48134e6047a19a0422,48134e6047a19a0422
/uams/android/broadcast,48134e6047a19a0423,48134e6047a19a0423
/uams/android/broadcast,48134e6047a19a0424,48134e6047a19a0424
/uams/android/broadcast,48134e6047a19a0425,48134e6047a19a0425
/uams/android/broadcast,48134e6047a19a0426,48134e6047a19a0426
/uams/android/broadcast,48134e6047a19a0427,48134e6047a19a0427
/uams/android/broadcast,48134e6047a19a0428,48134e6047a19a0428
/uams/android/broadcast,48134e6047a19a0429,48134e6047a19a0429
/uams/android/broadcast,48134e6047a19a0430,48134e6047a19a0430
/uams/android/broadcast,48134e6047a19a0431,48134e6047a19a0431
/uams/android/broadcast,48134e6047a19a0432,48134e6047a19a0432
/uams/android/broadcast,48134e6047a19a0433,48134e6047a19a0433
/uams/android/broadcast,48134e6047a19a0434,48134e6047a19a0434
/uams/android/broadcast,48134e6047a19a0435,48134e6047a19a0435
/uams/android/broadcast,48134e6047a19a0436,48134e6047a19a0436
/uams/android/broadcast,48134e6047a19a0437,48134e6047a19a0437
/uams/android/broadcast,48134e6047a19a0438,48134e6047a19a0438
/uams/android/broadcast,48134e6047a19a0439,48134e6047a19a0439
/uams/android/broadcast,48134e6047a19a0440,48134e6047a19a0440
/uams/android/broadcast,48134e6047a19a0441,48134e6047a19a0441
/uams/android/broadcast,48134e6047a19a0442,48134e6047a19a0442
/uams/android/broadcast,48134e6047a19a0443,48134e6047a19a0443
/uams/android/broadcast,48134e6047a19a0444,48134e6047a19a0444
/uams/android/broadcast,48134e6047a19a0445,48134e6047a19a0445
/uams/android/broadcast,48134e6047a19a0446,48134e6047a19a0446
/uams/android/broadcast,48134e6047a19a0447,48134e6047a19a0447
/uams/android/broadcast,48134e6047a19a0448,48134e6047a19a0448
/uams/android/broadcast,48134e6047a19a0449,48134e6047a19a0449
/uams/android/broadcast,48134e6047a19a0450,48134e6047a19a0450
/uams/android/broadcast,48134e6047a19a0451,48134e6047a19a0451
/uams/android/broadcast,48134e6047a19a0452,48134e6047a19a0452
/uams/android/broadcast,48134e6047a19a0453,48134e6047a19a0453
/uams/android/broadcast,48134e6047a19a0454,48134e6047a19a0454
/uams/android/broadcast,48134e6047a19a0455,48134e6047a19a0455
/uams/android/broadcast,48134e6047a19a0456,48134e6047a19a0456
/uams/android/broadcast,48134e6047a19a0457,48134e6047a19a0457
/uams/android/broadcast,48134e6047a19a0458,48134e6047a19a0458
/uams/android/broadcast,48134e6047a19a0459,48134e6047a19a0459
/uams/android/broadcast,48134e6047a19a0460,48134e6047a19a0460
/uams/android/broadcast,48134e6047a19a0461,48134e6047a19a0461
/uams/android/broadcast,48134e6047a19a0462,48134e6047a19a0462
/uams/android/broadcast,48134e6047a19a0463,48134e6047a19a0463
/uams/android/broadcast,48134e6047a19a0464,48134e6047a19a0464
/uams/android/broadcast,48134e6047a19a0465,48134e6047a19a0465
/uams/android/broadcast,48134e6047a19a0466,48134e6047a19a0466
/uams/android/broadcast,48134e6047a19a0467,48134e6047a19a0467
/uams/android/broadcast,48134e6047a19a0468,48134e6047a19a0468
/uams/android/broadcast,48134e6047a19a0469,48134e6047a19a0469
/uams/android/broadcast,48134e6047a19a0470,48134e6047a19a0470
/uams/android/broadcast,48134e6047a19a0471,48134e6047a19a0471
/uams/android/broadcast,48134e6047a19a0472,48134e6047a19a0472
/uams/android/broadcast,48134e6047a19a0473,48134e6047a19a0473
/uams/android/broadcast,48134e6047a19a0474,48134e6047a19a0474
/uams/android/broadcast,48134e6047a19a0475,48134e6047a19a0475
/uams/android/broadcast,48134e6047a19a0476,48134e6047a19a0476
/uams/android/broadcast,48134e6047a19a0477,48134e6047a19a0477
/uams/android/broadcast,48134e6047a19a0478,48134e6047a19a0478
/uams/android/broadcast,48134e6047a19a0479,48134e6047a19a0479
/uams/android/broadcast,48134e6047a19a0480,48134e6047a19a0480
/uams/android/broadcast,48134e6047a19a0481,48134e6047a19a0481
/uams/android/broadcast,48134e6047a19a0482,48134e6047a19a0482
/uams/android/broadcast,48134e6047a19a0483,48134e6047a19a0483
/uams/android/broadcast,48134e6047a19a0484,48134e6047a19a0484
/uams/android/broadcast,48134e6047a19a0485,48134e6047a19a0485
/uams/android/broadcast,48134e6047a19a0486,48134e6047a19a0486
/uams/android/broadcast,48134e6047a19a0487,48134e6047a19a0487
/uams/android/broadcast,48134e6047a19a0488,48134e6047a19a0488
/uams/android/broadcast,48134e6047a19a0489,48134e6047a19a0489
/uams/android/broadcast,48134e6047a19a0490,48134e6047a19a0490
/uams/android/broadcast,48134e6047a19a0491,48134e6047a19a0491
/uams/android/broadcast,48134e6047a19a0492,48134e6047a19a0492
/uams/android/broadcast,48134e6047a19a0493,48134e6047a19a0493
/uams/android/broadcast,48134e6047a19a0494,48134e6047a19a0494
/uams/android/broadcast,48134e6047a19a0495,48134e6047a19a0495
/uams/android/broadcast,48134e6047a19a0496,48134e6047a19a0496
/uams/android/broadcast,48134e6047a19a0497,48134e6047a19a0497
/uams/android/broadcast,48134e6047a19a0498,48134e6047a19a0498
/uams/android/broadcast,48134e6047a19a0499,48134e6047a19a0499
/uams/android/broadcast,48134e6047a19a0500,48134e6047a19a0500
topic,clientId,appToken,companyNumber,cnum,conferenceId,conferenceName,macAddress,ipAddress,deviceModel,networkType,battery,charging,resolution,romName,sdkVersionCode,sdkVersionName,appVersion,appVersionName,faceVersion,wgtVersion,abiList,appName,appPackageName,bluetoothEnabled,camerasCount,density,freeAndTotalMemory,internalAvailableSize,internalTotalSize,processCpuUsage,rooted,sysLanguage,sysSupportedSensors,buildConfig,faceBuildInfo
rebootResponseTopic,48134e6047a19a0001,AND-518-0001,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.141,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0002,AND-518-0002,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.142,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0003,AND-518-0003,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.143,Pad10-Pro,NETWORK_WIFI,0.6,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0004,AND-518-0004,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.144,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0005,AND-518-0005,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.145,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0006,AND-518-0006,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.146,Pad10-Pro,NETWORK_WIFI,0.9,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0007,AND-518-0007,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.147,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0008,AND-518-0008,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.148,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0009,AND-518-0009,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.149,Pad10-Pro,NETWORK_WIFI,0.5,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0010,AND-518-0010,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.150,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0011,AND-518-0011,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.151,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0012,AND-518-0012,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.152,Pad10-Pro,NETWORK_WIFI,0.8,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0013,AND-518-0013,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.153,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0014,AND-518-0014,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.154,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0015,AND-518-0015,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.155,Pad10-Pro,NETWORK_WIFI,0.4,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0016,AND-518-0016,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.156,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0017,AND-518-0017,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.157,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0018,AND-518-0018,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.158,Pad10-Pro,NETWORK_WIFI,0.7,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0019,AND-518-0019,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.159,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0020,AND-518-0020,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.160,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0021,AND-518-0021,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.161,Pad10-Pro,NETWORK_WIFI,0.3,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0022,AND-518-0022,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.162,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0023,AND-518-0023,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.163,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0024,AND-518-0024,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.164,Pad10-Pro,NETWORK_WIFI,0.6,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0025,AND-518-0025,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.165,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0026,AND-518-0026,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.166,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0027,AND-518-0027,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.167,Pad10-Pro,NETWORK_WIFI,0.9,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0028,AND-518-0028,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.168,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0029,AND-518-0029,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.169,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0030,AND-518-0030,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.170,Pad10-Pro,NETWORK_WIFI,0.5,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0031,AND-518-0031,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.171,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0032,AND-518-0032,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.172,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0033,AND-518-0033,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.173,Pad10-Pro,NETWORK_WIFI,0.8,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0034,AND-518-0034,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.174,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0035,AND-518-0035,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.175,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0036,AND-518-0036,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.176,Pad10-Pro,NETWORK_WIFI,0.4,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0037,AND-518-0037,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.177,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0038,AND-518-0038,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.178,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0039,AND-518-0039,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.179,Pad10-Pro,NETWORK_WIFI,0.7,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0040,AND-518-0040,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.180,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0041,AND-518-0041,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.181,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0042,AND-518-0042,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.182,Pad10-Pro,NETWORK_WIFI,0.3,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0043,AND-518-0043,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.183,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0044,AND-518-0044,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.184,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0045,AND-518-0045,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.185,Pad10-Pro,NETWORK_WIFI,0.6,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0046,AND-518-0046,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.186,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0047,AND-518-0047,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.187,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0048,AND-518-0048,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.188,Pad10-Pro,NETWORK_WIFI,0.9,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0049,AND-518-0049,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.189,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0050,AND-518-0050,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.190,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0051,AND-518-0051,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.191,Pad10-Pro,NETWORK_WIFI,0.5,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0052,AND-518-0052,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.192,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0053,AND-518-0053,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.193,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0054,AND-518-0054,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.194,Pad10-Pro,NETWORK_WIFI,0.8,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0055,AND-518-0055,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.195,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0056,AND-518-0056,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.196,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0057,AND-518-0057,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.197,Pad10-Pro,NETWORK_WIFI,0.4,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0058,AND-518-0058,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.198,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0059,AND-518-0059,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.199,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0060,AND-518-0060,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.200,Pad10-Pro,NETWORK_WIFI,0.7,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0061,AND-518-0061,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.201,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0062,AND-518-0062,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.202,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0063,AND-518-0063,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.203,Pad10-Pro,NETWORK_WIFI,0.3,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0064,AND-518-0064,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.204,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0065,AND-518-0065,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.205,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0066,AND-518-0066,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.206,Pad10-Pro,NETWORK_WIFI,0.6,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0067,AND-518-0067,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.207,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0068,AND-518-0068,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.208,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0069,AND-518-0069,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.209,Pad10-Pro,NETWORK_WIFI,0.9,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0070,AND-518-0070,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.210,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0071,AND-518-0071,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.211,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0072,AND-518-0072,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.212,Pad10-Pro,NETWORK_WIFI,0.5,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0073,AND-518-0073,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.213,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0074,AND-518-0074,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.214,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0075,AND-518-0075,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.215,Pad10-Pro,NETWORK_WIFI,0.8,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0076,AND-518-0076,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.216,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0077,AND-518-0077,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.217,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0078,AND-518-0078,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.218,Pad10-Pro,NETWORK_WIFI,0.4,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0079,AND-518-0079,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.219,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0080,AND-518-0080,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.220,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0081,AND-518-0081,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.221,Pad10-Pro,NETWORK_WIFI,0.7,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0082,AND-518-0082,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.222,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0083,AND-518-0083,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.223,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0084,AND-518-0084,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.224,Pad10-Pro,NETWORK_WIFI,0.3,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0085,AND-518-0085,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.225,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0086,AND-518-0086,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.226,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,31.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0087,AND-518-0087,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.227,Pad10-Pro,NETWORK_WIFI,0.6,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,32.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0088,AND-518-0088,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.228,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,33.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0089,AND-518-0089,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.229,Pad10-Pro,NETWORK_WIFI,0.8,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,34.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0090,AND-518-0090,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.230,Pad10-Pro,NETWORK_WIFI,0.9,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,20.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0091,AND-518-0091,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.231,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,21.01%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0092,AND-518-0092,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.232,Pad10-Pro,NETWORK_WIFI,0.4,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,22.02%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0093,AND-518-0093,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.233,Pad10-Pro,NETWORK_WIFI,0.5,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,23.03%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0094,AND-518-0094,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.234,Pad10-Pro,NETWORK_WIFI,0.6,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,24.04%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0095,AND-518-0095,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.235,Pad10-Pro,NETWORK_WIFI,0.7,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,25.05%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0096,AND-518-0096,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.236,Pad10-Pro,NETWORK_WIFI,0.8,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,26.06%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0097,AND-518-0097,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.237,Pad10-Pro,NETWORK_WIFI,0.9,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,27.07%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0098,AND-518-0098,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.238,Pad10-Pro,NETWORK_WIFI,0.3,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,28.08%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0099,AND-518-0099,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.239,Pad10-Pro,NETWORK_WIFI,0.4,False,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,29.09%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
rebootResponseTopic,48134e6047a19a0100,AND-518-0100,CN-518-UBAINS,0afee9b146a4abd6d2611eb87ed2099e,16,测试会议室1,20:59:20:00:28:01,192.168.1.240,Pad10-Pro,NETWORK_WIFI,0.5,True,1920x1200,yuxian,30,11,351,1.3.351,4.2.12021020201.1,0.2.134,"[""arm64-v8a"", ""armeabi-v7a"", ""armeabi""]",UBAINS,com.ubains.local.gviewer,False,1,1,698M/1957M,9793269760,11075297280,30.00%,True,en,"[""Accelerometer sensor""]","{""FLAVOR_APP_TYPE"": ""rksystem"", ""BUILD_TYPE"": ""release"", ""FLAVOR_FEATURE"": ""doorscreen"", ""DEBUG"": false, ""FLAVOR"": ""rksystemDoorscreen""}",arcfacepro4x
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -3,20 +3,20 @@
#===============================================================================
# 脚本名称:auto_clean_deleted_ubains_v3.sh
# 功能描述:已删除大文件自动清理与容器重启脚本
# 版本:V3.1
# 版本:V3.2
# 创建日期:2026-01-27
# 更新日期:2026-03-30
# 更新日期:2026-04-23
#
# 监测对象:
# 1. 进程占用的已删除大文件(>1GB)
# 1. 进程占用的已删除大文件(>100MB)
# 2. 匹配关键字: ubains-INFO-AND-ERROR
# 3. 自动清理并重启关联容器
# 4. 日志文件自动轮转(5MB轮转、保留7天)
#
# 清理策略:
# 1. 扫描所有进程的fd目录,查找deleted标记文件
# 2. 文件大小超过1GB时执行自动处理
# 3. 强制杀死占用进程
# 2. 文件大小超过100MB时执行自动处理
# 3. 优雅杀死占用进程(先SIGTERM,失败再SIGKILL)
# 4. 重启docker容器ujava2
# 5. 若进程属于特定应用,启动该应用
#
......@@ -30,7 +30,7 @@
# ================= 配置区域 =================
TARGET_KEY="ubains-INFO-AND-ERROR"
MIN_SIZE=$((1024*1024*1024)) # 1GB (单位:字节)
MIN_SIZE=$((100*1024*1024)) # 100MB (单位:字节)
LOG_FILE="/var/log/scripts/auto_clean_deleted_ubains.log"
MAX_LOG_SIZE=$((5*1024*1024)) # 5MB 日志大小限制
LOG_RETENTION_DAYS=7 # 日志保留天数
......@@ -46,6 +46,10 @@ log() {
# 日志轮转
rotate_logs() {
# 确保日志目录存在
log_dir=$(dirname "$LOG_FILE")
[ ! -d "$log_dir" ] && mkdir -p "$log_dir"
if [ -f "$LOG_FILE" ]; then
FILE_SIZE=$(stat -c%s "$LOG_FILE")
if [ "$FILE_SIZE" -ge "$MAX_LOG_SIZE" ]; then
......@@ -54,7 +58,8 @@ rotate_logs() {
log "日志文件超过 5MB,已自动轮转。"
fi
fi
find "$(dirname "$0")" -name "auto_clean_deleted_ubains.log.*" -mtime +$LOG_RETENTION_DAYS -exec rm -f {} \;
# 修复:日志清理路径与日志文件路径保持一致
find "$log_dir" -name "auto_clean_deleted_ubains.log.*" -mtime +$LOG_RETENTION_DAYS -exec rm -f {} \;
}
rotate_logs
......@@ -62,12 +67,13 @@ rotate_logs
log "==============================================="
log "开始扫描:检测 deleted 大文件并自动清理 (内核直读版)"
log "匹配关键字: $TARGET_KEY"
log "大于尺寸: 1GB"
log "大于尺寸: 100MB"
log "==============================================="
FOUND=0
FOUND=0 # 标记是否发现匹配文件
PROCESSED=0 # 标记是否处理了文件(处理才需要重启)
NEED_RESTART=0
NEED_APP_START=0 # 新增:标记是否需要启动特定应用
NEED_APP_START=0 # 标记是否需要启动特定应用
# 遍历所有进程的 fd 目录,寻找匹配关键字且标记为 deleted 的文件
for fd_path in /proc/[0-9]*/fd/*; do
......@@ -79,13 +85,20 @@ for fd_path in /proc/[0-9]*/fd/*; do
# 提取 PID 和 FD
pid=$(echo "$fd_path" | cut -d'/' -f3)
# 检查进程是否存在(避免已退出的进程)
if [ ! -d "/proc/$pid" ]; then
log "进程 $pid 已退出,跳过。"
continue
fi
fd=$(echo "$fd_path" | cut -d'/' -f5)
# 获取进程名
proc_name="unknown"
[ -f "/proc/$pid/comm" ] && proc_name=$(cat "/proc/$pid/comm")
# 获取文件大小 (字节) - 使用 stat -L 获取链接指向的实际文件状态
# 获取文件大小 (字节)
size_bytes=$(stat -L -c %s "$fd_path" 2>/dev/null || echo 0)
size_mb=$((size_bytes / 1024 / 1024))
......@@ -98,20 +111,37 @@ for fd_path in /proc/[0-9]*/fd/*; do
log "大小: $size_mb MB"
if [ "$size_bytes" -ge "$MIN_SIZE" ]; then
log "⚠ 文件超过1GB,执行自动处理。"
log "➡ 杀死进程 PID: $pid"
kill -9 "$pid" 2>/dev/null
sleep 1
NEED_RESTART=1
log "⚠ 文件超过100MB,执行自动处理。"
# 获取进程的当前工作目录,判断是否为特定应用
# 修复:在杀死进程前判断是否为特定应用(进程被杀死后无法获取cwd)
proc_cwd=$(readlink /proc/$pid/cwd 2>/dev/null)
if [ "$proc_cwd" == "$APP_PATH" ]; then
log "检测到被杀死的进程属于特定应用:$APP_PATH,将在容器重启后尝试启动。"
log "检测到进程属于特定应用:$APP_PATH,将在容器重启后尝试启动。"
NEED_APP_START=1
fi
# 修复:先尝试优雅终止(SIGTERM),失败再强制杀死(SIGKILL)
log "➡ 终止进程 PID: $pid(先发送SIGTERM)"
if kill -15 "$pid" 2>/dev/null; then
sleep 2
# 检查进程是否已终止
if [ -d "/proc/$pid" ]; then
log "➡ 进程未响应SIGTERM,发送SIGKILL强制终止"
kill -9 "$pid" 2>/dev/null
sleep 1
else
log "✔ 进程已优雅终止"
fi
else
log "➡ 发送SIGTERM失败,发送SIGKILL强制终止"
kill -9 "$pid" 2>/dev/null
sleep 1
fi
PROCESSED=1
NEED_RESTART=1
else
log "⏩ 文件不足 1GB,跳过。"
log "⏩ 文件不足 100MB,跳过。"
fi
fi
fi
......
......@@ -3,9 +3,9 @@
#===============================================================================
# 脚本名称:monitor_external_api_services_v2.sh
# 功能描述:外部API服务监测与自愈脚本
# 版本:V1.2
# 版本:V1.3
# 创建日期:2026-01-27
# 更新日期:2026-03-30
# 更新日期:2026-04-23
# 基于文档:_PRD_预定系统外部API服务监控需求文档.md (V1.1)
#
# 监测对象:
......@@ -37,39 +37,28 @@ STATE_DIR="/var/log/scripts/external_api_state"
MAX_FAILURES=3
# 定义要监控的服务及其相关信息
# 格式: "服务名:目录路径:启动脚本路径"
# 格式: "服务名:目录路径:启动脚本路径:检查方式:检查参数"
# 检查方式:
# API - 通过HTTP接口检查,参数为URL地址
# PROCESS - 通过进程检测,参数为进程名关键字
SERVICES=(
"ubains-meeting-api-1.0-SNAPSHOT.jar:/var/www/java/external-meeting-api:/var/www/java/external-meeting-api/run.sh"
"malan:/var/www/malan:/var/www/malan/run.sh"
"ubains-meeting-api-1.0-SNAPSHOT.jar:/var/www/java/external-meeting-api:/var/www/java/external-meeting-api/run.sh:API:https://127.0.0.1/exapi/system/v2/login"
"malan:/var/www/malan:/var/www/malan/run.sh:PROCESS:malan"
)
# API 检查配置
API_URL="https://127.0.0.1/exapi/system/v2/login"
# API 检查公共配置
API_DATA='{
"account": "test",
"password": "test"
}'
REQUEST_TIMEOUT=10
#===============================================================================
# 函数定义
#===============================================================================
# 获取锁函数(防止并发执行)
# 获取锁函数(防止并发执行)- 使用flock实现原子锁
acquire_lock() {
# 检查 PID 文件是否存在
if [ -f "$PID_FILE" ]; then
local old_pid
old_pid=$(cat "$PID_FILE" 2>/dev/null)
# 检查该进程是否还在运行
if [ -n "$old_pid" ] && kill -0 "$old_pid" 2>/dev/null; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - 警告: 上一次脚本执行仍在运行 (PID: $old_pid),本次跳过执行" | tee -a "$LOG_FILE"
exit 1
else
# 进程不存在,清理旧的 PID 文件
rm -f "$PID_FILE"
fi
fi
# 确保 PID 文件目录存在
local pid_dir
pid_dir=$(dirname "$PID_FILE")
......@@ -77,11 +66,21 @@ acquire_lock() {
mkdir -p "$pid_dir" 2>/dev/null || true
fi
# 写入当前进程 PID
echo $$ > "$PID_FILE"
# 使用文件描述符和flock实现原子锁
exec 200>"$PID_FILE"
if ! flock -n 200; then
local old_pid
old_pid=$(cat "$PID_FILE" 2>/dev/null)
echo "$(date '+%Y-%m-%d %H:%M:%S') - 警告: 上一次脚本执行仍在运行 (PID: $old_pid),本次跳过执行" | tee -a "$LOG_FILE"
exit 1
fi
# 写入当前进程 PID 并获取锁
echo $$ >&200
flock -s 200 # 获取共享锁,允许后续检查但防止并发写入
# 设置退出时清理 PID 文件
trap 'rm -f "$PID_FILE"; exit' EXIT INT TERM HUP
# 设置退出时清理
trap 'flock -u 200; rm -f "$PID_FILE"; exit' EXIT INT TERM HUP
}
# 日志轮转函数
......@@ -89,9 +88,10 @@ rotate_logs() {
if [ -f "$LOG_FILE" ]; then
FILE_SIZE=$(stat -c%s "$LOG_FILE" 2>/dev/null || echo 0)
if [ "$FILE_SIZE" -ge "$MAX_LOG_SIZE" ]; then
mv "$LOG_FILE" "$LOG_FILE.$(date '+%Y%m%d%H%M%S')"
touch "$LOG_FILE"
echo "$(date '+%Y-%m-%d %H:%M:%S') - 日志文件超过 5MB,已自动轮转。" | tee -a "$LOG_FILE"
local rotated_log="${LOG_FILE}.$(date '+%Y%m%d%H%M%S')"
# 使用cat和原子mv避免时序问题
cat "$LOG_FILE" > "$rotated_log" && : > "$LOG_FILE"
echo "$(date '+%Y-%m-%d %H:%M:%S') - 日志文件超过 5MB,已自动轮转至: $rotated_log" | tee -a "$LOG_FILE"
fi
fi
# 清理超过保留天数的旧日志文件
......@@ -112,51 +112,64 @@ get_service_state_file() {
echo "${STATE_DIR}/${safe_name}.state"
}
# 读取服务状态文件
read_service_state() {
local service_name="$1"
local state_file
state_file=$(get_service_state_file "$service_name")
# 安全读取状态值(避免source注入)
read_state_value() {
local state_file="$1"
local key="$2"
if [ -f "$state_file" ]; then
source "$state_file"
echo "${FAILURE_COUNT:-0}"
# 只提取指定key=value的行,防止注入
local value=$(grep "^${key}=" "$state_file" 2>/dev/null | head -1 | cut -d'=' -f2-)
echo "${value:-0}"
else
echo "0"
fi
}
# 写入服务状态文件
# 读取服务失败计数
read_service_state() {
local service_name="$1"
local state_file
state_file=$(get_service_state_file "$service_name")
read_state_value "$state_file" "FAILURE_COUNT"
}
# 写入服务状态文件(原子操作)
write_service_state() {
local service_name="$1"
local count="$2"
local state_file
state_file=$(get_service_state_file "$service_name")
local timestamp
timestamp=$(date +%s)
# 确保状态目录存在
mkdir -p "$STATE_DIR"
cat > "$state_file" << EOF
# 先写入临时文件,再原子替换,防止状态文件损坏
local tmp_file="${state_file}.tmp"
cat > "$tmp_file" << EOF
FAILURE_COUNT=$count
LAST_CHECK_TIME=$(date +%s)
LAST_CHECK_TIME=$timestamp
EOF
mv -f "$tmp_file" "$state_file"
}
# 检查服务是否正常(通过 API 请求)
is_service_healthy() {
local service_name="$1"
local api_url="$2"
# 使用 curl 发送 POST 请求
# -k: 忽略 SSL 证书检查
# -s: 静默模式
# -o /dev/null: 不输出响应体
# -w "%{http_code}": 只输出 HTTP 状态码
# --max-time 10: 设置超时时间为 10 秒
# --max-time: 设置超时时间
local http_code=$(curl -k -s -o /dev/null -w "%{http_code}" \
--location --request POST "$API_URL" \
--location --request POST "$api_url" \
--header 'Content-Type: application/json' \
--data-raw "$API_DATA" \
--max-time 10)
--max-time "$REQUEST_TIMEOUT")
if [ "$http_code" -eq 200 ]; then
return 0 # 服务正常
......@@ -166,6 +179,19 @@ is_service_healthy() {
fi
}
# 检查服务进程是否存在
is_process_running() {
local process_name="$1"
# 查找进程是否存在(排除grep本身)
local pid
pid=$(ps -ef | grep "$process_name" | grep -v grep | awk '{print $2}' | head -1)
if [ -n "$pid" ]; then
return 0 # 进程存在
else
return 1 # 进程不存在
fi
}
# 检查目录是否存在
is_directory_exists() {
local dir_path="$1"
......@@ -178,11 +204,39 @@ is_script_executable() {
[ -x "$script_path" ]
}
# 获取进程PID
get_process_pid() {
local process_name="$1"
ps -ef | grep "$process_name" | grep -v grep | awk '{print $2}' | head -1
}
# 健康检查分发函数
check_service_health() {
local service_name="$1"
local check_type="$2"
local check_param="$3"
case "$check_type" in
API)
is_service_healthy "$service_name" "$check_param"
;;
PROCESS)
is_process_running "$check_param"
;;
*)
log_message "错误: 未知的检查方式 '$check_type',服务: $service_name"
return 1
;;
esac
}
# 启动服务
start_service() {
local service_name="$1"
local dir_path="$2"
local script_path="$3"
local check_type="$4"
local check_param="$5"
log_message "尝试启动服务 '$service_name'..."
......@@ -196,21 +250,57 @@ start_service() {
return 1
fi
# 执行启动脚本
# 执行启动脚本,记录PID到pid文件
local startup_pid_file="${STATE_DIR}/${service_name}.pid"
nohup "./$(basename "$script_path")" > startup.log 2>&1 &
local pid=$!
echo "$pid" > "$startup_pid_file"
log_message "服务启动命令已执行,PID: $pid"
# 根据检查方式选择验证方法
local waited=0
local interval=5
local max_wait=300
log_message "等待服务启动并响应..."
case "$check_type" in
API)
# API 检查模式
while [ $waited -lt $max_wait ]; do
sleep $interval
waited=$((waited + interval))
# 检查进程是否还在
if ! kill -0 "$pid" 2>/dev/null; then
log_message "错误: 服务进程已退出"
return 1
fi
# 等待一段时间,让服务有足够时间启动并响应 API
log_message "等待服务启动 (300秒)..."
sleep 300
# 再次检查服务是否正常
if is_service_healthy "$service_name"; then
log_message "服务 '$service_name' 启动并验证成功。"
# 尝试检查服务健康状态
if is_service_healthy "$service_name" "$check_param"; then
log_message "服务 '$service_name' 启动并验证成功 (等待 ${waited}秒)"
return 0
else
log_message "错误: 服务 '$service_name' 启动后接口验证仍失败。"
return 1
fi
done
log_message "错误: 服务 '$service_name' 启动超时 (${max_wait}秒内未响应)"
;;
PROCESS)
# 进程检查模式
while [ $waited -lt $max_wait ]; do
sleep $interval
waited=$((waited + interval))
# 检查进程是否存在
if is_process_running "$check_param"; then
log_message "服务 '$service_name' 启动成功,进程检测正常 (等待 ${waited}秒)"
return 0
fi
done
log_message "错误: 服务 '$service_name' 启动超时 (${max_wait}秒内进程未出现)"
;;
esac
return 1
)
}
......@@ -225,18 +315,20 @@ acquire_lock
rotate_logs
# 初始化日志
log_message "=== 服务监控脚本开始执行 (API 检查模式) ==="
log_message "=== 服务监控脚本开始执行 ==="
# 遍历所有服务
for service_info in "${SERVICES[@]}"; do
# 解析服务信息
IFS=':' read -r service_name dir_path script_path <<< "$service_info"
# 解析服务信息: 服务名:目录:启动脚本:检查方式:检查参数
IFS=':' read -r service_name dir_path script_path check_type check_param <<< "$service_info"
# 去除可能的前后空格
service_name=$(echo "$service_name" | xargs)
dir_path=$(echo "$dir_path" | xargs)
script_path=$(echo "$script_path" | xargs)
check_type=$(echo "$check_type" | xargs)
check_param=$(echo "$check_param" | xargs)
log_message "检查服务: $service_name"
log_message "检查服务: $service_name (检查方式: $check_type)"
# 读取当前失败次数
failure_count=$(read_service_state "$service_name")
......@@ -249,13 +341,13 @@ for service_info in "${SERVICES[@]}"; do
fi
# 检查服务是否正常
if is_service_healthy "$service_name"; then
if check_service_health "$service_name" "$check_type" "$check_param"; then
# 检查成功,清零计数器
if [ "$failure_count" -gt 0 ]; then
write_service_state "$service_name" 0
log_message "检查成功,重置失败计数器为 0"
fi
log_message "服务 '$service_name' 运行正常 (HTTP 200)。"
log_message "服务 '$service_name' 运行正常。"
else
# 检查失败,累加计数器
failure_count=$((failure_count + 1))
......@@ -268,9 +360,13 @@ for service_info in "${SERVICES[@]}"; do
write_service_state "$service_name" 0
# 尝试启动服务
start_service "$service_name" "$dir_path" "$script_path"
if start_service "$service_name" "$dir_path" "$script_path" "$check_type" "$check_param"; then
log_message "服务 '$service_name' 启动完成"
else
log_message "错误: 服务 '$service_name' 启动失败"
fi
else
log_message "警告: 未达到启动阈值,等待下次检查确认"
log_message "警告: 未达到启动阈值($failure_count/$MAX_FAILURES),等待下次检查确认"
fi
fi
done
......
......@@ -463,7 +463,7 @@ class Mqtt:
return json.dumps({
"type":"heartbeat",
"clientId" : config['clientId'],
"appId":"com.ubains.uniplatform",
"appId":"com.ubains.local.gviewer",
"deviceId": config['deviceId']
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论