View Issue Details

IDProjectCategoryView StatusLast Update
0001850SACS.ПланетаХотелка / Feature requestpublic08-01-2014 11:01
Reportervasketsov Assigned Tovasketsov  
PriorityhighSeveritymajorReproducibilityN/A
Status assignedResolutionopen 
PlatformWindowsOSVistaOS VersionUltimate
Summary0001850: Поддержка серверов мониторинга объектов (отправка своих координат и получение списка объектов)
DescriptionЧто-то типа OsmAnd или https://github.com/LimpTeaM/livegpstrack
Благо есть исходники
TagsNo tags attached.
Attached Files
SASPlanet.elf (28,165 bytes)   
EurekaLog 6.1.04

Application:
-------------------------------------------------------
  1.1 Start Date      : Thu, 14 Mar 2013 21:25:31 +0300
  1.2 Name/Description: SASPlanet.exe
  1.3 Version Number  : 13.3.14.254
  1.4 Parameters      : 
  1.5 Compilation Date: Thu, 14 Mar 2013 21:22:59 +0300
  1.6 Up Time         : 2 seconds

Exception:
---------------------------------------------------------------------------------------------------------------
  2.1 Date          : Thu, 14 Mar 2013 21:25:34 +0300
  2.2 Address       : 0084D9E1
  2.3 Module Name   : SASPlanet.exe
  2.4 Module Version: 13.3.14.254
  2.5 Type          : EAccessViolation
  2.6 Message       : Access violation at address 0084D9E1 in module 'SASPlanet.exe'. Read of address 00000000.
  2.7 ID            : 1D46
  2.8 Count         : 1
  2.9 Status        : New
  2.10 Note         : 

Computer:
-------------------------------------------------------------------------------
  5.3 Free Memory : 2549 Mb
  5.5 Free Disk   : 133,33 Gb
  5.7 Processor   : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
  5.8 Display Mode: 1920 x 1080, 32 bit
  5.9 Display DPI : 96
  5.10 Video Card : NVIDIA GeForce 9800 GTX+ (driver 9.18.13.1090 - RAM 512 MB)

Operating System:
----------------------------------------------
  6.1 Type    : Microsoft Windows 6.2 (64 bit)
  6.2 Build # : 9200
  6.3 Update  : 
  6.4 Language: Russian
  6.5 Charset : 204


Call Stack Information:
--------------------------------------------------------------------------------------------------------------------------
|Address |Module        |Unit                            |Class                      |Procedure/Method         |Line     |
--------------------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=2668; Priority=1; Class=; [Main]                                                                  |
|------------------------------------------------------------------------------------------------------------------------|
|0084D9E1|SASPlanet.exe |u_MonitoringMenuItems.pas       |                           |BuildMonitoringServicesUI|116[5]   |
|0084D9A8|SASPlanet.exe |u_MonitoringMenuItems.pas       |                           |BuildMonitoringServicesUI|111[0]   |
|008A63DE|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |BuildMonitoringUI        |3799[9]  |
|008A630C|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |BuildMonitoringUI        |3790[0]  |
|0089BA55|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |FormActivate             |1350[217]|
|771F8FC9|user32.dll    |                                |                           |SendMessageA             |         |
|771F8F88|user32.dll    |                                |                           |SendMessageA             |         |
|771EAE4D|user32.dll    |                                |                           |GetForegroundWindow      |         |
|771E8D30|user32.dll    |                                |                           |GetWindowLongW           |         |
|774DF4D0|ntdll.dll     |                                |                           |RtlLeaveCriticalSection  |         |
|771EEC53|user32.dll    |                                |                           |ShowWindow               |         |
|75784C46|KERNEL32.DLL  |                                |                           |GetCurrentDirectoryA     |         |
|771E7591|user32.dll    |                                |                           |gapfnScSendMessage       |         |
|771F6C95|user32.dll    |                                |                           |MonitorFromWindow        |         |
|008B6A5C|SASPlanet.exe |SASPlanet.dpr                   |                           |                         |1124[29] |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|                                                                                                                        |
|Running Thread: ID=1672; Priority=0; Class=TGarbageCollectorThread                                                      |
|------------------------------------------------------------------------------------------------------------------------|
|756210BD|KERNELBASE.dll|                                |                           |WaitForSingleObjectEx    |         |
|756210AF|KERNELBASE.dll|                                |                           |WaitForSingleObject      |         |
|7577090E|KERNEL32.DLL  |                                |                           |DuplicateHandle          |         |
|006FEB6D|SASPlanet.exe |u_GarbageCollectorThread.pas    |TGarbageCollectorThread    |SleepCancelable          |128[2]   |
|006FEB50|SASPlanet.exe |u_GarbageCollectorThread.pas    |TGarbageCollectorThread    |SleepCancelable          |126[0]   |
|006FEAFF|SASPlanet.exe |u_GarbageCollectorThread.pas    |TGarbageCollectorThread    |Execute                  |115[10]  |
|7562E80F|KERNELBASE.dll|                                |                           |VirtualQueryEx           |         |
|757885EB|KERNEL32.DLL  |                                |                           |GetCurrentThreadId       |         |
|7562C833|KERNELBASE.dll|                                |                           |SetEvent                 |         |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2668; Priority=1; Class=; [Main]                                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|006FE9C4|SASPlanet.exe |u_GarbageCollectorThread.pas    |TGarbageCollectorThread    |Create                   |85[14]   |
|006FE8FC|SASPlanet.exe |u_GarbageCollectorThread.pas    |TGarbageCollectorThread    |Create                   |71[0]    |
|007F55B7|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |Create                   |563[182] |
|007F4A18|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |Create                   |381[0]   |
|008B6908|SASPlanet.exe |SASPlanet.dpr                   |                           |                         |1100[5]  |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|                                                                                                                        |
|Running Thread: ID=2908; Priority=-15; Class=TThread4InterfacedThread                                                   |
|------------------------------------------------------------------------------------------------------------------------|
|007E1F4B|SASPlanet.exe |u_LastSelectionInfoSaver.pas    |TLastSelectionInfoSaver    |ProcessSave              |202[75]  |
|75786AE5|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|75786AD2|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|006D7490|SASPlanet.exe |u_BackgroundTask.pas            |TBackgroundTask            |Execute                  |127[5]   |
|0069B7B2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Execute                  |215[4]   |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2668; Priority=1; Class=; [Main]                                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|0069B7E2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |223[3]   |
|0069B7BC|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |220[0]   |
|0069B665|SASPlanet.exe |u_InterfacedThread.pas          |TInterfacedThread          |Start                    |166[6]   |
|007F6682|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |874[2]   |
|007F6660|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |872[0]   |
|0089B906|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |FormActivate             |1325[192]|
|771F8FC9|user32.dll    |                                |                           |SendMessageA             |         |
|771F8F88|user32.dll    |                                |                           |SendMessageA             |         |
|771EAE4D|user32.dll    |                                |                           |GetForegroundWindow      |         |
|771E8D30|user32.dll    |                                |                           |GetWindowLongW           |         |
|774DF4D0|ntdll.dll     |                                |                           |RtlLeaveCriticalSection  |         |
|771EEC53|user32.dll    |                                |                           |ShowWindow               |         |
|75784C46|KERNEL32.DLL  |                                |                           |GetCurrentDirectoryA     |         |
|771E7591|user32.dll    |                                |                           |gapfnScSendMessage       |         |
|771F6C95|user32.dll    |                                |                           |MonitorFromWindow        |         |
|008B6A5C|SASPlanet.exe |SASPlanet.dpr                   |                           |                         |1124[29] |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|                                                                                                                        |
|Running Thread: ID=1404; Priority=0; Class=TThread4InterfacedThread                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|75785FDA|KERNEL32.DLL  |                                |                           |InterlockedIncrement     |         |
|00549D28|SASPlanet.exe |u_InternalPerformanceCounter.pas|TInternalPerformanceCounter|FinishOperation          |104[2]   |
|0054C4D5|SASPlanet.exe |u_BaseInterfacedObjectDebug.pas |TBaseInterfacedObjectDebug |FreeInstance             |105[7]   |
|006EF4E8|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |PrepareTileMatrix        |463[33]  |
|75785F93|KERNEL32.DLL  |                                |                           |InterlockedDecrement     |         |
|75786AE5|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|75786AD2|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|006D7490|SASPlanet.exe |u_BackgroundTask.pas            |TBackgroundTask            |Execute                  |127[5]   |
|0069B7B2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Execute                  |215[4]   |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2668; Priority=1; Class=; [Main]                                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|0069B7E2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |223[3]   |
|0069B7BC|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |220[0]   |
|0069B665|SASPlanet.exe |u_InterfacedThread.pas          |TInterfacedThread          |Start                    |166[6]   |
|006EFDCA|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |666[2]   |
|006EFDB0|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |664[0]   |
|0082A18E|SASPlanet.exe |u_MapLayerBitmapMaps.pas        |TMapLayerBitmapMaps        |StartThreads             |206[2]   |
|006ED4C4|SASPlanet.exe |u_WindowLayerBasic.pas          |TWindowLayerAbstract       |OnAppStarted             |112[1]   |
|0054D78B|SASPlanet.exe |u_ListenerByEvent.pas           |TNotifyNoMmgEventListener  |Notification             |157[1]   |
|00550101|SASPlanet.exe |u_Synchronizer.pas              |TSynchronizerSRW           |EndWrite                 |813[2]   |
|005B336E|SASPlanet.exe |u_NotifierOperation.pas         |TNotifierOneOperation      |ExecuteOperation         |165[10]  |
|007F6674|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |873[1]   |
|007F6660|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |872[0]   |
|0089B906|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |FormActivate             |1325[192]|
|771F8FC9|user32.dll    |                                |                           |SendMessageA             |         |
|771F8F88|user32.dll    |                                |                           |SendMessageA             |         |
|771EAE4D|user32.dll    |                                |                           |GetForegroundWindow      |         |
|771E8D30|user32.dll    |                                |                           |GetWindowLongW           |         |
|774DF4D0|ntdll.dll     |                                |                           |RtlLeaveCriticalSection  |         |
|771EEC53|user32.dll    |                                |                           |ShowWindow               |         |
|75784C46|KERNEL32.DLL  |                                |                           |GetCurrentDirectoryA     |         |
|771E7591|user32.dll    |                                |                           |gapfnScSendMessage       |         |
|771F6C95|user32.dll    |                                |                           |MonitorFromWindow        |         |
|008B6A5C|SASPlanet.exe |SASPlanet.dpr                   |                           |                         |1124[29] |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|                                                                                                                        |
|Running Thread: ID=2708; Priority=0; Class=TThread4InterfacedThread                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|006EEDD0|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |GetTileMatrix            |287[0]   |
|006EEEC4|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |OnPrepareTileMatrix      |322[4]   |
|75786AE5|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|75786AD2|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|006D7490|SASPlanet.exe |u_BackgroundTask.pas            |TBackgroundTask            |Execute                  |127[5]   |
|0069B7B2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Execute                  |215[4]   |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2668; Priority=1; Class=; [Main]                                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|0069B7E2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |223[3]   |
|0069B7BC|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |220[0]   |
|0069B665|SASPlanet.exe |u_InterfacedThread.pas          |TInterfacedThread          |Start                    |166[6]   |
|006EFDCA|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |666[2]   |
|006EFDB0|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |664[0]   |
|0081E32E|SASPlanet.exe |u_MapLayerGrids.pas             |TMapLayerGrids             |StartThreads             |217[1]   |
|006ED4C4|SASPlanet.exe |u_WindowLayerBasic.pas          |TWindowLayerAbstract       |OnAppStarted             |112[1]   |
|0054D78B|SASPlanet.exe |u_ListenerByEvent.pas           |TNotifyNoMmgEventListener  |Notification             |157[1]   |
|00550101|SASPlanet.exe |u_Synchronizer.pas              |TSynchronizerSRW           |EndWrite                 |813[2]   |
|005B336E|SASPlanet.exe |u_NotifierOperation.pas         |TNotifierOneOperation      |ExecuteOperation         |165[10]  |
|007F6674|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |873[1]   |
|007F6660|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |872[0]   |
|0089B906|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |FormActivate             |1325[192]|
|771F8FC9|user32.dll    |                                |                           |SendMessageA             |         |
|771F8F88|user32.dll    |                                |                           |SendMessageA             |         |
|771EAE4D|user32.dll    |                                |                           |GetForegroundWindow      |         |
|771E8D30|user32.dll    |                                |                           |GetWindowLongW           |         |
|774DF4D0|ntdll.dll     |                                |                           |RtlLeaveCriticalSection  |         |
|771EEC53|user32.dll    |                                |                           |ShowWindow               |         |
|75784C46|KERNEL32.DLL  |                                |                           |GetCurrentDirectoryA     |         |
|771E7591|user32.dll    |                                |                           |gapfnScSendMessage       |         |
|771F6C95|user32.dll    |                                |                           |MonitorFromWindow        |         |
|008B6A5C|SASPlanet.exe |SASPlanet.dpr                   |                           |                         |1124[29] |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|                                                                                                                        |
|Running Thread: ID=1964; Priority=-2; Class=TThread4InterfacedThread                                                    |
|------------------------------------------------------------------------------------------------------------------------|
|006EEDD0|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |GetTileMatrix            |287[0]   |
|006EEEC4|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |OnPrepareTileMatrix      |322[4]   |
|75786AE5|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|75786AD2|KERNEL32.DLL  |                                |                           |WaitForMultipleObjects   |         |
|006D7490|SASPlanet.exe |u_BackgroundTask.pas            |TBackgroundTask            |Execute                  |127[5]   |
|0069B7B2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Execute                  |215[4]   |
|75788541|KERNEL32.DLL  |                                |                           |BaseThreadInitThunk      |         |
|------------------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2668; Priority=1; Class=; [Main]                                                                     |
|------------------------------------------------------------------------------------------------------------------------|
|0069B7E2|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |223[3]   |
|0069B7BC|SASPlanet.exe |u_InterfacedThread.pas          |TThread4InterfacedThread   |Start                    |220[0]   |
|0069B665|SASPlanet.exe |u_InterfacedThread.pas          |TInterfacedThread          |Start                    |166[6]   |
|006EFDCA|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |666[2]   |
|006EFDB0|SASPlanet.exe |u_TiledLayerWithThreadBase.pas  |TTiledLayerWithThreadBase  |StartThreads             |664[0]   |
|006F5F36|SASPlanet.exe |u_MapLayerVectorMaps.pas        |TMapLayerVectorMaps        |StartThreads             |514[1]   |
|006ED4C4|SASPlanet.exe |u_WindowLayerBasic.pas          |TWindowLayerAbstract       |OnAppStarted             |112[1]   |
|0054D78B|SASPlanet.exe |u_ListenerByEvent.pas           |TNotifyNoMmgEventListener  |Notification             |157[1]   |
|00550101|SASPlanet.exe |u_Synchronizer.pas              |TSynchronizerSRW           |EndWrite                 |813[2]   |
|005B336E|SASPlanet.exe |u_NotifierOperation.pas         |TNotifierOneOperation      |ExecuteOperation         |165[10]  |
|007F6674|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |873[1]   |
|007F6660|SASPlanet.exe |u_GlobalState.pas               |TGlobalState               |StartThreads             |872[0]   |
|0089B906|SASPlanet.exe |frm_Main.pas                    |TfrmMain                   |FormActivate             |1325[192]|
|771F8FC9|user32.dll    |                                |                           |SendMessageA             |         |
|771F8F88|user32.dll    |                                |                           |SendMessageA             |         |
|771EAE4D|user32.dll    |                                |                           |GetForegroundWindow      |         |
|771E8D30|user32.dll    |                                |                           |GetWindowLongW           |         |
|774DF4D0|ntdll.dll     |                                |                           |RtlLeaveCriticalSection  |         |
|771EEC53|user32.dll    |                                |                           |ShowWindow               |         |
|75784C46|KERNEL32.DLL  |                                |                           |GetCurrentDirectoryA     |         |
|771E7591|user32.dll    |                                |                           |gapfnScSendMessage       |         |
--------------------------------------------------------------------------------------------------------------------------

Modules Information:
--------------------

Processes Information:
----------------------

Assembler Information:
-----------------------------------------------------------------------------------------------
; u_MonitoringMenuItems.BuildMonitoringServicesUI (Line=111 - Offset=0)
; ---------------------------------------------------------------------
0084D9C5  xor     eax, eax
0084D9C7  push    ebp
0084D9C8  push    $0084DF00                                                   ; '��v���[��]�.'
0084D9CD  push    dword ptr fs:[eax]
0084D9D0  mov     fs:[eax], esp
;
; Line=112 - Offset=1
; -------------------
0084D9D3  mov     eax, [ebp-$0C]
0084D9D6  mov     edx, [eax]
0084D9D8  call    dword ptr [edx+$40]
0084D9DB  mov     [ebp-$14], eax
;
; Line=116 - Offset=5
; -------------------
0084D9DE  mov     eax, [ebp+$08]
0084D9E1  mov     edx, [eax]                                                  ; <-- EXCEPTION
0084D9E3  call    dword ptr [edx+$10]
0084D9E6  test    eax, eax
0084D9E8  jle     u_MonitoringMenuItems.BuildMonitoringServicesUI (Line=214)
;
; Line=117 - Offset=6
; -------------------
0084D9EE  mov     eax, [ebp+$08]
0084D9F1  mov     edx, [eax]
0084D9F3  call    dword ptr [edx+$10]
0084D9F6  dec     eax
0084D9F7  test    eax, eax
0084D9F9  jl      u_MonitoringMenuItems.BuildMonitoringServicesUI (Line=214)
0084D9FF  inc     eax

Registers:
-----------------------------
EAX: 00000000   EDI: 00000000
EBX: 005B3F00   ESI: 004EABC0
ECX: 0000002B   ESP: 0018EEBC
EDX: 033D11E8   EIP: 0084D9E1

Stack:               Memory Dump:
------------------   ---------------------------------------------------------------------------
0018EEBC: 0018EF58 0346DC70: 8B 10 FF 52 10 85 C0 0F 8E BC 04 00 00 8B 45 08  ...R..........E.
0018EEC0: 0040565C 0346DC80: 8B 10 FF 52 10 48 85 C0 0F 8C AB 04 00 00 40 89  ...R.H........@.
0018EEC4: 0018EF48 0346DC90: 45 C0 C7 45 F0 00 00 00 00 8D 4D E8 8B 55 F0 8B  E..E......M..U..
0018EEC8: 005B3F00 0346DCA0: 45 08 8B 18 FF 53 14 8D 55 B0 8B 45 E8 8B 08 FF  E....S..U..E....
0018EECC: 00000000 0346DCB0: 51 10 8D 55 B0 8D 4D E4 8B 45 0C 8B 18 FF 53 50  Q..U..M..E....SP
0018EED0: 00000000 0346DCC0: 8D 55 B0 8B 45 E8 8B 08 FF 51 10 8D 55 B0 8D 4D  .U..E....Q..U..M
0018EED4: 00000000 0346DCD0: E0 8B 45 0C 8B 18 FF 53 54 8B 4D FC B2 01 A1 24  ..E....ST.M....$
0018EED8: 00000000 0346DCE0: D6 84 00 E8 6B FE DD FF 89 45 DC 8B 45 DC 05 D8  ....k....E..E...
0018EEDC: 00000000 0346DCF0: 00 00 00 8B 55 E8 E8 D4 A6 BB FF 8B 45 DC 33 D2  ....U.......E.3.
0018EEE0: 00000000 0346DD00: 89 90 DC 00 00 00 8B 45 DC 33 D2 89 90 E0 00 00  .......E.3......
0018EEE4: 00000000 0346DD10: 00 8D 55 A8 8B 45 E8 8B 08 FF 51 14 8B 45 A8 8D  ..U..E....Q..E..
0018EEE8: 00000000 0346DD20: 4D AC 8B 55 EC 8B 18 FF 53 0C 8B 55 AC 8B 45 DC  M..U....S..U..E.
0018EEEC: 00000000 0346DD30: E8 FA B3 D8 FF 8B 45 E8 8B 10 FF 52 0C 8B D0 8B  ......E....R....
0018EEF0: 00000000 0346DD40: 45 DC E8 D4 B4 D8 FF 8B 45 DC 8B 55 DC 89 82 84  E.......E..U....
0018EEF4: 00000000 0346DD50: 00 00 00 C7 82 80 00 00 00 78 E0 84 00 8B 55 DC  .........x....U.
0018EEF8: 00000000 0346DD60: 8B 45 FC E8 4B 99 D8 FF 8B 4D DC B2 01 A1 88 D1  .E..K....M......



SASPlanet.elf (28,165 bytes)   
Monitoring_Scripts.rar (3,827 bytes)

Relationships

related to 0002295 assignedvasketsov Архиважная и мегаперспективная :) 

Activities

vasketsov

13-03-2013 20:31

manager   ~0010864

Общая логика мониторинга пока что такова.

В ini-шке под это дело выделяется секция
[Monitoring]
Available=1
Enabled=0
PrimaryPath=Monitoring\

Поле Available - это вообще возможность использовать. Enabled - это то, что пользователь выбрал. PrimaryPath - в этой подпапке будут лежать настройки (по умолчанию подпапка Monitoring).

Если Available (и хотя бы один сервис настроен) - в главном меню появится раздел Monitoring с некоторыми пунктами.

Позволяется одновременно работать более чем с одним сервисом мониторинга.

Теперь про папку для настроек мониторинга.

Каждая ini-шка в папке пытается трактоваться как файл настроект, само имя файла может быть произвольное. Содержимое ini-шки должно быть типа такого:

[PARAMS]
GUID={A03F4E35-EEEA-4484-8EA3-FBFE92F54395}
Caption=Локальный мониторинг
OptionsUrl=http://127.0.0.1:88/
Enabled=1
RequestUrl=http://127.0.0.1:88/s.php?{0}:{1}:{3}:{4}:{5}:{6}:{7}:{2}:{8}
Pause=10000

[ScriptControl]
Enabled=1
Filename=local_apache.txt
Language=PerlScript
Function=sas_main
InputParamNames=uid,pwd,ukey,dkey

Здесь Caption (заголовок менюшки) и OptionsUrl (необязательный адрес web-страницы с настройками сервиса) можно указывать так, как в zmp указываются параметры со значениями на нескольких языках. По GUID-у сохраняются и читаются пользовательские настройки.

RequestUrl используется для задания адреса для отправки координат и прочих параметров. Pause - пауза между отправками (в миллисекундах). Данные берутся с GPS, если приёмник включен. Если не включен - ничего не отправляется.

Секция ScriptControl традиционно используется для обозначения того, что в ней настраивается скрипт (причём Filename указывает на файл, лежащий рядом, в этой же папке). Он будет использоваться для ПОЛУЧЕНИЯ данных с сервиса. Так как для получения данных надо пройти авторизацию (ну или как минимум представиться, кто пришёл и за какими данными), а вариантов её чуть больше чем много - решено было вынести это в скрипт (в отличие от отправки координат, которая пока что просто HTTP GET, а потом поглядим). Равно как в скрипте можно хоть на вебсокетах и голубиной почтой данные получать, и все настройки там указать.

Скрипт для получения данных запускается в потоке, и должен организовать внутри себя очередь по запросу данных с сервиса, получению, обработке их и поштучной отдаче в основную программу. Если вдруг скрипт упадёт - он перезапустится в потоке, но лучше этого избегать.

Скрипту для получения данных передаются пока что 4 параметра. Это логин, пароль, и 2 произвольных ключа (хэша). Что он будет с ними делать - личное половое горе скрипта и его автора. Если надо ещё параметры - добавим ещё. Параметры (private data) сохраняются в реестре (если разрешено галочкой).

Расшифровка параметров RequestUrl (вообще говоря отправлялка просто заменяет параметры, не проверяя их наличия, например timestamp необязательный):
{0} - это lat (широта, десятичные градусы)
{1} - это lon (долгота, десятичные градусы)
{2} - это timestamp (unixtime)
{3} - это hdop
{4} - это altitude (высота, метры)
{5} - это speed (скорость, метры в секунду)
{6} - это ukey (первый ключ - пользовательский)
{7} - это dkey (второй ключ - устройства)
{8} - это picname (имя иконки)

Пока что не сделано следующее (порядок примерно соответствует приоритету работы над пунктом):
1. Запуск скрипта. Просто потому что пока нет скрипта и не на чем тренироваться.
2. Нормальный слив данных из скрипта в основную программу. Сейчас разве что можно из скрипта отправлять команды на внуренний httpd и двигать метки. Вообще говоря надо будет сделать отдельный шлюзик через внутренний протокол, и двигать не совсем метки, а родные метки не трогать. Ну а если скорость слива не устроит - будем через IDispatch пробовать.
3. Параметр {8} ни в каком виде. Он очевидно заработает только после того, как будет понятно, как пользователь будет менять свою иконку (и на что, ибо клиентом мониторинга может выступать не только сас). Пока что такого понимания нет.
4. Всё прочее по мелочи.

Пока бросаться переводить менюшки, тестить баги и т.п. не надо. Максимум что надо - трезвым взглядом со свежей головой посмотреть на это, и что-нибудь мудрое придумать, или нелогичность какую выискать, идею толкнуть. А то у меня уже в голове всё перемешалось с этим мониторингом.

vdemidov

13-03-2013 21:33

manager   ~0010865

ИМХО передача своих координат и получение данных с сервера мониторинга это две почти независимые задачи и связывать их в одно целое смысла особого нет.

vasketsov

13-03-2013 21:48

manager   ~0010866

А между ними и так связь только:
а) один пункт меню (подпункт у Monitoring) - визуально;
б) одна настройка логина, пароля,... - потому что она одна для обоих задач (фактически это настройка сервиса).

И всё. Потоки отдельные. Даже реализация отдельная. Включение-отключение независимое, настройки - тоже.
В частности, даже при отключенном GPS можно получать данные от сервисов.
А также можно сделать, чтобы на сервис только писалось. Или с него только забиралось.

zed

14-03-2013 18:27

manager   ~0010871

В инишках ничего не писал, никаких папок не создавал - при запуске AV

vasketsov

14-03-2013 21:14

manager   ~0010874

>при запуске AV
Принято и исправлено

vasketsov

22-03-2013 10:44

manager   ~0010926

Приаттачил Monitoring_Scripts.rar для игр.

Чтобы начать играться - надо:
1. Содержимое архива сложить в подпапку Monitoring.

2. Потом не забыть в сасовой ini-шке написать:
[Monitoring]
Available=1
Enabled=1
AllowSavePrivateData=1
PrimaryPath=Monitoring\

3. Потом запустить сас (начиная с завтрашней ночнушки).

4. Убедиться, что в менюшке появился пункт Monitoring.

5. Убедиться, что первые две галочки (включено и сохранение приватных данных) обе включены.

6. Зайти в подменюшку на выбор. Можно в одну из двух (в архиве настройка для двух одинаковых сервисов, отличие только в том, что это разные сервера у разных хостеров). Тот который biz - работает вроде бы побыстрее, но иногда валится по http 500. А другой помедленнее, но не валится. В вашем случае может быть по-другому. Итак, будем считать что сервис выбран. Что с ним делать - идём по адресу странички (она будет и в подменюшке, а можно и из ini её взять и открыть в чём хочется) и читаем в описании сервиса. Если коротко - там надо зарегицца, создать группу(ы), устройство(а), привязать себя и устройство(а) к группе(ам), опционально затащить в группу соседа ))). Чтобы другой сервис не мозолил глаза - можно в его инишке сделать ему Enabled=0 (в двух местах!) или вообще удалить.

7. После регистрации на сервисе идём в сас в подменюшку и жмакаем пункт для редактирования приватных данных. Там указываем логин и пароль (они нужны для аутентификации при получении данных мониторинга), а также пару ключей (пользовательский и устройства) - они будут нужны при отправке данных на сервис. Если какая-то часть не делается (например свои данные не уходят, а только надзор за устройствами в группе) - можно соответствующую часть не указывать. Если не включено сохранение этих данных - их придётся вводить при старте саса (специального запроса не будет, просто функциональность отвалится).

8. Только когда на сервисе зарегались и явки с паролями в сасе указали - только теперь запускаем GPS и включаем отправку данных на сервис (send). Убеждаемся, что на главной странице или на сранице с данными мониторинга есть запись и меняется время (то есть данные приходят на сервис).

9. Включаем получение данных. Несколько секунд придётся подождать. Но в итоге должна появиться метка, которая с небольшим опозданием начнёт бегать за маркером GPS.

10. Вся эта котовасия требуется только при первом запуске. Если включено сохранение приватных данных, если игнорируются ошибки - можно просто закрыть сас при включённом мноиторинге, при пвторном запуске всё поднимется само. По крайней мере так должно быть.


А теперь об ограничениях, и о том, что возможно придётся поправить руками.

1. Скрипты работают с инетом напрямую. Если надо через прокси - качаем доку по LWP, учим perl, и делаем какой угодно блекджек с любыми шлюхами, или вообще переписываем на другой VBScript.

2. Отправка данных мониторинга в сас из скрипта осуществляется через запрос HTTP к внутреннему HTTP-серверу. В скриптах прописан адрес 127.0.0.1:7999 (как адрес по умолчанию) - при необходимости указываем свой руками. Также при необходимости правим руками строку запроса:
my $mkr = 'http://127.0.0.1:7999/sas/ExternalMonitoring/.....

3. Покуда на сервисе не хранится никаких архивов координат, а только последняя координата - время с сервера прилетает только серверное, не клиентское. Так что отличие во времени, обусловленное неточностью часов и другой зоной, пугать не должно.

4. Поскольку я пока что не смог побороть глюк LWP при отправке нового запроса изнутри функции обратного вызова при работе из ScriptControl - скрипты настроены на запуск в невидимой консоли. Путь до интерпретатора указывается в iniшке в поле Interpreter:
Interpreter=C:\Perl\bin\perl.exe
При необходимости его надо поправить на реальный.

5. Параметры командной строки (а при запуске скрипта во внешней консоли это в реальности те самые приватные данные) передаются в интерпретатор открытым текстом. Если это опасно и страшно, то после игр что-нибудь придумаем.

6. Сервисы работаю только через HTTP. Никаких SSL.

Вообще в скриптах используется такой запуск, который должен правильно работать и из ScriptControl, и из консоли (при передаче параметров через командную строку), это сделано через runconsole специально. Если вдруг баг LWP внутри ScriptControl поборется - можно будет runconsole просто удалить.

Fetser

05-04-2013 08:29

reporter   ~0011013

1 Создал папку Monitoring и положил туда содержимое архива.
2 Дописал в ini
[Monitoring]
 Available=1
 Enabled=1
 AllowSavePrivateData=1
 PrimaryPath=Monitoring\
Запустил последнюю ночнушку и не вижу в меню пункта Monitoring :(
Может ещё что-то надо сделать?

vasketsov

05-04-2013 11:17

manager   ~0011018

>Дописал в ini
Может там уже была такая секция?
У меня всё работает.

Fetser

05-04-2013 11:23

reporter   ~0011020

>Может там уже была такая секция?
Совершенно верно - она создалась автоматически, а я не заметил и сделал ещё одну.

Всё появилось :)

vasketsov

05-01-2014 23:23

manager   ~0013495

На всякий случай напоминаю, что единственная по большому счёту причина, почему тикет ещё не закрыт, это то, что точки создаются/изменяются в базе меток, а не в своей отдельной базе мониторинга, чего хотелось бы сделать по аналогии.

Viktor

06-01-2014 14:55

reporter   ~0013497

Можно я один момент еще скажу, надеюсь стоящий, чтобы на него обратить внимание.
Ведь сейчас в САС координаты юзер имеет с GPS\Глонасс-приемника... А если всё дело для мониторинга объектов будет заточено под трекеры, то и объект на котором САС сам тоже может работать через трекер. Кроме того, есть и продвинутые трекеры, которые, например, могут цепляться за датчики авто, т.е. передавать сколь угодно много параметров в перспективе. Это я к тому, что будет ли смысл в чистом только приемнике; а также и сразу понимать спектр возможных передаваемых параметров. Кто вообще сказал, что объект мониторинга должен быть подвижным?! Это готовая и охранная система, и "умный дом", и что угодно еще... Вопрос лишь в том - что и какие параметры будет передвать. И у оператора все сигналы будут на общей карте - хоть каких объектов. Вообще, за такими вещами будущее. Это не только для контор было бы востребовано, но и для частных лиц. Такой путной системы и с хорошими картами в России мне не известно... Даже у ОВО более лажовые системы... Которые глючат так нормально...

vasketsov

08-01-2014 11:01

manager   ~0013519

>если всё дело для мониторинга объектов будет заточено под трекеры
Ситуация в реальности совершенно обратная: трекеры затачиваются под сервис настройкой того, что и куда отправлять (формированием строки запроса).
Поэтому "если всё дело" - неверно по сути, никаких "если" уже не надо. Достаточно на трекере сформировать нужную строку запроса для GET.

>передавать сколь угодно много параметров в перспективе
Совершенно не проблема, и эти параметры прилетят в сас "как есть".

>также и сразу понимать спектр возможных передаваемых параметров
Глупость, и вот почему. Добавление нового произвольного параметра должно приводить к переписыванию системы? Очевидно, что не должно. Поэтому и глупость. Так что какие там будут дополнительные произвольные параметры - совершенно неважно.

>Кто вообще сказал, что объект мониторинга должен быть подвижным?!
Хм. А что Вы хотите в САСе от таких неподвижных объектов? Сменить иконку и описание? )))))))))))))

>у оператора все сигналы будут на общей карте
И оператор и его канал становятся слабым звеном )))))
Сигналы о событиях лучше слать не в сас, это чуть более чем очевидно.

Issue History

Date Modified Username Field Change
09-03-2013 14:55 vasketsov New Issue
09-03-2013 14:55 vasketsov Assigned To => vasketsov
09-03-2013 14:55 vasketsov Status new => assigned
10-03-2013 08:58 vasketsov Summary Поддержка сервера мониторинга объектов (отправка своих координат) => Поддержка серверов мониторинга объектов (отправка своих координат и получение списка объектов)
13-03-2013 20:31 vasketsov Note Added: 0010864
13-03-2013 21:33 vdemidov Note Added: 0010865
13-03-2013 21:48 vasketsov Note Added: 0010866
14-03-2013 18:26 zed File Added: SASPlanet.elf
14-03-2013 18:27 zed Note Added: 0010871
14-03-2013 21:14 vasketsov Note Added: 0010874
22-03-2013 10:08 vasketsov File Added: Monitoring_Scripts.rar
22-03-2013 10:44 vasketsov Note Added: 0010926
05-04-2013 08:29 Fetser Note Added: 0011013
05-04-2013 11:17 vasketsov Note Added: 0011018
05-04-2013 11:23 Fetser Note Added: 0011020
05-01-2014 23:23 vasketsov Note Added: 0013495
05-01-2014 23:23 vasketsov Relationship added related to 0002295
06-01-2014 14:55 Viktor Note Added: 0013497
08-01-2014 11:01 vasketsov Note Added: 0013519
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request