master
!Root 2022-06-11 19:09:01 +04:30
parent 8df026063e
commit 3c9abaa5de
7 changed files with 586 additions and 104 deletions

399
android/hs_err_pid8084.log Normal file
View File

@ -0,0 +1,399 @@
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7247fc38, pid=8084, tid=9460
#
# JRE version: Java(TM) SE Runtime Environment (8.0_91-b14) (build 1.8.0_91-b14)
# Java VM: Java HotSpot(TM) Client VM (25.91-b14 mixed mode windows-x86 )
# Problematic frame:
# C [native-platform-file-events.dll+0x2fc38]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x26b08400): JavaThread "File watcher server" daemon [_thread_in_native, id=9460, stack(0x28980000,0x289d0000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x33625000
Registers:
EAX=0x33612022, EBX=0x288431c0, ECX=0x33614916, EDX=0x33625000
ESP=0x289cef08, EBP=0x289cef18, ESI=0x00be8320, EDI=0x289cf308
EIP=0x7247fc38, EFLAGS=0x00010206
Top of Stack: (sp=0x289cef08)
0x289cef08: 0000001a 33614916 33625000 2022c2de
0x289cef18: 289cef28 7247cc50 33614914 289cf048
0x289cef28: 289cef54 72473fcd 33614914 7bde85d0
0x289cef38: 7251304d 289cf048 289cf048 00bb0000
0x289cef48: 289cf07c 7250a81d 00000000 289cf088
0x289cef58: 7246be09 33614914 7bde9a0c 00b90000
0x289cef68: 2ea49a50 00000070 00000000 00bb0000
0x289cef78: 00000001 2ea19c40 289cef98 00bb0000
Instructions: (pc=0x7247fc38)
0x7247fc18: 5d c3 cc cc cc cc cc cc 55 8b ec 83 ec 10 8b 45
0x7247fc28: 08 89 45 f8 8b 4d f8 83 c1 02 89 4d f4 8b 55 f8
0x7247fc38: 66 8b 02 66 89 45 fe 83 45 f8 02 66 83 7d fe 00
0x7247fc48: 75 eb 8b 4d f8 2b 4d f4 d1 f9 89 4d f0 8b 45 f0
Register to memory mapping:
EAX=0x33612022 is an unknown value
EBX={method} {0x288431c4} 'executeRunLoop0' '(Ljava/lang/Object;)V' in 'net/rubygrapefruit/platform/internal/jni/AbstractFileEventFunctions$NativeFileWatcher'
ECX=0x33614916 is an unknown value
EDX=0x33625000 is an unknown value
ESP=0x289cef08 is pointing into the stack for thread: 0x26b08400
EBP=0x289cef18 is pointing into the stack for thread: 0x26b08400
ESI=0x00be8320 is an unknown value
EDI=0x289cf308 is pointing into the stack for thread: 0x26b08400
Stack: [0x28980000,0x289d0000], sp=0x289cef08, free space=315k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [native-platform-file-events.dll+0x2fc38]
C [native-platform-file-events.dll+0x2cc50]
C [native-platform-file-events.dll+0x23fcd]
C [native-platform-file-events.dll+0x1be09]
C [native-platform-file-events.dll+0x1b631]
C [native-platform-file-events.dll+0x1aec9]
C [native-platform-file-events.dll+0x1af0d]
C [KERNELBASE.dll+0x1ef556]
C [ntdll.dll+0x770ab]
C [KERNELBASE.dll+0x13a46f]
C [native-platform-file-events.dll+0x1baf1]
C [native-platform-file-events.dll+0x32843]
C [native-platform-file-events.dll+0x321c8]
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.executeRunLoop0(Ljava/lang/Object;)V+0
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.access$100(Lnet/rubygrapefruit/platform/internal/jni/AbstractFileEventFunctions$NativeFileWatcher;Ljava/lang/Object;)V+2
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher$1.run()V+26
v ~StubRoutines::call_stub
V [jvm.dll+0x1594e5]
V [jvm.dll+0x21f0ae]
V [jvm.dll+0x15957e]
V [jvm.dll+0x159706]
V [jvm.dll+0x159777]
V [jvm.dll+0xfdeff]
V [jvm.dll+0x17c90c]
V [jvm.dll+0x17c9fa]
V [jvm.dll+0x1c10c6]
C [msvcr100.dll+0x5c556]
C [msvcr100.dll+0x5c600]
C [KERNEL32.DLL+0x16739]
C [ntdll.dll+0x68fef]
C [ntdll.dll+0x68fbd]
C 0x00000000
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.executeRunLoop0(Ljava/lang/Object;)V+0
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.access$100(Lnet/rubygrapefruit/platform/internal/jni/AbstractFileEventFunctions$NativeFileWatcher;Ljava/lang/Object;)V+2
j net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher$1.run()V+26
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x3aabc000 JavaThread "Cache worker for cache directory md-rule (C:\Users\User\.gradle\caches\7.2\md-rule)" [_thread_blocked, id=12948, stack(0x28b30000,0x28b80000)]
0x3aabd400 JavaThread "Cache worker for cache directory md-supplier (C:\Users\User\.gradle\caches\7.2\md-supplier)" [_thread_blocked, id=15380, stack(0x28aa0000,0x28af0000)]
0x3aabf800 JavaThread "Cache worker for checksums cache (C:\Users\User\Desktop\projects\alarm\android\.gradle\checksums)" [_thread_blocked, id=5356, stack(0x287f0000,0x28840000)]
0x3aab8400 JavaThread "Cache worker for file hash cache (C:\Users\User\Desktop\projects\alarm\android\.gradle\7.2\fileHashes)" [_thread_blocked, id=18508, stack(0x281b0000,0x28200000)]
0x3aabe800 JavaThread "Daemon client event forwarder" [_thread_blocked, id=14872, stack(0x28120000,0x28170000)]
0x3aab9000 JavaThread "Stdin handler" [_thread_blocked, id=10012, stack(0x27f70000,0x27fc0000)]
0x3aab9400 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:50901 to /127.0.0.1:51631" [_thread_blocked, id=7284, stack(0x27ee0000,0x27f30000)]
0x3aab8800 JavaThread "Daemon worker Thread 7" [_thread_in_native, id=6404, stack(0x27d50000,0x27da0000)]
0x3aabe000 JavaThread "Cancel handler" [_thread_blocked, id=12720, stack(0x00f30000,0x00f80000)]
0x3aabf400 JavaThread "Handler for socket connection from /127.0.0.1:50901 to /127.0.0.1:51631" [_thread_in_native, id=15244, stack(0x00ea0000,0x00ef0000)]
0x3aabb400 JavaThread "Daemon Thread 7" [_thread_blocked, id=9688, stack(0x00e10000,0x00e60000)]
0x31808c00 JavaThread "Device List Monitor" [_thread_in_native, id=4836, stack(0x32ee0000,0x32f30000)]
0x3180d000 JavaThread "JdwpProxyConnection" [_thread_in_native, id=9232, stack(0x32e50000,0x32ea0000)]
0x2f5bf800 JavaThread "Monitor" [_thread_in_native, id=13180, stack(0x32dc0000,0x32e10000)]
0x2f5c1800 JavaThread "Cache worker for Java compile cache (C:\Users\User\.gradle\caches\7.2\javaCompile)" [_thread_blocked, id=5792, stack(0x31450000,0x314a0000)]
0x29c59c00 JavaThread "Memory manager" [_thread_blocked, id=5412, stack(0x2e300000,0x2e350000)]
0x29c55c00 JavaThread "jar transforms Thread 8" [_thread_blocked, id=12104, stack(0x2dc70000,0x2dcc0000)]
0x29c55000 JavaThread "jar transforms Thread 7" [_thread_blocked, id=4908, stack(0x2dbe0000,0x2dc30000)]
0x29c58800 JavaThread "jar transforms Thread 6" [_thread_blocked, id=2120, stack(0x2db50000,0x2dba0000)]
0x26f12c00 JavaThread "jar transforms Thread 5" [_thread_blocked, id=3012, stack(0x2aa10000,0x2aa60000)]
0x26f12400 JavaThread "jar transforms Thread 4" [_thread_blocked, id=3000, stack(0x29720000,0x29770000)]
0x26f12000 JavaThread "jar transforms Thread 3" [_thread_blocked, id=5688, stack(0x29690000,0x296e0000)]
0x26f11000 JavaThread "Cache worker for file content cache (C:\Users\User\.gradle\caches\7.2\fileContent)" [_thread_blocked, id=13936, stack(0x29400000,0x29450000)]
0x26f16400 JavaThread "jar transforms Thread 2" [_thread_blocked, id=8484, stack(0x29370000,0x293c0000)]
0x26f17000 JavaThread "jar transforms" [_thread_blocked, id=9416, stack(0x291e0000,0x29230000)]
0x26f15000 JavaThread "Cache worker for execution history cache (C:\Users\User\.gradle\caches\7.2\executionHistory)" [_thread_blocked, id=11012, stack(0x28e50000,0x28ea0000)]
0x26b08c00 JavaThread "File watcher consumer" daemon [_thread_blocked, id=8940, stack(0x28a10000,0x28a60000)]
=>0x26b08400 JavaThread "File watcher server" daemon [_thread_in_native, id=9460, stack(0x28980000,0x289d0000)]
0x26b09000 JavaThread "Cache worker for file hash cache (C:\Users\User\.gradle\caches\7.2\fileHashes)" [_thread_blocked, id=1444, stack(0x28460000,0x284b0000)]
0x26b0a400 JavaThread "File lock request listener" [_thread_in_native, id=8284, stack(0x283d0000,0x28420000)]
0x26b08000 JavaThread "Cache worker for journal cache (C:\Users\User\.gradle\caches\journal-1)" [_thread_blocked, id=7300, stack(0x28340000,0x28390000)]
0x26acc000 JavaThread "Daemon periodic checks" [_thread_blocked, id=13928, stack(0x27cc0000,0x27d10000)]
0x26a87000 JavaThread "Incoming local TCP Connector on port 50901" [_thread_in_native, id=8716, stack(0x27ae0000,0x27b30000)]
0x269d6c00 JavaThread "Daemon health stats" [_thread_blocked, id=9708, stack(0x25a40000,0x25a90000)]
0x2515f800 JavaThread "Service Thread" daemon [_thread_blocked, id=4364, stack(0x25720000,0x25770000)]
0x25145000 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=11792, stack(0x25690000,0x256e0000)]
0x25144000 JavaThread "Attach Listener" daemon [_thread_blocked, id=1472, stack(0x25600000,0x25650000)]
0x25142000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=9980, stack(0x25570000,0x255c0000)]
0x2512cc00 JavaThread "Finalizer" daemon [_thread_blocked, id=14200, stack(0x253e0000,0x25430000)]
0x25116400 JavaThread "Reference Handler" daemon [_thread_blocked, id=10264, stack(0x25350000,0x253a0000)]
0x02abe400 JavaThread "main" [_thread_blocked, id=2360, stack(0x027f0000,0x02840000)]
Other Threads:
0x25111400 VMThread [stack: 0x02a40000,0x02a90000] [id=12900]
0x2517c800 WatcherThread [stack: 0x257b0000,0x25800000] [id=1800]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap:
def new generation total 157248K, used 117304K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 83% used [0x04c00000, 0x0be8e340, 0x0d480000)
from space 17472K, 0% used [0x0e590000, 0x0e590000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 332714K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 95% used [0x0f6a0000, 0x23b8a9f0, 0x23b8aa00, 0x24c00000)
Metaspace used 99027K, capacity 103562K, committed 103808K, reserved 103808K
Card table byte_map: [0x04ac0000,0x04bd0000] byte_map_base: 0x04a9a000
Polling page: 0x00fd0000
CodeCache: size=32768Kb used=13971Kb max_used=16338Kb free=18796Kb
bounds [0x02ac0000, 0x03b00000, 0x04ac0000]
total_blobs=8822 nmethods=8331 adapters=418
compilation: enabled
Compilation events (10 events):
Event: 21613.349 Thread 0x25145000 49295 org.gradle.internal.remote.internal.inet.MultiChoiceAddressSerializer::read (95 bytes)
Event: 21613.350 Thread 0x25145000 nmethod 49295 0x02da3c88 code [0x02da3e10, 0x02da41fc]
Event: 21613.350 Thread 0x25145000 49296 java.util.LinkedHashMap$LinkedValues::<init> (10 bytes)
Event: 21613.350 Thread 0x25145000 nmethod 49296 0x03110d08 code [0x03110e00, 0x03110e90]
Event: 21636.582 Thread 0x25145000 49297 com.esotericsoftware.kryo.io.Input::readUtf8 (90 bytes)
Event: 21636.583 Thread 0x25145000 nmethod 49297 0x036f8b88 code [0x036f8ca0, 0x036f8e08]
Event: 21636.589 Thread 0x25145000 49298 java.lang.String::substring (79 bytes)
Event: 21636.590 Thread 0x25145000 nmethod 49298 0x0350ee08 code [0x0350ef40, 0x0350f200]
Event: 21636.594 Thread 0x25145000 49299 org.gradle.internal.service.DefaultServiceRegistry::findProviderMethods (203 bytes)
Event: 21636.596 Thread 0x25145000 nmethod 49299 0x03056d88 code [0x03057090, 0x03057d28]
GC Heap History (10 events):
Event: 20963.090 GC heap before
{Heap before GC invocations=100 (full 11):
def new generation total 157248K, used 148332K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 99% used [0x04c00000, 0x0d450490, 0x0d480000)
from space 17472K, 50% used [0x0d480000, 0x0dd0ad78, 0x0e590000)
to space 17472K, 0% used [0x0e590000, 0x0e590000, 0x0f6a0000)
tenured generation total 349568K, used 259259K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 74% used [0x0f6a0000, 0x1f3cecb8, 0x1f3cee00, 0x24c00000)
Metaspace used 98907K, capacity 103401K, committed 103808K, reserved 103808K
Event: 20963.111 GC heap after
Heap after GC invocations=101 (full 11):
def new generation total 157248K, used 17472K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 0% used [0x04c00000, 0x04c00000, 0x0d480000)
from space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 302475K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 86% used [0x0f6a0000, 0x21e02c00, 0x21e02c00, 0x24c00000)
Metaspace used 98907K, capacity 103401K, committed 103808K, reserved 103808K
}
Event: 20964.191 GC heap before
{Heap before GC invocations=101 (full 11):
def new generation total 157248K, used 156682K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 99% used [0x04c00000, 0x0d3f2848, 0x0d480000)
from space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 304719K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 87% used [0x0f6a0000, 0x22033cb0, 0x22033e00, 0x24c00000)
Metaspace used 98916K, capacity 103416K, committed 103808K, reserved 103808K
Event: 20964.271 GC heap after
Heap after GC invocations=102 (full 11):
def new generation total 157248K, used 156682K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 99% used [0x04c00000, 0x0d3f2848, 0x0d480000)
from space 17472K, 100% used [0x0d480000, 0x0e590000, 0x0e590000)
to space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
tenured generation total 349568K, used 349568K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 100% used [0x0f6a0000, 0x24c00000, 0x24c00000, 0x24c00000)
Metaspace used 98916K, capacity 103416K, committed 103808K, reserved 103808K
}
Event: 20964.271 GC heap before
{Heap before GC invocations=102 (full 11):
def new generation total 157248K, used 156682K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 99% used [0x04c00000, 0x0d3f2848, 0x0d480000)
from space 17472K, 100% used [0x0d480000, 0x0e590000, 0x0e590000)
to space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
tenured generation total 349568K, used 349568K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 100% used [0x0f6a0000, 0x24c00000, 0x24c00000, 0x24c00000)
Metaspace used 98916K, capacity 103416K, committed 103808K, reserved 103808K
Event: 20964.932 GC heap after
Heap after GC invocations=103 (full 12):
def new generation total 157248K, used 0K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 0% used [0x04c00000, 0x04c00000, 0x0d480000)
from space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
to space 17472K, 0% used [0x0e590000, 0x0e590000, 0x0f6a0000)
tenured generation total 349568K, used 291719K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 83% used [0x0f6a0000, 0x21381d68, 0x21381e00, 0x24c00000)
Metaspace used 98916K, capacity 103416K, committed 103808K, reserved 103808K
}
Event: 20966.575 GC heap before
{Heap before GC invocations=103 (full 12):
def new generation total 157248K, used 138260K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 98% used [0x04c00000, 0x0d305330, 0x0d480000)
from space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
to space 17472K, 0% used [0x0e590000, 0x0e590000, 0x0f6a0000)
tenured generation total 349568K, used 291719K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 83% used [0x0f6a0000, 0x21381d68, 0x21381e00, 0x24c00000)
Metaspace used 98949K, capacity 103471K, committed 103808K, reserved 103808K
Event: 20966.602 GC heap after
Heap after GC invocations=104 (full 12):
def new generation total 157248K, used 17472K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 0% used [0x04c00000, 0x04c00000, 0x0d480000)
from space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 321872K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 92% used [0x0f6a0000, 0x230f41d0, 0x230f4200, 0x24c00000)
Metaspace used 98949K, capacity 103471K, committed 103808K, reserved 103808K
}
Event: 20967.821 GC heap before
{Heap before GC invocations=104 (full 12):
def new generation total 157248K, used 155308K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 98% used [0x04c00000, 0x0d29b0b0, 0x0d480000)
from space 17472K, 100% used [0x0e590000, 0x0f6a0000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 321872K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 92% used [0x0f6a0000, 0x230f41d0, 0x230f4200, 0x24c00000)
Metaspace used 98949K, capacity 103471K, committed 103808K, reserved 103808K
Event: 20968.234 GC heap after
Heap after GC invocations=105 (full 13):
def new generation total 157248K, used 0K [0x04c00000, 0x0f6a0000, 0x0f6a0000)
eden space 139776K, 0% used [0x04c00000, 0x04c00000, 0x0d480000)
from space 17472K, 0% used [0x0e590000, 0x0e590000, 0x0f6a0000)
to space 17472K, 0% used [0x0d480000, 0x0d480000, 0x0e590000)
tenured generation total 349568K, used 332714K [0x0f6a0000, 0x24c00000, 0x24c00000)
the space 349568K, 95% used [0x0f6a0000, 0x23b8a9f0, 0x23b8aa00, 0x24c00000)
Metaspace used 98949K, capacity 103471K, committed 103808K, reserved 103808K
}
Deoptimization events (0 events):
No events
Internal exceptions (10 events):
Event: 20962.413 Thread 0x31953000 Exception <a 'sun/nio/fs/WindowsException'> (0x06d918d8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.822 Thread 0x31953000 Exception <a 'sun/nio/fs/WindowsException'> (0x08ad69e8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.822 Thread 0x31953000 Exception <a 'sun/nio/fs/WindowsException'> (0x08ad7dc8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.838 Thread 0x31953000 Exception <a 'java/lang/NoSuchMethodError': <clinit>> (0x08b87cf8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 1613]
Event: 20962.849 Thread 0x34c64000 Exception <a 'sun/nio/fs/WindowsException'> (0x08db2288) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.849 Thread 0x34c64000 Exception <a 'sun/nio/fs/WindowsException'> (0x08db6118) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.849 Thread 0x34c64000 Exception <a 'sun/nio/fs/WindowsException'> (0x08db71a8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.870 Thread 0x3aabc000 Exception <a 'sun/nio/fs/WindowsException'> (0x09055920) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20962.870 Thread 0x3aabc000 Exception <a 'sun/nio/fs/WindowsException'> (0x09056170) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 709]
Event: 20963.483 Thread 0x34c67400 Exception <a 'java/lang/NoSuchMethodError': <clinit>> (0x06168fd8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u91\6644\hotspot\src\share\vm\prims\jni.cpp, line 1613]
Events (10 events):
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330d348
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330d548
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330e9c8
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330ebc8
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330f248
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330f488
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330f688
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x0330f8c8
Event: 21636.591 Thread 0x25145000 flushing nmethod 0x033298c8
Event: 21636.596 Thread 0x3aab8400 Thread added: 0x3aab8400
Dynamic libraries:
0x00600000 - 0x00633000 C:\Program Files (x86)\Java\jdk1.8.0_91\bin\java.exe
0x77980000 - 0x77b2a000 C:\Windows\SYSTEM32\ntdll.dll
0x76010000 - 0x76100000 C:\Windows\System32\KERNEL32.DLL
0x77570000 - 0x777c7000 C:\Windows\System32\KERNELBASE.dll
0x74120000 - 0x741c0000 C:\Windows\SYSTEM32\apphelp.dll
0x76f60000 - 0x76fdc000 C:\Windows\System32\ADVAPI32.dll
0x76fe0000 - 0x770a2000 C:\Windows\System32\msvcrt.dll
0x76dc0000 - 0x76e3a000 C:\Windows\System32\sechost.dll
0x76ea0000 - 0x76f5b000 C:\Windows\System32\RPCRT4.dll
0x76100000 - 0x762ac000 C:\Windows\System32\USER32.dll
0x75cb0000 - 0x75cca000 C:\Windows\System32\win32u.dll
0x76390000 - 0x763b2000 C:\Windows\System32\GDI32.dll
0x764a0000 - 0x7657f000 C:\Windows\System32\gdi32full.dll
0x757f0000 - 0x7586b000 C:\Windows\System32\msvcp_win.dll
0x770b0000 - 0x771c2000 C:\Windows\System32\ucrtbase.dll
0x74fe0000 - 0x75203000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22000.120_none_e541a94fcce8ed6d\COMCTL32.dll
0x774e0000 - 0x77505000 C:\Windows\System32\IMM32.DLL
0x72c90000 - 0x72d4f000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\msvcr100.dll
0x728c0000 - 0x72c8a000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\client\jvm.dll
0x774d0000 - 0x774d6000 C:\Windows\System32\PSAPI.DLL
0x74050000 - 0x74081000 C:\Windows\SYSTEM32\WINMM.dll
0x73a70000 - 0x73a78000 C:\Windows\SYSTEM32\WSOCK32.dll
0x749e0000 - 0x749e8000 C:\Windows\SYSTEM32\VERSION.dll
0x77450000 - 0x774b4000 C:\Windows\System32\WS2_32.dll
0x73a60000 - 0x73a6c000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\verify.dll
0x73a30000 - 0x73a51000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\java.dll
0x73440000 - 0x73453000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\zip.dll
0x76640000 - 0x76c42000 C:\Windows\System32\SHELL32.dll
0x74330000 - 0x749d2000 C:\Windows\SYSTEM32\windows.storage.dll
0x75cf0000 - 0x75f7b000 C:\Windows\System32\combase.dll
0x74240000 - 0x7432a000 C:\Windows\SYSTEM32\wintypes.dll
0x75710000 - 0x757d1000 C:\Windows\System32\SHCORE.dll
0x76340000 - 0x7638a000 C:\Windows\System32\shlwapi.dll
0x73880000 - 0x73898000 C:\Windows\SYSTEM32\profapi.dll
0x73340000 - 0x73356000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\net.dll
0x73900000 - 0x73950000 C:\Windows\system32\mswsock.dll
0x73330000 - 0x7333f000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\nio.dll
0x728a0000 - 0x728c0000 C:\Users\User\.gradle\native\e1d6ef7f7dcc3fd88c89a11ec53ec762bb8ba0a96d01ffa2cd45eb1d1d8dd5c5\windows-i386\native-platform.dll
0x72450000 - 0x72540000 C:\Users\User\.gradle\native\5664cfc778a61ccfe75a443a1ab52a65af34e5dc3c78e0209fed803814484fcb\windows-i386\native-platform-file-events.dll
0x72880000 - 0x7288a000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\management.dll
0x738d0000 - 0x738e3000 C:\Windows\SYSTEM32\CRYPTSP.dll
0x738a0000 - 0x738cf000 C:\Windows\system32\rsaenh.dll
0x74010000 - 0x7402f000 C:\Windows\SYSTEM32\USERENV.dll
0x73ff0000 - 0x74009000 C:\Windows\SYSTEM32\bcrypt.dll
0x771d0000 - 0x77234000 C:\Windows\System32\bcryptprimitives.dll
0x73b20000 - 0x73b2b000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x74ad0000 - 0x74af4000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x774c0000 - 0x774c7000 C:\Windows\System32\NSI.dll
0x73a80000 - 0x73a95000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x73ad0000 - 0x73ae7000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x72ea0000 - 0x72f4f000 C:\Windows\SYSTEM32\DNSAPI.dll
0x73460000 - 0x73468000 C:\Windows\System32\rasadhlp.dll
0x72820000 - 0x7287b000 C:\Windows\System32\fwpuclnt.dll
0x73850000 - 0x73879000 C:\Windows\SYSTEM32\ntmarta.dll
0x72800000 - 0x72820000 C:\Program Files (x86)\Java\jdk1.8.0_91\jre\bin\sunec.dll
0x72430000 - 0x72442000 C:\Windows\system32\napinsp.dll
0x72410000 - 0x72426000 C:\Windows\system32\pnrpnsp.dll
0x72400000 - 0x7240e000 C:\Windows\System32\winrnr.dll
0x723e0000 - 0x723f1000 C:\Windows\system32\wshbth.dll
0x723c0000 - 0x723d9000 C:\Windows\system32\nlansp_c.dll
0x74b00000 - 0x74cc7000 C:\Windows\SYSTEM32\dbghelp.dll
VM Arguments:
jvm_args: -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant
java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.2
java_class_path (initial): C:\Users\User\.gradle\wrapper\dists\gradle-7.2-all\260hg96vuh6ex27h9vo47iv4d\gradle-7.2\lib\gradle-launcher-7.2.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_91
CLASSPATH=C:\Users\User\Desktop\projects\alarm\android\\gradle\wrapper\gradle-wrapper.jar
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Python310\Scripts\;C:\Program Files\Python310\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\User\AppData\Local\Microsoft\WindowsApps;C:\Users\User\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\User\AppData\Roaming\npm;C:\Users\User\.dotnet\tools;D:\Android\SDK\tools;D:\Android\SDK\tools\bin;D:\Android\SDK\platform-tools
USERNAME=User
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 9, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 22000 (10.0.22000.675)
CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 158 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 16642276k(8876664k free), swap 20580320k(10525416k free)
vm_info: Java HotSpot(TM) Client VM (25.91-b14) for windows-x86 JRE (1.8.0_91-b14), built on Apr 1 2016 01:01:28 by "java_re" with MS VC++ 10.0 (VS2010)
time: Sat Jun 11 17:02:22 2022
elapsed time: 21636 seconds (0d 6h 0m 36s)

View File

@ -34,6 +34,7 @@ export const App = () => {
const [inited, setInited] = useState(false);
useEffect(() => {
console.log('==================================================');
const subscription = AppState.addEventListener('change', (appState) => {
console.log('App State = ' + appState);
// on app reopen
@ -45,13 +46,20 @@ export const App = () => {
return () => {
subscription.remove();
};
});
}, []);
useEffect(() => {
onInit();
if (inited === false) {
console.log('--------------------------------------------------');
onInit();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
useEffect(() => {
console.log('Loading Status', loading);
}, [loading]);
// on active device change => read reports and set report and set last report
useEffect(() => {
if (inited === false) {
@ -122,7 +130,8 @@ export const App = () => {
SMSs.list[i].address === _deviceList[_deviceActive].phone
) {
let _data = useSMSData(text);
if (_data.date.length !== 0) {
if (_data === undefined) continue;
if (_data && _data.date && _data.date.length !== 0) {
_reports.push(_data);
} // convert each string sms to readable data
}
@ -141,7 +150,10 @@ export const App = () => {
ToastAndroid.show('گزارش جدید دریافت و اضافه شد.', 3000);
}
}
setLoading(false);
} catch (error) {
setLoading(false);
console.error('App.js/onForground');
console.error(error);
}
@ -156,9 +168,6 @@ export const App = () => {
const onActiveDeviceChange = async () => {
try {
console.log('App.js/onActiveDeviceChange');
setLoading(true);
setReports([]);
setSelectedReport(-1);
const [_deviceList, _selectedDevice] = await Promise.all([
Storage.ListDevice(),
Storage.GetDeviceActive(),
@ -166,6 +175,10 @@ export const App = () => {
// if active device availabe fetch data fro sms
if (_selectedDevice !== -1 && _deviceList.length !== 0) {
console.log('Loading True at onActiveDeviceChange');
setLoading(true);
setReports([]);
setSelectedReport(-1);
// read SMS
const phones = _deviceList.map((item) => item.phone); // list of device's phone number
const SMSs = await useSMSRead({ phone: '' }); // if there were report SMSs
@ -176,9 +189,12 @@ export const App = () => {
for (let i = 0; i < SMSs.list.length; i++) {
const text = SMSs.list[i].body;
const phone = SMSs.list[i].address;
if (canUseSMS(text) && canUsePhone(phones, phone, selectedPhone)) {
let _data = useSMSData(text);
if (_data.date.length !== 0) {
console.log(_data);
if (_data === undefined) continue;
if (_data && _data.date && _data.date.length !== 0) {
_reports.push(_data);
} // convert each string sms to readable data
}
@ -186,9 +202,7 @@ export const App = () => {
setReports(_reports);
setSelectedReport(0); // select last report as selected report
ToastAndroid.show('گزارشات با موفقیت خوانده شدند.', 3000);
setLoading(false);
}
} else {
setLoading(false);
}
} catch (error) {
@ -225,7 +239,9 @@ export const App = () => {
if (canUseSMS(text) && canUsePhone(phones, phone, selectedPhone)) {
console.log('App.js/onAppStateActive - selectedPhone/' + phone);
let _data = useSMSData(text);
if (_data.date.length !== 0) {
console.log(_data);
if (_data === undefined) continue;
if (_data && _data.date && _data.date.length !== 0) {
_reports.push(_data);
} // convert each string sms to readable data
if (selectedPhone === undefined) {
@ -236,11 +252,10 @@ export const App = () => {
setReports(_reports);
setSelectedReport(0); // select last report as selected report
ToastAndroid.show('گزارشات با موفقیت خوانده شدند.', 3000);
setLoading(false);
}
} else {
setLoading(false);
}
setLoading(false);
} catch (error) {
setLoading(false);
console.error('App.js/onActiveDevuceChange');
@ -275,7 +290,8 @@ export const App = () => {
if (canUseSMS(text) && canUsePhone(phones, phone, selectedPhone)) {
console.log('App.js/onAppStateActive - selectedPhone/' + phone);
let _data = useSMSData(text);
if (_data.date.length !== 0) {
if (_data === undefined) continue;
if (_data && _data.date && _data.date.length !== 0) {
_reports.push(_data);
} // convert each string sms to readable data
if (selectedPhone === undefined) {

View File

@ -29,11 +29,27 @@ export const useSMSData = (text) => {
const splitBreakLines = text.split('\n');
output.day = splitBreakLines[0].trim();
if (
['شنبه', 'یکشنبه', 'دوشنبه', 'سهشنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه'].includes(
output.day.replace(' ', '')
) == false
)
return undefined;
console.log('interpreter/useSMSData with good day name');
output.date = splitBreakLines[1].trim();
output.type = splitBreakLines[2].trim();
output.copyright = splitBreakLines[splitBreakLines.length - 1].startsWith('کولر')
? ''
: splitBreakLines[splitBreakLines.length - 1].trim();
if (['خطا', 'گزارش'].includes(output.type) == false) return undefined;
console.log('interpreter/useSMSData with good type');
output.copyright =
splitBreakLines[splitBreakLines.length - 1].startsWith(' ') == false &&
splitBreakLines[splitBreakLines.length - 1].startsWith('کولر')
? ''
: splitBreakLines[splitBreakLines.length - 1].trim();
for (let i = 4; i < splitBreakLines.length; i++) {
const data = translateDataRow(splitBreakLines[i].trim());
@ -53,6 +69,8 @@ export const useSMSData = (text) => {
* @return {{status: boolean, key: string, value: string | undefined}} output
*/
const translateDataRow = (text) => {
text = text.startsWith(' ') ? text.replace(' ', '') : text;
const output = {
status: false,
key: '',

View File

@ -18,8 +18,12 @@ export const useSMSRead = ({ phone }) => {
address: phone,
};
SmsAndroid.list(JSON.stringify(filter), reject, (count, list) => {
resolve({ count, list: JSON.parse(list) });
});
try {
SmsAndroid.list(JSON.stringify(filter), reject, (count, list) => {
resolve({ count, list: JSON.parse(list) });
});
} catch (error) {
reject(error)
}
});
};

View File

@ -26,7 +26,7 @@ export const Information = () => {
useEffect(() => {
if (!reports || !reports[index]) return;
if (reports && reports[index] && reports[index].type == 'خطا') {
if (reports[index].type == 'خطا') {
// set both colors to red
setColors(['#e53935', '#e53935']);
return;
@ -35,7 +35,6 @@ export const Information = () => {
// set both colors to amber
setColors(['#ffc107', '#ffc107']);
for (let item of reports[index].data) {
console.log(item);
if (item.status == false && !item.key.startsWith('رک')) {
error[1] = true;
}
@ -67,7 +66,7 @@ export const Information = () => {
extended={true}
style={{
position: 'absolute',
bottom: 20,
bottom: 16,
right: width / 2 - 85,
backgroundColor: view ? colors[0] : colors[1],
}}

View File

@ -1,4 +1,4 @@
import React from 'react';
import React, { useEffect, useState } from 'react';
import { View } from 'react-native';
// material
import { Text, Card } from 'react-native-paper';
@ -10,17 +10,31 @@ import { useReports, useSelectedReport } from '../../provider/device.helper';
export const More = () => {
const [reports] = useReports();
const [index] = useSelectedReport();
const [empty, setEmpty] = useState(false);
useEffect(() => {
if (reports && reports[index]) {
if (
reports[index].data == 0 ||
reports[index].data.filter(
(item) =>
item.key.startsWith('رک') == false || ['دما', 'رطوبت'].includes(item.key) == false
).length == 0
)
setEmpty(true);
}
}, [index]);
const Item = ({ status, label, value }) => {
return (
<Card
style={{
width: 120,
maxHeight: 85,
maxHeight: 75,
margin: 5,
backgroundColor: status ? '#00c853' : label.startsWith('کولر') ? '#2196f3' : '#f44336',
}}>
<Card.Content style={{ justifyContent: 'center', alignItems: 'center', height: 72 }}>
<Card.Content style={{ justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ color: status ? '#424242' : '#fff' }}>{label ?? ''}</Text>
{value && value.length !== 0 ? (
<Text style={{ fontSize: 12, color: status ? '#424242' : '#fff' }}>
@ -35,58 +49,65 @@ export const More = () => {
};
return reports && reports[index] ? (
<View
style={{
flex: 1,
flexWrap: 'wrap',
flexDirection: 'row',
justifyContent: 'center',
marginTop: 12,
}}>
{reports[index].data.map((item, i) => {
if (item.key.startsWith('رک') || ['دما', 'رطوبت'].includes(item.key)) {
return <View />;
}
const value = item.value;
const label = item.key;
empty ? (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>هیچ اطلاعات محیطی برای این گزارش وجود ندارد.</Text>
<Text>برای گزارشات بیشتر بر روی دکمه "اطلاعات بیشتر" کلیک کنید.</Text>
</View>
) : (
<View
style={{
flex: 1,
flexWrap: 'wrap',
flexDirection: 'row',
justifyContent: 'center',
marginTop: 12,
}}>
{reports[index].data.map((item, i) => {
if (item.key.startsWith('رک') || ['دما', 'رطوبت'].includes(item.key)) {
return <View />;
}
const value = item.value.length == 0 ? (item.status ? 'روشن' : 'خاموش') : item.value;
const label = item.key;
if (item.status == null) {
let firstValue = false,
secondValue = false;
if (item.status == null) {
let firstValue = false,
secondValue = false;
if (item.value === '0') {
// both are off
} else if (item.value === '1') {
firstValue = true; // first one is on and second is off
} else if (value === '2') {
secondValue = true; // second on is on and first is off
} else {
// both are on
firstValue = true;
secondValue = true;
if (item.value === '0') {
// both are off
} else if (item.value === '1') {
firstValue = true; // first one is on and second is off
} else if (value === '2') {
secondValue = true; // second on is on and first is off
} else {
// both are on
firstValue = true;
secondValue = true;
}
return (
<>
<Item
key={`${i}/1`}
status={firstValue}
label={`${label} 1`}
value={firstValue ? 'روشن' : 'خاموش'}
/>
<Item
key={`${i}/2`}
status={secondValue}
label={`${label} 2`}
value={secondValue ? 'روشن' : 'خاموش'}
/>
</>
);
}
return (
<>
<Item
key={`${i}/1`}
status={firstValue}
label={`${label} 1`}
value={firstValue ? 'روشن' : 'خاموش'}
/>
<Item
key={`${i}/2`}
status={secondValue}
label={`${label} 2`}
value={secondValue ? 'روشن' : 'خاموش'}
/>
</>
);
}
return <Item key={i} status={item.status} label={label} value={value} />;
})}
</View>
return <Item key={i} status={item.status} label={label} value={value} />;
})}
</View>
)
) : (
<View style={{ padding: 20, flex: 1 }}>
<Text>

View File

@ -1,4 +1,4 @@
import React from 'react';
import React, { useEffect, useState } from 'react';
import { View, Dimensions } from 'react-native';
// material
import { Text, Card } from 'react-native-paper';
@ -10,6 +10,20 @@ const { width } = Dimensions.get('window');
export const Rack = () => {
const [reports] = useReports();
const [index] = useSelectedReport();
const [empty, setEmpty] = useState(false);
useEffect(() => {
if (reports && reports[index]) {
if (
reports[index].data.length == 0 ||
reports[index].data.filter(
(item) => item.key.startsWith('رک') || ['دما', 'رطوبت'].includes(item.key)
).length == 0
)
setEmpty(true);
else setEmpty(false);
}
}, [index]);
const Item = ({ label, value, status, styles }) => (
<Card style={{ margin: 4, backgroundColor: status ? '#ffffff' : '#f44336', ...styles }}>
@ -35,37 +49,48 @@ export const Rack = () => {
);
return reports && reports[index] ? (
<View style={{ flex: 1 }}>
<Text style={{ margin: 8 }}>محیط</Text>
<Items style={{ maxHeight: 85 }}>
<Item
styles={{ minWidth: 120, width: width / 2 - 22 }}
label="دما محیط"
value={`${reports[index].data.find((item) => item.key === 'دما').value} C`}
status={reports[index].data.find((item) => item.key === 'دما').status}
/>
<Item
styles={{ minWidth: 120, width: width / 2 - 22 }}
label="رطوبت محیط"
value={`${reports[index].data.find((item) => item.key === 'رطوبت').value}`}
status={reports[index].data.find((item) => item.key === 'رطوبت').status}
/>
</Items>
<Text style={{ margin: 8 }}>رک ها</Text>
<Items>
{reports[index].data
.filter((item) => item.key.startsWith('رک'))
.map((item, i) => (
empty ? (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>هیچ اطلاعات محیطی برای این گزارش وجود ندارد.</Text>
<Text>برای گزارشات بیشتر بر روی دکمه "اطلاعات بیشتر" کلیک کنید.</Text>
</View>
) : (
<View style={{ flex: 1 }}>
<Text style={{ margin: 8 }}>محیط</Text>
<Items style={{ maxHeight: 85 }}>
{reports[index].data.findIndex((item) => item.key === 'دما') != -1 && (
<Item
key={i}
styles={{ minWidth: width / 3 - 16, maxWidth: width / 3 - 16, maxHeight: 80 }}
label={`دما ${item.key}`}
value={`${item.value} C`}
status={item.status}
styles={{ minWidth: 120, width: width / 2 - 22 }}
label="دما محیط"
value={`${reports[index].data.find((item) => item.key === 'دما').value} C`}
status={reports[index].data.find((item) => item.key === 'دما').status}
/>
))}
</Items>
</View>
)}
{reports[index].data.findIndex((item) => item.key === 'رطوبت') != -1 && (
<Item
styles={{ minWidth: 120, width: width / 2 - 22 }}
label="رطوبت محیط"
value={`${reports[index].data.find((item) => item.key === 'رطوبت').value}`}
status={reports[index].data.find((item) => item.key === 'رطوبت').status}
/>
)}
</Items>
<Text style={{ margin: 8 }}>رک ها</Text>
<Items>
{reports[index].data
.filter((item) => item.key.startsWith('رک'))
.map((item, i) => (
<Item
key={i}
styles={{ minWidth: width / 3 - 16, maxWidth: width / 3 - 16, maxHeight: 80 }}
label={`دما ${item.key}`}
value={`${item.value} C`}
status={item.status}
/>
))}
</Items>
</View>
)
) : (
<View style={{ padding: 20, flex: 1 }}>
<Text>