Merge branch 'develop' into timo
# Conflicts: # .idea/workspace.xml # cmd/server/server.go # core/collectors.go # core/format.go # core/http.go # core/pipeline.go # go.mod
This commit is contained in:
commit
63a6db0b57
391
.idea/workspace.xml
generated
391
.idea/workspace.xml
generated
@ -1,391 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="BranchesTreeState">
|
|
||||||
<expand>
|
|
||||||
<path>
|
|
||||||
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
</path>
|
|
||||||
<path>
|
|
||||||
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
<item name="GROUP_NODE:sensor" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
</path>
|
|
||||||
</expand>
|
|
||||||
<select>
|
|
||||||
<path>
|
|
||||||
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
<item name="BRANCH:timo" type="e8cecc67:BranchNodeDescriptor" />
|
|
||||||
</path>
|
|
||||||
</select>
|
|
||||||
</component>
|
|
||||||
<component name="ChangeListManager">
|
|
||||||
<list default="true" id="99c957e4-aa42-481d-843d-3fbc901e0f79" name="Default Changelist" comment="">
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/cmd/server/server.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/server/server.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/cmd/tcp_only/tcp_only.go" beforeDir="false" afterPath="$PROJECT_DIR$/cmd/tcp_only/tcp_only.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core/collectors.go" beforeDir="false" afterPath="$PROJECT_DIR$/core/collectors.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core/dispatcher.go" beforeDir="false" afterPath="$PROJECT_DIR$/core/dispatcher.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core/format.go" beforeDir="false" afterPath="$PROJECT_DIR$/core/format.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core/http.go" beforeDir="false" afterPath="$PROJECT_DIR$/core/http.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/core/pipeline.go" beforeDir="false" afterPath="$PROJECT_DIR$/core/pipeline.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/ex_websocketMessage.json" beforeDir="false" afterPath="$PROJECT_DIR$/static/ex_websocketMessage.json" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/hyperimu.json" beforeDir="false" afterPath="$PROJECT_DIR$/static/hyperimu.json" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/static/index.html" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/ublox/decode.go" beforeDir="false" afterPath="$PROJECT_DIR$/ublox/decode.go" afterDir="false" />
|
|
||||||
</list>
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
||||||
</component>
|
|
||||||
<component name="FileTemplateManagerImpl">
|
|
||||||
<option name="RECENT_TEMPLATES">
|
|
||||||
<list>
|
|
||||||
<option value="Go Application" />
|
|
||||||
<option value="Go File" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="GOROOT" path="/usr/local/Cellar/go/1.15.5/libexec" />
|
|
||||||
<component name="Git.Settings">
|
|
||||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
|
||||||
<map>
|
|
||||||
<entry key="$PROJECT_DIR$" value="master" />
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectId" id="1jq0r5aMzeueG8kqyThltUQyqCa" />
|
|
||||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
|
||||||
<component name="ProjectViewState">
|
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
|
||||||
<option name="showLibraryContents" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PropertiesComponent">
|
|
||||||
<property name="DefaultGoTemplateProperty" value="Go File" />
|
|
||||||
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
|
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
|
||||||
<property name="configurable.Global.GOPATH.is.expanded" value="true" />
|
|
||||||
<property name="configurable.Module.GOPATH.is.expanded" value="true" />
|
|
||||||
<property name="configurable.Project.GOPATH.is.expanded" value="true" />
|
|
||||||
<property name="go.import.settings.migrated" value="true" />
|
|
||||||
<property name="go.sdk.automatically.set" value="true" />
|
|
||||||
<property name="go.tried.to.enable.integration.vgo.integrator" value="true" />
|
|
||||||
<property name="last_opened_file_path" value="$USER_HOME$" />
|
|
||||||
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
|
|
||||||
</component>
|
|
||||||
<component name="RecentsManager">
|
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
|
||||||
<recent name="$PROJECT_DIR$/static" />
|
|
||||||
<recent name="$PROJECT_DIR$/core" />
|
|
||||||
<recent name="$PROJECT_DIR$/net" />
|
|
||||||
<recent name="$PROJECT_DIR$/cmd/server" />
|
|
||||||
<recent name="$PROJECT_DIR$/serial_ubx" />
|
|
||||||
</key>
|
|
||||||
</component>
|
|
||||||
<component name="RunManager" selected="Go Build.go build git.timovolkmann.de/gyrogpsc/cmd/server">
|
|
||||||
<configuration name="go build git.timovolkmann.de/gyrogpsc/cmd/serial_only" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
|
|
||||||
<module name="gyrogpsc" />
|
|
||||||
<working_directory value="$PROJECT_DIR$" />
|
|
||||||
<kind value="PACKAGE" />
|
|
||||||
<filePath value="$PROJECT_DIR$/cmd/serial_only/serial_only.go" />
|
|
||||||
<package value="git.timovolkmann.de/gyrogpsc/cmd/serial_only" />
|
|
||||||
<directory value="$PROJECT_DIR$" />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<configuration name="go build git.timovolkmann.de/gyrogpsc/cmd/server" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
|
|
||||||
<module name="gyrogpsc" />
|
|
||||||
<working_directory value="$PROJECT_DIR$" />
|
|
||||||
<kind value="PACKAGE" />
|
|
||||||
<filePath value="$PROJECT_DIR$/cmd/server/server.go" />
|
|
||||||
<package value="git.timovolkmann.de/gyrogpsc/cmd/server" />
|
|
||||||
<directory value="$PROJECT_DIR$" />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<configuration name="go build git.timovolkmann.de/gyrogpsc/serial" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
|
|
||||||
<module name="gyrogpsc" />
|
|
||||||
<working_directory value="$PROJECT_DIR$" />
|
|
||||||
<kind value="PACKAGE" />
|
|
||||||
<filePath value="$PROJECT_DIR$/serial/serial.go" />
|
|
||||||
<package value="git.timovolkmann.de/gyrogpsc/serial" />
|
|
||||||
<directory value="$PROJECT_DIR$" />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<configuration name="go build server.go (1)" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
|
|
||||||
<module name="gyrogpsc" />
|
|
||||||
<working_directory value="$PROJECT_DIR$" />
|
|
||||||
<kind value="FILE" />
|
|
||||||
<filePath value="$PROJECT_DIR$/cmd/server/server.go" />
|
|
||||||
<directory value="$PROJECT_DIR$" />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<configuration name="go build server.go" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true">
|
|
||||||
<module name="gyrogpsc" />
|
|
||||||
<working_directory value="$PROJECT_DIR$" />
|
|
||||||
<kind value="FILE" />
|
|
||||||
<filePath value="$PROJECT_DIR$/server.go" />
|
|
||||||
<directory value="$PROJECT_DIR$" />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
<recent_temporary>
|
|
||||||
<list>
|
|
||||||
<item itemvalue="Go Build.go build git.timovolkmann.de/gyrogpsc/cmd/server" />
|
|
||||||
</list>
|
|
||||||
</recent_temporary>
|
|
||||||
</component>
|
|
||||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
|
||||||
<component name="TaskManager">
|
|
||||||
<task active="true" id="Default" summary="Default task">
|
|
||||||
<changelist id="99c957e4-aa42-481d-843d-3fbc901e0f79" name="Default Changelist" comment="" />
|
|
||||||
<created>1604516509922</created>
|
|
||||||
<option name="number" value="Default" />
|
|
||||||
<option name="presentableId" value="Default" />
|
|
||||||
<updated>1604516509922</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00001" summary="initial working version">
|
|
||||||
<created>1604747925521</created>
|
|
||||||
<option name="number" value="00001" />
|
|
||||||
<option name="presentableId" value="LOCAL-00001" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1604747925521</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00002" summary="added dispatcher.go">
|
|
||||||
<created>1604747940729</created>
|
|
||||||
<option name="number" value="00002" />
|
|
||||||
<option name="presentableId" value="LOCAL-00002" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1604747940729</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00003" summary="3d orientation visualization html/css">
|
|
||||||
<created>1604768327573</created>
|
|
||||||
<option name="number" value="00003" />
|
|
||||||
<option name="presentableId" value="LOCAL-00003" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1604768327573</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00004" summary="switched to relative sensor data (gyroscope)">
|
|
||||||
<created>1604777752387</created>
|
|
||||||
<option name="number" value="00004" />
|
|
||||||
<option name="presentableId" value="LOCAL-00004" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1604777752387</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00005" summary="changed orientation">
|
|
||||||
<created>1605444355479</created>
|
|
||||||
<option name="number" value="00005" />
|
|
||||||
<option name="presentableId" value="LOCAL-00005" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1605444355479</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00006" summary="refactored cmd & server">
|
|
||||||
<created>1606332601566</created>
|
|
||||||
<option name="number" value="00006" />
|
|
||||||
<option name="presentableId" value="LOCAL-00006" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1606332601566</updated>
|
|
||||||
</task>
|
|
||||||
<task id="LOCAL-00007" summary="refactor and implemented data pipeline">
|
|
||||||
<created>1606934501184</created>
|
|
||||||
<option name="number" value="00007" />
|
|
||||||
<option name="presentableId" value="LOCAL-00007" />
|
|
||||||
<option name="project" value="LOCAL" />
|
|
||||||
<updated>1606934501184</updated>
|
|
||||||
</task>
|
|
||||||
<option name="localTasksCounter" value="8" />
|
|
||||||
<servers />
|
|
||||||
</component>
|
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
|
||||||
<option name="version" value="3" />
|
|
||||||
</component>
|
|
||||||
<component name="Vcs.Log.Tabs.Properties">
|
|
||||||
<option name="TAB_STATES">
|
|
||||||
<map>
|
|
||||||
<entry key="MAIN">
|
|
||||||
<value>
|
|
||||||
<State>
|
|
||||||
<option name="CUSTOM_BOOLEAN_PROPERTIES">
|
|
||||||
<map>
|
|
||||||
<entry key="Show.Git.Branches" value="true" />
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
<option name="FILTERS">
|
|
||||||
<map>
|
|
||||||
<entry key="branch">
|
|
||||||
<value>
|
|
||||||
<list>
|
|
||||||
<option value="timo" />
|
|
||||||
</list>
|
|
||||||
</value>
|
|
||||||
</entry>
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
</State>
|
|
||||||
</value>
|
|
||||||
</entry>
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
<option name="oldMeFiltersMigrated" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="VcsManagerConfiguration">
|
|
||||||
<ignored-roots>
|
|
||||||
<path value="$PROJECT_DIR$/serial/SparkFun_Ublox_Arduino_Library" />
|
|
||||||
</ignored-roots>
|
|
||||||
<MESSAGE value="initial working version" />
|
|
||||||
<MESSAGE value="added dispatcher.go" />
|
|
||||||
<MESSAGE value="3d orientation visualization html/css" />
|
|
||||||
<MESSAGE value="switched to relative sensor data (gyroscope)" />
|
|
||||||
<MESSAGE value="changed orientation" />
|
|
||||||
<MESSAGE value="refactored cmd & server" />
|
|
||||||
<MESSAGE value="refactor and implemented data pipeline" />
|
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="refactor and implemented data pipeline" />
|
|
||||||
</component>
|
|
||||||
<component name="VgoProject">
|
|
||||||
<integration-enabled>true</integration-enabled>
|
|
||||||
</component>
|
|
||||||
<component name="WindowStateProjectService">
|
|
||||||
<state x="756" y="546" key="#GOROOT" timestamp="1606935753174">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state x="756" y="546" key="#GOROOT/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606935753174" />
|
|
||||||
<state x="640" y="377" key="#Go_Modules" timestamp="1604584628285">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state x="640" y="377" key="#Go_Modules/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604584628285" />
|
|
||||||
<state x="523" y="282" key="#com.intellij.openapi.keymap.impl.ui.EditKeymapsDialog" timestamp="1606822254644">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state x="523" y="282" key="#com.intellij.openapi.keymap.impl.ui.EditKeymapsDialog/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606822254644" />
|
|
||||||
<state x="603" y="247" key="#xdebugger.evaluate" timestamp="1604750409547">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state x="603" y="247" key="#xdebugger.evaluate/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750409547" />
|
|
||||||
<state width="595" height="466" key="DebuggerActiveHint" timestamp="1606953226425">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state width="595" height="466" key="DebuggerActiveHint/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606953226425" />
|
|
||||||
<state x="100" y="123" width="1480" height="827" key="DiffContextDialog" timestamp="1604517986662">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state x="100" y="123" width="1480" height="827" key="DiffContextDialog/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604517986662" />
|
|
||||||
<state x="739" y="405" key="EnvironmentVariablesDialog" timestamp="1604585759907">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state x="739" y="405" key="EnvironmentVariablesDialog/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604585759907" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.bottom" timestamp="1604750445987">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.bottom/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750445987" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.center" timestamp="1604750445987">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.center/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750445987" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.left" timestamp="1604750445987">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.left/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750445987" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.right" timestamp="1604750445987">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.-1.right/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750445987" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.bottom" timestamp="1606957947578">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.-1417.2560.1417/0.23.1680.1027@0.-1417.2560.1417" timestamp="1604948042531" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.23.1680.1027/0.-1417.2560.1417@0.-1417.2560.1417" timestamp="1604913985770" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604760252890" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.23.1680.1027@0.23.1680.1027" timestamp="1604933111805" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.23.1920.1116@0.23.1920.1116" timestamp="1605380018474" />
|
|
||||||
<state width="1878" height="406" key="GridCell.Tab.0.bottom/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606335310969" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.bottom/0.23.1920.1177@0.23.1920.1177" timestamp="1605533225921" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.bottom/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606957947578" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.center" timestamp="1606957947577">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.-1417.2560.1417/0.23.1680.1027@0.-1417.2560.1417" timestamp="1604948042530" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.23.1680.1027/0.-1417.2560.1417@0.-1417.2560.1417" timestamp="1604913985769" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604760252890" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.23.1680.1027@0.23.1680.1027" timestamp="1604933111805" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.23.1920.1116@0.23.1920.1116" timestamp="1605380018473" />
|
|
||||||
<state width="1878" height="406" key="GridCell.Tab.0.center/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606335310968" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.center/0.23.1920.1177@0.23.1920.1177" timestamp="1605533225920" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.center/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606957947577" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.left" timestamp="1606957947577">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.-1417.2560.1417/0.23.1680.1027@0.-1417.2560.1417" timestamp="1604948042530" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.23.1680.1027/0.-1417.2560.1417@0.-1417.2560.1417" timestamp="1604913985768" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604760252889" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.23.1680.1027@0.23.1680.1027" timestamp="1604933111805" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.23.1920.1116@0.23.1920.1116" timestamp="1605380018472" />
|
|
||||||
<state width="1878" height="406" key="GridCell.Tab.0.left/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606335310967" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.left/0.23.1920.1177@0.23.1920.1177" timestamp="1605533225919" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.left/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606957947577" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.right" timestamp="1606957947578">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.-1417.2560.1417/0.23.1680.1027@0.-1417.2560.1417" timestamp="1604948042531" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.23.1680.1027/0.-1417.2560.1417@0.-1417.2560.1417" timestamp="1604913985770" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604760252890" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.23.1680.1027@0.23.1680.1027" timestamp="1604933111805" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.23.1920.1116@0.23.1920.1116" timestamp="1605380018473" />
|
|
||||||
<state width="1878" height="406" key="GridCell.Tab.0.right/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606335310968" />
|
|
||||||
<state width="1638" height="273" key="GridCell.Tab.0.right/0.23.1920.1177@0.23.1920.1177" timestamp="1605533225920" />
|
|
||||||
<state width="1878" height="402" key="GridCell.Tab.0.right/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606957947578" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.bottom" timestamp="1604750442086">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.bottom/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750442086" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.center" timestamp="1604750442085">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.center/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750442085" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.left" timestamp="1604750442085">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.left/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750442085" />
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.right" timestamp="1604750442085">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="1638" height="346" key="GridCell.Tab.1.right/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750442085" />
|
|
||||||
<state x="204" y="157" width="1501" height="766" key="SettingsEditor" timestamp="1606924055987">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state x="179" y="138" width="1501" height="766" key="SettingsEditor/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604757277174" />
|
|
||||||
<state x="204" y="155" key="SettingsEditor/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1605609479939" />
|
|
||||||
<state x="204" y="157" key="SettingsEditor/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606924055987" />
|
|
||||||
<state x="560" y="351" key="Vcs.Push.Dialog.v2" timestamp="1606332623194">
|
|
||||||
<screen x="0" y="23" width="1920" height="1177" />
|
|
||||||
</state>
|
|
||||||
<state x="560" y="351" key="Vcs.Push.Dialog.v2/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606332623194" />
|
|
||||||
<state width="840" height="513" key="XDebugger.FullValuePopup" timestamp="1604750505120">
|
|
||||||
<screen x="0" y="23" width="1680" height="1027" />
|
|
||||||
</state>
|
|
||||||
<state width="840" height="513" key="XDebugger.FullValuePopup/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604750505120" />
|
|
||||||
<state x="661" y="245" width="597" height="735" key="find.popup" timestamp="1606955246024">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state x="661" y="245" width="597" height="735" key="find.popup/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606955246024" />
|
|
||||||
<state x="694" y="331" key="git4idea.branch.GitSmartOperationDialog" timestamp="1606335339469">
|
|
||||||
<screen x="0" y="23" width="1920" height="1177" />
|
|
||||||
</state>
|
|
||||||
<state x="694" y="331" key="git4idea.branch.GitSmartOperationDialog/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1606335339469" />
|
|
||||||
<state x="577" y="285" width="766" height="774" key="search.everywhere.popup" timestamp="1606957420261">
|
|
||||||
<screen x="0" y="25" width="1920" height="1175" />
|
|
||||||
</state>
|
|
||||||
<state x="505" y="250" width="670" height="676" key="search.everywhere.popup/0.23.1680.1027/0.-1417.2560.1417@0.23.1680.1027" timestamp="1604757918385" />
|
|
||||||
<state x="577" y="285" width="766" height="774" key="search.everywhere.popup/0.25.1920.1175/0.-1415.2560.1415@0.25.1920.1175" timestamp="1606957420261" />
|
|
||||||
<state x="596" y="393" key="vcs.readOnlyHandler.ReadOnlyStatusDialog" timestamp="1605566567276">
|
|
||||||
<screen x="0" y="23" width="1920" height="1177" />
|
|
||||||
</state>
|
|
||||||
<state x="596" y="393" key="vcs.readOnlyHandler.ReadOnlyStatusDialog/0.23.1920.1177/0.-1417.2560.1417@0.23.1920.1177" timestamp="1605566567276" />
|
|
||||||
</component>
|
|
||||||
<component name="XDebuggerManager">
|
|
||||||
<watches-manager>
|
|
||||||
<configuration name="GoApplicationRunConfiguration">
|
|
||||||
<watch expression="*(*"<-chan time.Time")(824634171712)" />
|
|
||||||
</configuration>
|
|
||||||
</watches-manager>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@ -15,9 +15,8 @@ func main() {
|
|||||||
log.Println("setup dispatcher")
|
log.Println("setup dispatcher")
|
||||||
dispatcher := core.NewDispatcher()
|
dispatcher := core.NewDispatcher()
|
||||||
log.Println("initialize processing pipeline")
|
log.Println("initialize processing pipeline")
|
||||||
processor := core.NewPipeline(dispatcher, 50, 1000)
|
processor := core.NewPipeline(dispatcher, 50, 494)
|
||||||
processor.Run()
|
processor.Run()
|
||||||
log.Println("start data collectors")
|
|
||||||
collectRoutines(processor)
|
collectRoutines(processor)
|
||||||
log.Println("start http server")
|
log.Println("start http server")
|
||||||
core.HttpListenAndServe(dispatcher, HTTP_PORT)
|
core.HttpListenAndServe(dispatcher, HTTP_PORT)
|
||||||
|
|||||||
@ -2,14 +2,17 @@ package core
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.timovolkmann.de/gyrogpsc/ublox"
|
|
||||||
"go.bug.st/serial"
|
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"git.timovolkmann.de/gyrogpsc/ublox"
|
||||||
|
"go.bug.st/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TcpCollector(proc Processor, tcpPort string) {
|
func TcpCollector(proc Processor, tcpPort string) {
|
||||||
|
log.Println("start tcp collectors")
|
||||||
|
|
||||||
listener, err := net.Listen("tcp", tcpPort)
|
listener, err := net.Listen("tcp", tcpPort)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error listening:", err.Error())
|
fmt.Println("Error listening:", err.Error())
|
||||||
@ -25,6 +28,8 @@ func TcpCollector(proc Processor, tcpPort string) {
|
|||||||
fmt.Println("Error accepting: ", err.Error())
|
fmt.Println("Error accepting: ", err.Error())
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
log.Println("...new incoming tcp connection...")
|
||||||
|
|
||||||
// Handle connections in a new goroutine.
|
// Handle connections in a new goroutine.
|
||||||
go jsonHandler(conn, proc)
|
go jsonHandler(conn, proc)
|
||||||
}
|
}
|
||||||
@ -32,6 +37,7 @@ func TcpCollector(proc Processor, tcpPort string) {
|
|||||||
|
|
||||||
// handles incoming tcp connections with json payload.
|
// handles incoming tcp connections with json payload.
|
||||||
func jsonHandler(conn net.Conn, proc Processor) {
|
func jsonHandler(conn net.Conn, proc Processor) {
|
||||||
|
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
|
||||||
// TRY reader := bufio.NewReader(conn) OR NewScanner(conn)
|
// TRY reader := bufio.NewReader(conn) OR NewScanner(conn)
|
||||||
@ -45,7 +51,7 @@ func jsonHandler(conn net.Conn, proc Processor) {
|
|||||||
}
|
}
|
||||||
//json := pretty.Pretty(buf[:n])
|
//json := pretty.Pretty(buf[:n])
|
||||||
//fmt.Println(string(json))
|
//fmt.Println(string(json))
|
||||||
fmt.Println(string(buf[:n]))
|
//fmt.Println(string(buf[:n]))
|
||||||
sd, err := ConvertSensorDataPhone(buf[:n])
|
sd, err := ConvertSensorDataPhone(buf[:n])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@ -61,6 +67,7 @@ func jsonHandler(conn net.Conn, proc Processor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func SerialCollector(proc Processor, serialPort string) {
|
func SerialCollector(proc Processor, serialPort string) {
|
||||||
|
log.Println("start serial collectors")
|
||||||
mode := &serial.Mode{
|
mode := &serial.Mode{
|
||||||
BaudRate: 115200,
|
BaudRate: 115200,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,9 @@ package core
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"git.timovolkmann.de/gyrogpsc/ublox"
|
"git.timovolkmann.de/gyrogpsc/ublox"
|
||||||
|
"github.com/tidwall/gjson"
|
||||||
"log"
|
"log"
|
||||||
|
"math"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/m7shapan/njson"
|
"github.com/m7shapan/njson"
|
||||||
@ -70,6 +72,23 @@ func (s Sensordata) Consolidate(n Sensordata) Sensordata {
|
|||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s Sensordata) Consolidate2(n Sensordata) Sensordata {
|
||||||
|
null := Sensordata{}
|
||||||
|
//if s.Timestamp == null.Timestamp { s.Timestamp = n.Timestamp }
|
||||||
|
//if s.Position == null.Position { s.Position = n.Position }
|
||||||
|
//if s.Orientation == null.Orientation { s.Orientation = n.Orientation }
|
||||||
|
//if n.Timestamp == null.Timestamp {
|
||||||
|
// n.Timestamp = s.Timestamp
|
||||||
|
//}
|
||||||
|
if n.Position == null.Position {
|
||||||
|
n.Position = s.Position
|
||||||
|
}
|
||||||
|
if n.Orientation == null.Orientation{
|
||||||
|
n.Orientation = s.Orientation
|
||||||
|
}
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
errNotImplemented = errors.New("message not implemented")
|
errNotImplemented = errors.New("message not implemented")
|
||||||
errRawMessage = errors.New("raw message")
|
errRawMessage = errors.New("raw message")
|
||||||
@ -84,22 +103,22 @@ func ConvertUbxToSensorData(msg interface{}) (*Sensordata, error) {
|
|||||||
//log.Println("NAV-PVT")
|
//log.Println("NAV-PVT")
|
||||||
sd.itow = v.ITOW_ms
|
sd.itow = v.ITOW_ms
|
||||||
sd.Timestamp = time.Date(int(v.Year_y), time.Month(v.Month_month), int(v.Day_d), int(v.Hour_h), int(v.Min_min), int(v.Sec_s), int(v.Nano_ns), time.UTC).UnixNano()
|
sd.Timestamp = time.Date(int(v.Year_y), time.Month(v.Month_month), int(v.Day_d), int(v.Hour_h), int(v.Min_min), int(v.Sec_s), int(v.Nano_ns), time.UTC).UnixNano()
|
||||||
sd.Position[0] = float64(v.Lat_dege7)
|
sd.Position[0] = float64(v.Lat_dege7) / 1e+7
|
||||||
sd.Position[1] = float64(v.Lon_dege7)
|
sd.Position[1] = float64(v.Lon_dege7) / 1e+7
|
||||||
sd.Position[2] = float64(v.Height_mm)
|
sd.Position[2] = float64(v.HMSL_mm) / 1e+3 // mm in m
|
||||||
case *ublox.HnrPvt:
|
case *ublox.HnrPvt:
|
||||||
//log.Println("HNR-PVT")
|
//log.Println("HNR-PVT")
|
||||||
sd.itow = v.ITOW_ms
|
sd.itow = v.ITOW_ms
|
||||||
sd.Timestamp = time.Date(int(v.Year_y), time.Month(v.Month_month), int(v.Day_d), int(v.Hour_h), int(v.Min_min), int(v.Sec_s), int(v.Nano_ns), time.UTC).UnixNano()
|
sd.Timestamp = time.Date(int(v.Year_y), time.Month(v.Month_month), int(v.Day_d), int(v.Hour_h), int(v.Min_min), int(v.Sec_s), int(v.Nano_ns), time.UTC).UnixNano()
|
||||||
sd.Position[0] = float64(v.Lat_dege7)
|
sd.Position[0] = float64(v.Lat_dege7) / 1e+7
|
||||||
sd.Position[1] = float64(v.Lon_dege7)
|
sd.Position[1] = float64(v.Lon_dege7) / 1e+7
|
||||||
sd.Position[2] = float64(v.Height_mm)
|
sd.Position[2] = float64(v.HMSL_mm) / 1e+3 // mm in m
|
||||||
case *ublox.NavAtt:
|
case *ublox.NavAtt:
|
||||||
//log.Println("NAV-ATT")
|
//log.Println("NAV-ATT")
|
||||||
sd.itow = v.ITOW_ms
|
sd.itow = v.ITOW_ms
|
||||||
sd.Orientation[0] = float64(v.Pitch_deg)
|
sd.Orientation[0] = float64(v.Pitch_deg) * 1e-5
|
||||||
sd.Orientation[1] = float64(v.Roll_deg)
|
sd.Orientation[1] = float64(v.Roll_deg) * 1e-5
|
||||||
sd.Orientation[2] = float64(v.Heading_deg)
|
sd.Orientation[2] = float64(v.Heading_deg) * 1e-5
|
||||||
case *ublox.RawMessage:
|
case *ublox.RawMessage:
|
||||||
//class := make([]byte, 2)
|
//class := make([]byte, 2)
|
||||||
//binary.LittleEndian.PutUint16(class, v.ClassID())
|
//binary.LittleEndian.PutUint16(class, v.ClassID())
|
||||||
@ -112,9 +131,33 @@ func ConvertUbxToSensorData(msg interface{}) (*Sensordata, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ConvertSensorDataPhone(jsonData []byte) (*Sensordata, error) {
|
func ConvertSensorDataPhone(jsonData []byte) (*Sensordata, error) {
|
||||||
return convertAndroidHyperImu(jsonData)
|
if gjson.Get(string(jsonData), "os").String() == "hyperimu" {
|
||||||
|
return convertAndroidHyperImu(jsonData)
|
||||||
|
}
|
||||||
|
return convertIPhoneSensorLog(jsonData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func convertIPhoneSensorLog(jsonData []byte) (*Sensordata, error) {
|
||||||
|
timestamp := gjson.Get(string(jsonData), "locationTimestamp_since1970").Float()
|
||||||
|
lat := gjson.Get(string(jsonData), "locationLatitude").Float()
|
||||||
|
lon := gjson.Get(string(jsonData), "locationLongitude").Float()
|
||||||
|
alt := gjson.Get(string(jsonData), "locationAltitude").Float()
|
||||||
|
pitch := gjson.Get(string(jsonData), "motionPitch").Float() * 180 / math.Pi
|
||||||
|
roll := gjson.Get(string(jsonData), "motionRoll").Float() * 180 / math.Pi
|
||||||
|
yaw := gjson.Get(string(jsonData), "motionYaw").Float() * 180 / math.Pi
|
||||||
|
sd := &Sensordata{
|
||||||
|
SourceId: SOURCE_TCP,
|
||||||
|
Timestamp: int64(timestamp * float64(time.Second)),
|
||||||
|
//Timestamp: time.Unix(0, prep.Timestamp * int64(time.Millisecond)),
|
||||||
|
Position: [3]float64{lat, lon, alt},
|
||||||
|
Orientation: [3]float64{pitch, roll, yaw},
|
||||||
|
}
|
||||||
|
//log.Println(string(pretty.Pretty(jsonData)))
|
||||||
|
//log.Println(sd)
|
||||||
|
return sd, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
func convertAndroidHyperImu(jsonData []byte) (*Sensordata, error) {
|
func convertAndroidHyperImu(jsonData []byte) (*Sensordata, error) {
|
||||||
prep := struct {
|
prep := struct {
|
||||||
Timestamp int64 `njson:"Timestamp"`
|
Timestamp int64 `njson:"Timestamp"`
|
||||||
|
|||||||
@ -30,7 +30,7 @@ func echo(sub Subscriber) func(w http.ResponseWriter, r *http.Request) {
|
|||||||
dispatcherId, channel := sub.Subscribe()
|
dispatcherId, channel := sub.Subscribe()
|
||||||
defer sub.Unsubscribe(dispatcherId)
|
defer sub.Unsubscribe(dispatcherId)
|
||||||
for {
|
for {
|
||||||
log.Println("")
|
//log.Println("")
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
// log.Println("read:", err)
|
// log.Println("read:", err)
|
||||||
// break
|
// break
|
||||||
|
|||||||
101
core/pipeline.go
101
core/pipeline.go
@ -3,6 +3,7 @@ package core
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -15,16 +16,16 @@ type Processor interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type pipeline struct {
|
type pipeline struct {
|
||||||
synchronizer
|
syn synchronizer
|
||||||
aggregator
|
agr aggregator
|
||||||
Publisher
|
pub Publisher
|
||||||
publishTicker *time.Ticker
|
publishTicker *time.Ticker
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPipeline(d Publisher, publishIntervalMs int, delayUpdateIntervalMs int) *pipeline {
|
func NewPipeline(d Publisher, publishIntervalMs int, delayUpdateIntervalMs int) *pipeline {
|
||||||
return &pipeline{
|
return &pipeline{
|
||||||
synchronizer{
|
synchronizer{
|
||||||
bufferSize: 100,
|
//bufferSize: 100,
|
||||||
mutex: &sync.Mutex{},
|
mutex: &sync.Mutex{},
|
||||||
updateTicker: time.NewTicker(time.Duration(delayUpdateIntervalMs) * time.Millisecond),
|
updateTicker: time.NewTicker(time.Duration(delayUpdateIntervalMs) * time.Millisecond),
|
||||||
},
|
},
|
||||||
@ -38,12 +39,12 @@ func NewPipeline(d Publisher, publishIntervalMs int, delayUpdateIntervalMs int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *pipeline) Run() {
|
func (p *pipeline) Run() {
|
||||||
go p.schedule()
|
go p.scheduleSynchronizer()
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
<-p.publishTicker.C
|
<-p.publishTicker.C
|
||||||
err := p.Publish()
|
err := p.Publish()
|
||||||
if err != nil /*&& err.Error() != "no data available"*/ {
|
if err != nil && err.Error() != "no data available" {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,30 +53,30 @@ func (p *pipeline) Run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *pipeline) Publish() error {
|
func (p *pipeline) Publish() error {
|
||||||
p.tcpMutex.Lock()
|
p.agr.tcpMutex.Lock()
|
||||||
p.serialMutex.Lock()
|
p.agr.serialMutex.Lock()
|
||||||
//log.Println(p.tcpSensorData)
|
//log.Println(pub.tcpSensorData)
|
||||||
//log.Println(p.serialSensorData)
|
//log.Println(pub.serialSensorData)
|
||||||
if (p.tcpSensorData == Sensordata{} && p.serialSensorData == Sensordata{}) {
|
if (p.agr.tcpSensorData == Sensordata{} && p.agr.serialSensorData == Sensordata{}) {
|
||||||
p.tcpMutex.Unlock()
|
p.agr.tcpMutex.Unlock()
|
||||||
p.serialMutex.Unlock()
|
p.agr.serialMutex.Unlock()
|
||||||
return errors.New("no data available")
|
return errors.New("no data available")
|
||||||
}
|
}
|
||||||
data := map[string]Sensordata{
|
data := map[string]Sensordata{
|
||||||
string(SOURCE_TCP): p.tcpSensorData,
|
string(SOURCE_TCP): p.agr.tcpSensorData,
|
||||||
string(SOURCE_SERIAL): p.serialSensorData,
|
string(SOURCE_SERIAL): p.agr.serialSensorData,
|
||||||
}
|
}
|
||||||
p.tcpSensorData = Sensordata{}
|
//p.agr.tcpSensorData = Sensordata{}
|
||||||
p.serialSensorData = Sensordata{}
|
//p.agr.serialSensorData = Sensordata{}
|
||||||
p.tcpMutex.Unlock()
|
p.agr.tcpMutex.Unlock()
|
||||||
p.serialMutex.Unlock()
|
p.agr.serialMutex.Unlock()
|
||||||
|
|
||||||
jdata, err := json.Marshal(data)
|
jdata, err := json.Marshal(data)
|
||||||
log.Println(string(jdata))
|
//log.Println(string(pretty.Pretty(jdata)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
p.Publisher.Publish(string(jdata))
|
p.pub.Publish(string(jdata))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,13 +90,12 @@ type aggregator struct {
|
|||||||
type UnixNanoTime int64
|
type UnixNanoTime int64
|
||||||
|
|
||||||
type synchronizer struct {
|
type synchronizer struct {
|
||||||
tcpDelayMs int
|
tcpSerialDelayMs int64
|
||||||
serialDelayMs int
|
//tcpBuffer map[UnixNanoTime]Sensordata
|
||||||
tcpBuffer map[UnixNanoTime]Sensordata
|
//serialBuffer map[UnixNanoTime]Sensordata
|
||||||
serialBuffer map[UnixNanoTime]Sensordata
|
//bufferSize int
|
||||||
bufferSize int
|
mutex *sync.Mutex
|
||||||
mutex *sync.Mutex
|
updateTicker *time.Ticker
|
||||||
updateTicker *time.Ticker
|
|
||||||
// should run concurrently
|
// should run concurrently
|
||||||
//
|
//
|
||||||
// Methods:
|
// Methods:
|
||||||
@ -104,19 +104,34 @@ type synchronizer struct {
|
|||||||
// Schedule()
|
// Schedule()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *synchronizer) schedule() {
|
func (p *pipeline) scheduleSynchronizer() {
|
||||||
log.Println("synchronizer: started")
|
log.Println("synchronizer: started")
|
||||||
for {
|
for {
|
||||||
<-s.updateTicker.C
|
<-p.syn.updateTicker.C
|
||||||
err := s.refreshDelay()
|
err := p.refreshDelay()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *synchronizer) refreshDelay() error {
|
func (p *pipeline) refreshDelay() error {
|
||||||
// TODO: implement
|
log.Println("refreshing delay....")
|
||||||
|
fmt.Println("Delay TCP/SERIAL", p.syn.tcpSerialDelayMs)
|
||||||
|
p.agr.serialMutex.Lock()
|
||||||
|
p.agr.tcpMutex.Lock()
|
||||||
|
tcpTime := time.Unix(0, p.agr.tcpSensorData.Timestamp)
|
||||||
|
serTime := time.Unix(0, p.agr.serialSensorData.Timestamp)
|
||||||
|
p.agr.serialMutex.Unlock()
|
||||||
|
p.agr.tcpMutex.Unlock()
|
||||||
|
if tcpTime.UnixNano() == 0 || serTime.UnixNano() == 0 {
|
||||||
|
return errors.New("no sync possible. no data to compare")
|
||||||
|
}
|
||||||
|
log.Println("TCP", tcpTime.String())
|
||||||
|
log.Println("SER", serTime.String())
|
||||||
|
log.Println("Difference", tcpTime.Sub(serTime).Milliseconds())
|
||||||
|
delay := tcpTime.Sub(serTime).Milliseconds()
|
||||||
|
p.syn.tcpSerialDelayMs += delay
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,14 +152,18 @@ func (p *pipeline) Process(data *Sensordata) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *pipeline) pushTcpDataToBuffer(data Sensordata) {
|
func (p *pipeline) pushTcpDataToBuffer(data Sensordata) {
|
||||||
time.Sleep(time.Duration(p.tcpDelayMs))
|
if p.syn.tcpSerialDelayMs > 0 {
|
||||||
p.tcpMutex.Lock()
|
time.Sleep(time.Duration(p.syn.tcpSerialDelayMs) * time.Millisecond)
|
||||||
p.tcpSensorData = data
|
}
|
||||||
p.tcpMutex.Unlock()
|
p.agr.tcpMutex.Lock()
|
||||||
|
p.agr.tcpSensorData = p.agr.tcpSensorData.Consolidate2(data)
|
||||||
|
p.agr.tcpMutex.Unlock()
|
||||||
}
|
}
|
||||||
func (p *pipeline) pushSerialDataToBuffer(data Sensordata) {
|
func (p *pipeline) pushSerialDataToBuffer(data Sensordata) {
|
||||||
time.Sleep(time.Duration(p.serialDelayMs))
|
if p.syn.tcpSerialDelayMs < 0 {
|
||||||
p.serialMutex.Lock()
|
time.Sleep(time.Duration(-p.syn.tcpSerialDelayMs) * time.Millisecond)
|
||||||
p.serialSensorData = p.serialSensorData.Consolidate(data)
|
}
|
||||||
p.serialMutex.Unlock()
|
p.agr.serialMutex.Lock()
|
||||||
|
p.agr.serialSensorData = p.agr.serialSensorData.Consolidate2(data)
|
||||||
|
p.agr.serialMutex.Unlock()
|
||||||
}
|
}
|
||||||
|
|||||||
1
go.mod
1
go.mod
@ -5,6 +5,7 @@ go 1.15
|
|||||||
require (
|
require (
|
||||||
github.com/gorilla/websocket v1.4.2
|
github.com/gorilla/websocket v1.4.2
|
||||||
github.com/m7shapan/njson v1.0.1
|
github.com/m7shapan/njson v1.0.1
|
||||||
|
github.com/tidwall/gjson v1.6.0
|
||||||
github.com/tidwall/pretty v1.0.2
|
github.com/tidwall/pretty v1.0.2
|
||||||
go.bug.st/serial v1.1.1
|
go.bug.st/serial v1.1.1
|
||||||
golang.org/x/sys v0.0.0-20201107080550-4d91cf3a1aaf // indirect
|
golang.org/x/sys v0.0.0-20201107080550-4d91cf3a1aaf // indirect
|
||||||
|
|||||||
869
static/iphone.json
Normal file
869
static/iphone.json
Normal file
@ -0,0 +1,869 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.037598",
|
||||||
|
"accelerometerAccelerationY" : "-0.007950",
|
||||||
|
"accelerometerAccelerationZ" : "-1.003952",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.804899",
|
||||||
|
"avAudioRecorderAveragePower" : "-34.990307",
|
||||||
|
"avAudioRecorderPeakPower" : "-30.574509",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.008506",
|
||||||
|
"gyroRotationY" : "-0.076335",
|
||||||
|
"gyroRotationZ" : "0.000154",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.794635",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876174",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291137.949005",
|
||||||
|
"locationHeadingX" : "-36.616150",
|
||||||
|
"locationHeadingY" : "-2.895218",
|
||||||
|
"locationHeadingZ" : "-25.625000",
|
||||||
|
"locationMagneticHeading" : "85.920738",
|
||||||
|
"locationTrueHeading" : "89.001564",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:37.964 +0100",
|
||||||
|
"logSampleNr" : "765",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77700.802641",
|
||||||
|
"magnetometerX" : "187.223969",
|
||||||
|
"magnetometerY" : "188.439392",
|
||||||
|
"magnetometerZ" : "-710.010864"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.036438",
|
||||||
|
"accelerometerAccelerationY" : "-0.008789",
|
||||||
|
"accelerometerAccelerationZ" : "-1.003464",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.821012",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.768673",
|
||||||
|
"avAudioRecorderPeakPower" : "-30.574509",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876176",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291137.968956",
|
||||||
|
"locationHeadingX" : "-36.500809",
|
||||||
|
"locationHeadingY" : "-2.983276",
|
||||||
|
"locationHeadingZ" : "-25.554626",
|
||||||
|
"locationMagneticHeading" : "85.920799",
|
||||||
|
"locationTrueHeading" : "89.001625",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:37.989 +0100",
|
||||||
|
"logSampleNr" : "766",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034999",
|
||||||
|
"motionGravityY" : "-0.009051",
|
||||||
|
"motionGravityZ" : "-0.999346",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.500809",
|
||||||
|
"motionMagneticFieldY" : "-2.983276",
|
||||||
|
"motionMagneticFieldZ" : "-25.554626",
|
||||||
|
"motionPitch" : "0.009051",
|
||||||
|
"motionQuaternionW" : "-0.008792",
|
||||||
|
"motionQuaternionX" : "-0.017541",
|
||||||
|
"motionQuaternionY" : "0.004372",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035007",
|
||||||
|
"motionRotationRateX" : "0.002088",
|
||||||
|
"motionRotationRateY" : "-0.004357",
|
||||||
|
"motionRotationRateZ" : "-0.000906",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.804614",
|
||||||
|
"motionUserAccelerationX" : "0.002599",
|
||||||
|
"motionUserAccelerationY" : "0.001101",
|
||||||
|
"motionUserAccelerationZ" : "-0.004606",
|
||||||
|
"motionYaw" : "-3.124165"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.033234",
|
||||||
|
"accelerometerAccelerationY" : "-0.008926",
|
||||||
|
"accelerometerAccelerationZ" : "-1.002014",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.837125",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.768673",
|
||||||
|
"avAudioRecorderPeakPower" : "-30.574509",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.008186",
|
||||||
|
"gyroRotationY" : "-0.076672",
|
||||||
|
"gyroRotationZ" : "0.000862",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.824603",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876178",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291137.989421",
|
||||||
|
"locationHeadingX" : "-36.537552",
|
||||||
|
"locationHeadingY" : "-2.889069",
|
||||||
|
"locationHeadingZ" : "-25.606628",
|
||||||
|
"locationMagneticHeading" : "85.920822",
|
||||||
|
"locationTrueHeading" : "89.001648",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:37.996 +0100",
|
||||||
|
"logSampleNr" : "767"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.034439",
|
||||||
|
"accelerometerAccelerationY" : "-0.009415",
|
||||||
|
"accelerometerAccelerationZ" : "-1.006668",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.853239",
|
||||||
|
"avAudioRecorderAveragePower" : "-31.989109",
|
||||||
|
"avAudioRecorderPeakPower" : "-30.574509",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876178",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.008792",
|
||||||
|
"locationHeadingX" : "-36.428513",
|
||||||
|
"locationHeadingY" : "-2.911438",
|
||||||
|
"locationHeadingZ" : "-25.462769",
|
||||||
|
"locationMagneticHeading" : "85.921715",
|
||||||
|
"locationTrueHeading" : "89.002541",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.012 +0100",
|
||||||
|
"logSampleNr" : "768",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034996",
|
||||||
|
"motionGravityY" : "-0.009039",
|
||||||
|
"motionGravityZ" : "-0.999347",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.537552",
|
||||||
|
"motionMagneticFieldY" : "-2.889069",
|
||||||
|
"motionMagneticFieldZ" : "-25.606628",
|
||||||
|
"motionPitch" : "0.009039",
|
||||||
|
"motionQuaternionW" : "-0.008788",
|
||||||
|
"motionQuaternionX" : "-0.017540",
|
||||||
|
"motionQuaternionY" : "0.004366",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035005",
|
||||||
|
"motionRotationRateX" : "0.000459",
|
||||||
|
"motionRotationRateY" : "-0.000712",
|
||||||
|
"motionRotationRateZ" : "-0.001314",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.834613",
|
||||||
|
"motionUserAccelerationX" : "-0.000923",
|
||||||
|
"motionUserAccelerationY" : "0.000250",
|
||||||
|
"motionUserAccelerationZ" : "-0.003110",
|
||||||
|
"motionYaw" : "-3.124172"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035385",
|
||||||
|
"accelerometerAccelerationY" : "-0.012100",
|
||||||
|
"accelerometerAccelerationZ" : "-1.011292",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.869321",
|
||||||
|
"avAudioRecorderAveragePower" : "-31.288141",
|
||||||
|
"avAudioRecorderPeakPower" : "-30.269579",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.010996",
|
||||||
|
"gyroRotationY" : "-0.081939",
|
||||||
|
"gyroRotationZ" : "0.002051",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.854571",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.029 +0100",
|
||||||
|
"logSampleNr" : "769",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77700.860777",
|
||||||
|
"magnetometerX" : "187.028076",
|
||||||
|
"magnetometerY" : "188.409332",
|
||||||
|
"magnetometerZ" : "-709.159546"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035950",
|
||||||
|
"accelerometerAccelerationY" : "-0.011780",
|
||||||
|
"accelerometerAccelerationZ" : "-1.006134",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.885435",
|
||||||
|
"avAudioRecorderAveragePower" : "-32.153595",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.939217",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876180",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.029312",
|
||||||
|
"locationHeadingX" : "-36.654816",
|
||||||
|
"locationHeadingY" : "-3.019150",
|
||||||
|
"locationHeadingZ" : "-24.858765",
|
||||||
|
"locationMagneticHeading" : "85.921791",
|
||||||
|
"locationTrueHeading" : "89.002617",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.047 +0100",
|
||||||
|
"logSampleNr" : "770",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034864",
|
||||||
|
"motionGravityY" : "-0.009091",
|
||||||
|
"motionGravityZ" : "-0.999351",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.654816",
|
||||||
|
"motionMagneticFieldY" : "-3.019150",
|
||||||
|
"motionMagneticFieldZ" : "-24.858765",
|
||||||
|
"motionPitch" : "0.009091",
|
||||||
|
"motionQuaternionW" : "-0.008783",
|
||||||
|
"motionQuaternionX" : "-0.017474",
|
||||||
|
"motionQuaternionY" : "0.004393",
|
||||||
|
"motionQuaternionZ" : "0.999799",
|
||||||
|
"motionRoll" : "0.034872",
|
||||||
|
"motionRotationRateX" : "0.000922",
|
||||||
|
"motionRotationRateY" : "-0.000872",
|
||||||
|
"motionRotationRateZ" : "-0.000288",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.864581",
|
||||||
|
"motionUserAccelerationX" : "0.001284",
|
||||||
|
"motionUserAccelerationY" : "-0.001514",
|
||||||
|
"motionUserAccelerationZ" : "-0.011895",
|
||||||
|
"motionYaw" : "-3.124182"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035431",
|
||||||
|
"accelerometerAccelerationY" : "-0.008698",
|
||||||
|
"accelerometerAccelerationZ" : "-1.001877",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.901548",
|
||||||
|
"avAudioRecorderAveragePower" : "-32.153595",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.939217",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.005874",
|
||||||
|
"gyroRotationY" : "-0.076437",
|
||||||
|
"gyroRotationZ" : "0.000249",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.884570",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationAltitude" : "187.182343",
|
||||||
|
"locationCourse" : "-1.000000",
|
||||||
|
"locationFloor" : "-9999",
|
||||||
|
"locationHeadingAccuracy" : "14.876182",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.049074",
|
||||||
|
"locationHeadingX" : "-36.686508",
|
||||||
|
"locationHeadingY" : "-3.035675",
|
||||||
|
"locationHeadingZ" : "-24.890198",
|
||||||
|
"locationHorizontalAccuracy" : "30.000000",
|
||||||
|
"locationLatitude" : "49.066370",
|
||||||
|
"locationLongitude" : "9.135756",
|
||||||
|
"locationMagneticHeading" : "85.922256",
|
||||||
|
"locationSpeed" : "0.000000",
|
||||||
|
"locationTimestamp_since1970" : "1607291137.995236",
|
||||||
|
"locationTrueHeading" : "89.003082",
|
||||||
|
"locationVerticalAccuracy" : "4.000000",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.061 +0100",
|
||||||
|
"logSampleNr" : "771",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034944",
|
||||||
|
"motionGravityY" : "-0.009061",
|
||||||
|
"motionGravityZ" : "-0.999348",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.686508",
|
||||||
|
"motionMagneticFieldY" : "-3.035675",
|
||||||
|
"motionMagneticFieldZ" : "-24.890198",
|
||||||
|
"motionPitch" : "0.009061",
|
||||||
|
"motionQuaternionW" : "-0.008780",
|
||||||
|
"motionQuaternionX" : "-0.017514",
|
||||||
|
"motionQuaternionY" : "0.004377",
|
||||||
|
"motionQuaternionZ" : "0.999799",
|
||||||
|
"motionRoll" : "0.034952",
|
||||||
|
"motionRotationRateX" : "-0.001064",
|
||||||
|
"motionRotationRateY" : "-0.001599",
|
||||||
|
"motionRotationRateZ" : "0.000173",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.894549",
|
||||||
|
"motionUserAccelerationX" : "-0.000566",
|
||||||
|
"motionUserAccelerationY" : "-0.000552",
|
||||||
|
"motionUserAccelerationZ" : "-0.007701",
|
||||||
|
"motionYaw" : "-3.124187"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.033325",
|
||||||
|
"accelerometerAccelerationY" : "-0.009155",
|
||||||
|
"accelerometerAccelerationZ" : "-1.004761",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.917661",
|
||||||
|
"avAudioRecorderAveragePower" : "-32.501255",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876183",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.068919",
|
||||||
|
"locationHeadingX" : "-36.387695",
|
||||||
|
"locationHeadingY" : "-2.955109",
|
||||||
|
"locationHeadingZ" : "-25.351074",
|
||||||
|
"locationMagneticHeading" : "85.922218",
|
||||||
|
"locationTrueHeading" : "89.003044",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.077 +0100",
|
||||||
|
"logSampleNr" : "772"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035431",
|
||||||
|
"accelerometerAccelerationY" : "-0.008286",
|
||||||
|
"accelerometerAccelerationZ" : "-1.005096",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.933775",
|
||||||
|
"avAudioRecorderAveragePower" : "-33.457474",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.004643",
|
||||||
|
"gyroRotationY" : "-0.075107",
|
||||||
|
"gyroRotationZ" : "0.001784",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.914538",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876183",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.088690",
|
||||||
|
"locationHeadingX" : "-36.463043",
|
||||||
|
"locationHeadingY" : "-2.722488",
|
||||||
|
"locationHeadingZ" : "-25.380981",
|
||||||
|
"locationMagneticHeading" : "85.921844",
|
||||||
|
"locationTrueHeading" : "89.002670",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.094 +0100",
|
||||||
|
"logSampleNr" : "773",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77700.918913",
|
||||||
|
"magnetometerX" : "187.101776",
|
||||||
|
"magnetometerY" : "188.768005",
|
||||||
|
"magnetometerZ" : "-709.771484",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034961",
|
||||||
|
"motionGravityY" : "-0.009001",
|
||||||
|
"motionGravityZ" : "-0.999348",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.463043",
|
||||||
|
"motionMagneticFieldY" : "-2.722488",
|
||||||
|
"motionMagneticFieldZ" : "-25.380981",
|
||||||
|
"motionPitch" : "0.009001",
|
||||||
|
"motionQuaternionW" : "-0.008782",
|
||||||
|
"motionQuaternionX" : "-0.017522",
|
||||||
|
"motionQuaternionY" : "0.004348",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.034970",
|
||||||
|
"motionRotationRateX" : "-0.003020",
|
||||||
|
"motionRotationRateY" : "0.004743",
|
||||||
|
"motionRotationRateZ" : "0.000997",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.924548",
|
||||||
|
"motionUserAccelerationX" : "0.001217",
|
||||||
|
"motionUserAccelerationY" : "-0.000520",
|
||||||
|
"motionUserAccelerationZ" : "-0.003139",
|
||||||
|
"motionYaw" : "-3.124183"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035904",
|
||||||
|
"accelerometerAccelerationY" : "-0.009094",
|
||||||
|
"accelerometerAccelerationZ" : "-1.001312",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.949857",
|
||||||
|
"avAudioRecorderAveragePower" : "-33.457474",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.006907",
|
||||||
|
"gyroRotationY" : "-0.079628",
|
||||||
|
"gyroRotationZ" : "0.000950",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.944507",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.109 +0100",
|
||||||
|
"logSampleNr" : "774"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.036209",
|
||||||
|
"accelerometerAccelerationY" : "-0.010406",
|
||||||
|
"accelerometerAccelerationZ" : "-1.005539",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.965971",
|
||||||
|
"avAudioRecorderAveragePower" : "-33.588783",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876184",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.108779",
|
||||||
|
"locationHeadingX" : "-36.467972",
|
||||||
|
"locationHeadingY" : "-2.907425",
|
||||||
|
"locationHeadingZ" : "-25.277100",
|
||||||
|
"locationMagneticHeading" : "85.922852",
|
||||||
|
"locationTrueHeading" : "89.003677",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.125 +0100",
|
||||||
|
"logSampleNr" : "775",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034963",
|
||||||
|
"motionGravityY" : "-0.009011",
|
||||||
|
"motionGravityZ" : "-0.999348",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.392593",
|
||||||
|
"motionMagneticFieldY" : "-3.084808",
|
||||||
|
"motionMagneticFieldZ" : "-25.575867",
|
||||||
|
"motionPitch" : "0.009012",
|
||||||
|
"motionQuaternionW" : "-0.008775",
|
||||||
|
"motionQuaternionX" : "-0.017523",
|
||||||
|
"motionQuaternionY" : "0.004353",
|
||||||
|
"motionQuaternionZ" : "0.999799",
|
||||||
|
"motionRoll" : "0.034972",
|
||||||
|
"motionRotationRateX" : "-0.000240",
|
||||||
|
"motionRotationRateY" : "-0.000722",
|
||||||
|
"motionRotationRateZ" : "0.001070",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.954516",
|
||||||
|
"motionUserAccelerationX" : "0.000376",
|
||||||
|
"motionUserAccelerationY" : "-0.001273",
|
||||||
|
"motionUserAccelerationZ" : "-0.004177",
|
||||||
|
"motionYaw" : "-3.124197"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.037720",
|
||||||
|
"accelerometerAccelerationY" : "-0.010132",
|
||||||
|
"accelerometerAccelerationZ" : "-1.008987",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.982084",
|
||||||
|
"avAudioRecorderAveragePower" : "-34.231152",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.004129",
|
||||||
|
"gyroRotationY" : "-0.077557",
|
||||||
|
"gyroRotationZ" : "-0.000793",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77700.974505",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876186",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.128763",
|
||||||
|
"locationHeadingX" : "-36.392593",
|
||||||
|
"locationHeadingY" : "-3.084808",
|
||||||
|
"locationHeadingZ" : "-25.575867",
|
||||||
|
"locationMagneticHeading" : "85.922737",
|
||||||
|
"locationTrueHeading" : "89.003563",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.141 +0100",
|
||||||
|
"logSampleNr" : "776",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77700.977079",
|
||||||
|
"magnetometerX" : "186.895142",
|
||||||
|
"magnetometerY" : "188.252991",
|
||||||
|
"magnetometerZ" : "-710.194702"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.036057",
|
||||||
|
"accelerometerAccelerationY" : "-0.008194",
|
||||||
|
"accelerometerAccelerationZ" : "-1.002792",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77700.998197",
|
||||||
|
"avAudioRecorderAveragePower" : "-34.738995",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876188",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.148931",
|
||||||
|
"locationHeadingX" : "-36.706497",
|
||||||
|
"locationHeadingY" : "-3.118759",
|
||||||
|
"locationHeadingZ" : "-25.621033",
|
||||||
|
"locationMagneticHeading" : "85.923042",
|
||||||
|
"locationTrueHeading" : "89.003868",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.168 +0100",
|
||||||
|
"logSampleNr" : "777",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.034977",
|
||||||
|
"motionGravityY" : "-0.009047",
|
||||||
|
"motionGravityZ" : "-0.999347",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.706497",
|
||||||
|
"motionMagneticFieldY" : "-3.118759",
|
||||||
|
"motionMagneticFieldZ" : "-25.621033",
|
||||||
|
"motionPitch" : "0.009047",
|
||||||
|
"motionQuaternionW" : "-0.008772",
|
||||||
|
"motionQuaternionX" : "-0.017530",
|
||||||
|
"motionQuaternionY" : "0.004370",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.034985",
|
||||||
|
"motionRotationRateX" : "0.000625",
|
||||||
|
"motionRotationRateY" : "-0.000442",
|
||||||
|
"motionRotationRateZ" : "0.000817",
|
||||||
|
"motionTimestamp_sinceReboot" : "77700.984485",
|
||||||
|
"motionUserAccelerationX" : "0.001827",
|
||||||
|
"motionUserAccelerationY" : "-0.000368",
|
||||||
|
"motionUserAccelerationZ" : "-0.007046",
|
||||||
|
"motionYaw" : "-3.124204"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.034225",
|
||||||
|
"accelerometerAccelerationY" : "-0.008728",
|
||||||
|
"accelerometerAccelerationZ" : "-1.000931",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.014310",
|
||||||
|
"avAudioRecorderAveragePower" : "-34.738995",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.003781",
|
||||||
|
"gyroRotationY" : "-0.076643",
|
||||||
|
"gyroRotationZ" : "0.000894",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77701.004474",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876190",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.168952",
|
||||||
|
"locationHeadingX" : "-36.616852",
|
||||||
|
"locationHeadingY" : "-2.912506",
|
||||||
|
"locationHeadingZ" : "-25.239990",
|
||||||
|
"locationMagneticHeading" : "85.923080",
|
||||||
|
"locationTrueHeading" : "89.003906",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.173 +0100",
|
||||||
|
"logSampleNr" : "778"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.033676",
|
||||||
|
"accelerometerAccelerationY" : "-0.007309",
|
||||||
|
"accelerometerAccelerationZ" : "-1.001099",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.030424",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.218269",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.189 +0100",
|
||||||
|
"logSampleNr" : "779",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.035004",
|
||||||
|
"motionGravityY" : "-0.008995",
|
||||||
|
"motionGravityZ" : "-0.999347",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.715759",
|
||||||
|
"motionMagneticFieldY" : "-2.925949",
|
||||||
|
"motionMagneticFieldZ" : "-25.069214",
|
||||||
|
"motionPitch" : "0.008995",
|
||||||
|
"motionQuaternionW" : "-0.008769",
|
||||||
|
"motionQuaternionX" : "-0.017544",
|
||||||
|
"motionQuaternionY" : "0.004344",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035013",
|
||||||
|
"motionRotationRateX" : "-0.003867",
|
||||||
|
"motionRotationRateY" : "0.001772",
|
||||||
|
"motionRotationRateZ" : "0.000104",
|
||||||
|
"motionTimestamp_sinceReboot" : "77701.014453",
|
||||||
|
"motionUserAccelerationX" : "-0.000825",
|
||||||
|
"motionUserAccelerationY" : "0.000175",
|
||||||
|
"motionUserAccelerationZ" : "-0.000272",
|
||||||
|
"motionYaw" : "-3.124209"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.037369",
|
||||||
|
"accelerometerAccelerationY" : "-0.007599",
|
||||||
|
"accelerometerAccelerationZ" : "-1.002563",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.046537",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.218269",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.006077",
|
||||||
|
"gyroRotationY" : "-0.077056",
|
||||||
|
"gyroRotationZ" : "0.001649",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77701.034442",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876190",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.188685",
|
||||||
|
"locationHeadingX" : "-36.715759",
|
||||||
|
"locationHeadingY" : "-2.925949",
|
||||||
|
"locationHeadingZ" : "-25.069214",
|
||||||
|
"locationMagneticHeading" : "85.923744",
|
||||||
|
"locationTrueHeading" : "89.004570",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.206 +0100",
|
||||||
|
"logSampleNr" : "780",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77701.035215",
|
||||||
|
"magnetometerX" : "187.234955",
|
||||||
|
"magnetometerY" : "188.355042",
|
||||||
|
"magnetometerZ" : "-709.823547"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035263",
|
||||||
|
"accelerometerAccelerationY" : "-0.011368",
|
||||||
|
"accelerometerAccelerationZ" : "-1.005341",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.062620",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.783520",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876191",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.208948",
|
||||||
|
"locationHeadingX" : "-36.388031",
|
||||||
|
"locationHeadingY" : "-3.009003",
|
||||||
|
"locationHeadingZ" : "-25.307068",
|
||||||
|
"locationMagneticHeading" : "85.924210",
|
||||||
|
"locationTrueHeading" : "89.005035",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.228 +0100",
|
||||||
|
"logSampleNr" : "781",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.035031",
|
||||||
|
"motionGravityY" : "-0.009005",
|
||||||
|
"motionGravityZ" : "-0.999346",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.388031",
|
||||||
|
"motionMagneticFieldY" : "-3.009003",
|
||||||
|
"motionMagneticFieldZ" : "-25.307068",
|
||||||
|
"motionPitch" : "0.009005",
|
||||||
|
"motionQuaternionW" : "-0.008762",
|
||||||
|
"motionQuaternionX" : "-0.017557",
|
||||||
|
"motionQuaternionY" : "0.004350",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035040",
|
||||||
|
"motionRotationRateX" : "-0.002688",
|
||||||
|
"motionRotationRateY" : "0.001089",
|
||||||
|
"motionRotationRateZ" : "0.000186",
|
||||||
|
"motionTimestamp_sinceReboot" : "77701.044452",
|
||||||
|
"motionUserAccelerationX" : "0.002337",
|
||||||
|
"motionUserAccelerationY" : "0.001406",
|
||||||
|
"motionUserAccelerationZ" : "-0.003218",
|
||||||
|
"motionYaw" : "-3.124224"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.033936",
|
||||||
|
"accelerometerAccelerationY" : "-0.008270",
|
||||||
|
"accelerometerAccelerationZ" : "-1.008591",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.078733",
|
||||||
|
"avAudioRecorderAveragePower" : "-35.894341",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.006742",
|
||||||
|
"gyroRotationY" : "-0.078071",
|
||||||
|
"gyroRotationZ" : "0.000371",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77701.064441",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876193",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.229093",
|
||||||
|
"locationHeadingX" : "-36.477371",
|
||||||
|
"locationHeadingY" : "-3.081924",
|
||||||
|
"locationHeadingZ" : "-25.343933",
|
||||||
|
"locationMagneticHeading" : "85.924126",
|
||||||
|
"locationTrueHeading" : "89.004951",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.238 +0100",
|
||||||
|
"logSampleNr" : "782"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.034683",
|
||||||
|
"accelerometerAccelerationY" : "-0.010590",
|
||||||
|
"accelerometerAccelerationZ" : "-1.008743",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.094846",
|
||||||
|
"avAudioRecorderAveragePower" : "-36.771626",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876195",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.248836",
|
||||||
|
"locationHeadingX" : "-36.430481",
|
||||||
|
"locationHeadingY" : "-2.969254",
|
||||||
|
"locationHeadingZ" : "-25.259521",
|
||||||
|
"locationMagneticHeading" : "85.924248",
|
||||||
|
"locationTrueHeading" : "89.005074",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.254 +0100",
|
||||||
|
"logSampleNr" : "783",
|
||||||
|
"magnetometerTimestamp_sinceReboot" : "77701.093351",
|
||||||
|
"magnetometerX" : "186.871170",
|
||||||
|
"magnetometerY" : "188.533890",
|
||||||
|
"magnetometerZ" : "-709.817078",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.035061",
|
||||||
|
"motionGravityY" : "-0.009031",
|
||||||
|
"motionGravityZ" : "-0.999344",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.430481",
|
||||||
|
"motionMagneticFieldY" : "-2.969254",
|
||||||
|
"motionMagneticFieldZ" : "-25.259521",
|
||||||
|
"motionPitch" : "0.009031",
|
||||||
|
"motionQuaternionW" : "-0.008761",
|
||||||
|
"motionQuaternionX" : "-0.017572",
|
||||||
|
"motionQuaternionY" : "0.004362",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035070",
|
||||||
|
"motionRotationRateX" : "0.002348",
|
||||||
|
"motionRotationRateY" : "0.000247",
|
||||||
|
"motionRotationRateZ" : "0.000621",
|
||||||
|
"motionTimestamp_sinceReboot" : "77701.074420",
|
||||||
|
"motionUserAccelerationX" : "-0.000393",
|
||||||
|
"motionUserAccelerationY" : "-0.000308",
|
||||||
|
"motionUserAccelerationZ" : "-0.008239",
|
||||||
|
"motionYaw" : "-3.124226"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.033768",
|
||||||
|
"accelerometerAccelerationY" : "-0.008774",
|
||||||
|
"accelerometerAccelerationZ" : "-1.005692",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.110960",
|
||||||
|
"avAudioRecorderAveragePower" : "-36.771626",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.002831",
|
||||||
|
"gyroRotationY" : "-0.076265",
|
||||||
|
"gyroRotationZ" : "0.001715",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77701.094409",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876197",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.268665",
|
||||||
|
"locationHeadingX" : "-36.766403",
|
||||||
|
"locationHeadingY" : "-2.885361",
|
||||||
|
"locationHeadingZ" : "-25.336365",
|
||||||
|
"locationMagneticHeading" : "85.924141",
|
||||||
|
"locationTrueHeading" : "89.004967",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.270 +0100",
|
||||||
|
"logSampleNr" : "784",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.035022",
|
||||||
|
"motionGravityY" : "-0.008936",
|
||||||
|
"motionGravityZ" : "-0.999347",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.766403",
|
||||||
|
"motionMagneticFieldY" : "-2.885361",
|
||||||
|
"motionMagneticFieldZ" : "-25.336365",
|
||||||
|
"motionPitch" : "0.008936",
|
||||||
|
"motionQuaternionW" : "-0.008761",
|
||||||
|
"motionQuaternionX" : "-0.017552",
|
||||||
|
"motionQuaternionY" : "0.004315",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035031",
|
||||||
|
"motionRotationRateX" : "-0.001589",
|
||||||
|
"motionRotationRateY" : "-0.001877",
|
||||||
|
"motionRotationRateZ" : "-0.000561",
|
||||||
|
"motionTimestamp_sinceReboot" : "77701.104388",
|
||||||
|
"motionUserAccelerationX" : "0.000745",
|
||||||
|
"motionUserAccelerationY" : "0.000620",
|
||||||
|
"motionUserAccelerationZ" : "-0.007642",
|
||||||
|
"motionYaw" : "-3.124223"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035889",
|
||||||
|
"accelerometerAccelerationY" : "-0.009491",
|
||||||
|
"accelerometerAccelerationZ" : "-1.000381",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.127073",
|
||||||
|
"avAudioRecorderAveragePower" : "-37.050854",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.290 +0100",
|
||||||
|
"logSampleNr" : "785"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"accelerometerAccelerationX" : "0.035278",
|
||||||
|
"accelerometerAccelerationY" : "-0.008865",
|
||||||
|
"accelerometerAccelerationZ" : "-1.004211",
|
||||||
|
"accelerometerTimestamp_sinceReboot" : "77701.143186",
|
||||||
|
"avAudioRecorderAveragePower" : "-37.257305",
|
||||||
|
"avAudioRecorderPeakPower" : "-29.852339",
|
||||||
|
"batteryLevel" : "0.660000",
|
||||||
|
"batteryState" : "1",
|
||||||
|
"deviceID" : "my_iOS_device",
|
||||||
|
"deviceOrientation" : "5",
|
||||||
|
"gyroRotationX" : "0.001609",
|
||||||
|
"gyroRotationY" : "-0.076717",
|
||||||
|
"gyroRotationZ" : "0.001673",
|
||||||
|
"gyroTimestamp_sinceReboot" : "77701.124377",
|
||||||
|
"identifierForVendor" : "1B07EE58-F14E-4E47-ABF8-7E919F119960",
|
||||||
|
"IP_en0" : "10.41.8.38",
|
||||||
|
"IP_pdp_ip0" : "100.78.225.228",
|
||||||
|
"label" : "0",
|
||||||
|
"locationHeadingAccuracy" : "14.876198",
|
||||||
|
"locationHeadingTimestamp_since1970" : "1607291138.288638",
|
||||||
|
"locationHeadingX" : "-36.884933",
|
||||||
|
"locationHeadingY" : "-3.087875",
|
||||||
|
"locationHeadingZ" : "-25.284058",
|
||||||
|
"locationMagneticHeading" : "85.924454",
|
||||||
|
"locationTrueHeading" : "89.005280",
|
||||||
|
"loggingTime" : "2020-12-06 22:45:38.302 +0100",
|
||||||
|
"logSampleNr" : "786",
|
||||||
|
"motionAttitudeReferenceFrame" : "XTrueNorthZVertical",
|
||||||
|
"motionGravityX" : "0.035028",
|
||||||
|
"motionGravityY" : "-0.008846",
|
||||||
|
"motionGravityZ" : "-0.999347",
|
||||||
|
"motionMagneticFieldCalibrationAccuracy" : "2.000000",
|
||||||
|
"motionMagneticFieldX" : "-36.644531",
|
||||||
|
"motionMagneticFieldY" : "-2.917130",
|
||||||
|
"motionMagneticFieldZ" : "-25.302368",
|
||||||
|
"motionPitch" : "0.008846",
|
||||||
|
"motionQuaternionW" : "-0.008759",
|
||||||
|
"motionQuaternionX" : "-0.017555",
|
||||||
|
"motionQuaternionY" : "0.004270",
|
||||||
|
"motionQuaternionZ" : "0.999798",
|
||||||
|
"motionRoll" : "0.035037",
|
||||||
|
"motionRotationRateX" : "-0.003860",
|
||||||
|
"motionRotationRateY" : "-0.000956",
|
||||||
|
"motionRotationRateZ" : "-0.001445",
|
||||||
|
"motionTimestamp_sinceReboot" : "77701.134387",
|
||||||
|
"motionUserAccelerationX" : "0.002051",
|
||||||
|
"motionUserAccelerationY" : "0.000881",
|
||||||
|
"motionUserAccelerationZ" : "-0.002896",
|
||||||
|
"motionYaw" : "-3.124227"
|
||||||
|
}
|
||||||
|
]
|
||||||
Loading…
Reference in New Issue
Block a user