迁移分支

This commit is contained in:
zengxiaobin
2023-11-24 17:09:26 +08:00
commit a6919ec672
158 changed files with 30851 additions and 0 deletions

104
CMakeLists.txt Normal file
View File

@@ -0,0 +1,104 @@
#=======================================================================
# FILE: moos-ivp-extend/CMakeLists.txt
# DATE: 2012/07/24
# INFO: Top-level CMakeLists.txt file for the moos-ivp-extend project
# NAME: Maintained by Mike Benjamin - Original setup by Christian Convey
# Chris Gagner, and tips borrowed from Dave Billin
#=======================================================================
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT( IVP_EXTEND )
set (CMAKE_CXX_STANDARD 11)
#=======================================================================
# Set the output directories for the binary and library files
#=======================================================================
GET_FILENAME_COMPONENT(IVP_EXTEND_BIN_DIR "${CMAKE_SOURCE_DIR}/bin" ABSOLUTE )
GET_FILENAME_COMPONENT(IVP_EXTEND_LIB_DIR "${CMAKE_SOURCE_DIR}/lib" ABSOLUTE )
SET( LIBRARY_OUTPUT_PATH "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" )
SET( ARCHIVE_OUTPUT_DIRECTORY "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" )
SET( LIBRARY_OUTPUT_DIRECTORY "${IVP_EXTEND_LIB_DIR}" CACHE PATH "" )
SET( EXECUTABLE_OUTPUT_PATH "${IVP_EXTEND_BIN_DIR}" CACHE PATH "" )
SET( RUNTIME_OUTPUT_DIRECTORY "${IVP_EXTEND_BIN_DIR}" CACHE PATH "" )
#=======================================================================
# Find MOOS
#=======================================================================
find_package(MOOS 10.0)
INCLUDE_DIRECTORIES(${MOOS_INCLUDE_DIRS})
#=======================================================================
# Find the "moos-ivp" base directory
#=======================================================================
# Search for the moos-ivp folder
find_path( MOOSIVP_SOURCE_TREE_BASE
NAMES build-ivp.sh build-moos.sh configure-ivp.sh
PATHS "../moos-ivp" "../../moos-ivp" "../../moos-ivp/trunk/" "../moos-ivp/trunk/"
DOC "Base directory of the MOOS-IvP source tree"
NO_DEFAULT_PATH
)
if (NOT MOOSIVP_SOURCE_TREE_BASE)
message("Please set MOOSIVP_SOURCE_TREE_BASE to ")
message("the location of the \"moos-ivp\" folder ")
return()
endif()
#======================================================================
# Specify where to find IvP's headers and libraries...
#======================================================================
FILE(GLOB IVP_INCLUDE_DIRS ${MOOSIVP_SOURCE_TREE_BASE}/ivp/src/lib_* )
INCLUDE_DIRECTORIES(${IVP_INCLUDE_DIRS})
FILE(GLOB IVP_LIBRARY_DIRS ${MOOSIVP_SOURCE_TREE_BASE}/lib )
LINK_DIRECTORIES(${IVP_LIBRARY_DIRS})
#======================================================================
# Specify Compiler Flags
#======================================================================
IF( ${WIN32} )
#---------------------------------------------
# Windows Compiler Flags
#---------------------------------------------
IF(MSVC)
# Flags for Microsoft Visual Studio
SET( WALL_ON OFF CACHE BOOL
"tell me about all compiler warnings (-Wall) ")
IF(WALL_ON)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
ENDIF(WALL_ON)
ELSE(MSVC)
# Other Windows compilers go here
ENDIF(MSVC)
ELSE( ${WIN32} )
#---------------------------------------------
# Linux and Apple Compiler Flags
#---------------------------------------------
# Force -fPIC because gcc complains when we don't use it with x86_64 code.
# Note sure why: -fPIC should only be needed for shared objects, and
# AFAIK, CMake gets that right when building shared objects. -CJC
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -g -Wdeprecated-declarations")
IF(CMAKE_COMPILER_IS_GNUCXX)
# Flags for the GNU C++ Compiler
SET( WALL_ON OFF CACHE BOOL
"tell me about all compiler warnings (-Wall) ")
IF(WALL_ON)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" -C++11)
ENDIF( WALL_ON)
ELSE(CMAKE_COMPILER_IS_GNUCXX)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF( ${WIN32} )
#=======================================================================
# Add Subdirectories
#=======================================================================
ADD_SUBDIRECTORY( src )

26
README.md Normal file
View File

@@ -0,0 +1,26 @@
# moos-ivp-pi
基于MOOS-ivp框架下150UUV本体控制软件
# 目录结构
src/ : 程序源文件目录
launch / : 系统启动存放位置
mission/ : 测试用任务文件
setting/ : 系统启动配置文件存放位置
build/ : 编译文件存放位置
bin/ : 程序执行文件存放位置
# 文件说明
./build.sh : 编译脚本
./clean.sh : 清除编译生成文件

147
alpha.moos Normal file
View File

@@ -0,0 +1,147 @@
ServerHost = localhost
ServerPort = 9000
Community = zjk
MOOSTimeWarp = 1
// Forest Lake
//这两个参数没有pMarineViewer就会闪退
LatOrigin = 43.825300
LongOrigin = -70.330400
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
Run = MOOSDB @ NewConsole = false
//Run = pLogger @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
Run = pRealm @ NewConsole = false
Run = pShare @ NewConsole = false
}
ProcessConfig = pShare
{
AppTick = 2
CommsTick = 2
input = route = localhost:8085
output = src_name=APPCAST_REQ, route=10.25.0.230:8081
//输出有两个端口8081和8082选择用1或者2
//发送消息看以下格式
//output = src_name=Y, dest_name=B, route=host:port
output = src_name=uMission_action_cmd,route=10.25.0.230:8081
output = src_name=uMotion_config_cmd,route=10.25.0.230:8081
}
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
//Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
//Log = REPORT @ 0 NOSYNC
//Log = BHV_SETTINGS @ 0 NOSYNC
Log = OPREGION_RESET @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
//------------------------------------------
// pMarineViewer config block
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
vehicles_name_mode = names+depth //+shortmode
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
button_one = START # uMission_action_cmd={"taskName":"east_waypt_survey","action":"start"}
button_two = STOP # uMission_action_cmd={"taskName":"east_waypt_survey","action":"stop"}
button_three = ReConfig # uMotion_config_cmd = true
button_four = SendSecurityZone # SendSaftRules = true
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
cmd = label=DEPLOY, var=DEPLOY, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=AVOID, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=RETURN, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=RETURN, var=RETURN, sval=true, receivers=all:$(VNAMES)
cmd = label=RETURN, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=PERMUTE, var=UTS_FORWARD, dval=0, receivers=shore
cmd = label=STATION, var=STATION_KEEP, sval=true, receivers=all:$(VNAMES), color=pink
cmd = label=LOITER-FAST, var=UP_LOITER, sval=speed=2.8, receivers=all:$(VNAMES)
cmd = label=LOITER-SLOW, var=UP_LOITER, sval=speed=1.4, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-TRUE, var=UP_LOITER, sval=clockwise=true, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-FALSE, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-BEST, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
}

BIN
bin/pBoardSupportComm Executable file

Binary file not shown.

BIN
bin/pClientViewer Executable file

Binary file not shown.

BIN
bin/pDataManagement Executable file

Binary file not shown.

BIN
bin/pEmulator Executable file

Binary file not shown.

BIN
bin/pFaultHandle Executable file

Binary file not shown.

BIN
bin/pMotionControler Executable file

Binary file not shown.

BIN
bin/pStateManagement Executable file

Binary file not shown.

BIN
bin/pSurfaceSupportComm Executable file

Binary file not shown.

BIN
bin/pTaskManagement Executable file

Binary file not shown.

BIN
bin/pTaskSend Executable file

Binary file not shown.

1
bin/read.txt Normal file
View File

@@ -0,0 +1 @@
可执行文件存放目录,程序列表如下:

46
build.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
INVOCATION_ABS_DIR=`pwd`
BUILD_TYPE="None"
CMD_LINE_ARGS=""
#-------------------------------------------------------------------
# Part 1: Check for and handle command-line arguments
#-------------------------------------------------------------------
for ARGI; do
if [ "${ARGI}" = "--help" -o "${ARGI}" = "-h" ] ; then
printf "%s [SWITCHES] \n" $0
printf "Switches: \n"
printf " --help, -h \n"
printf " --debug, -d \n"
printf " --release, -r \n"
printf "Notes: \n"
printf " (1) All other command line args will be passed as args \n"
printf " to \"make\" when it is eventually invoked. \n"
printf " (2) For example -k will continue making when/if a failure \n"
printf " is encountered in building one of the subdirectories. \n"
printf " (3) For example -j2 will utilize a 2nd core in the build \n"
printf " if your machine has two cores. -j4 etc for quad core. \n"
exit 0;
elif [ "${ARGI}" = "--debug" -o "${ARGI}" = "-d" ] ; then
BUILD_TYPE="Debug"
elif [ "${ARGI}" = "--release" -o "${ARGI}" = "-r" ] ; then
BUILD_TYPE="Release"
else
CMD_LINE_ARGS=$CMD_LINE_ARGS" "$ARGI
fi
done
#-------------------------------------------------------------------
# Part 2: Invoke the call to make in the build directory
#-------------------------------------------------------------------
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ../
make ${CMD_LINE_ARGS}
cd ${INVOCATION_ABS_DIR}

View File

@@ -0,0 +1 @@
{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,263 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.16.3/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.16.3/CMakeCCompiler.cmake"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isExternal" : true,
"path" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/MOOSConfigVersion.cmake"
},
{
"isExternal" : true,
"path" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/MOOSConfig.cmake"
},
{
"isExternal" : true,
"path" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/MOOSTargets.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/FindThreads.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
},
{
"path" : "src/CMakeLists.txt"
},
{
"path" : "src/pBoardSupportComm/CMakeLists.txt"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-config-version.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-config.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-targets.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-targets-release.cmake"
},
{
"path" : "src/pSurfaceSupportComm/CMakeLists.txt"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-config-version.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-config.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-targets.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/GeographicLib/geographiclib-targets-release.cmake"
},
{
"path" : "src/pClientViewer/CMakeLists.txt"
},
{
"path" : "src/pDataManagement/CMakeLists.txt"
},
{
"path" : "src/pTaskManagement/CMakeLists.txt"
},
{
"path" : "src/pTaskSend/CMakeLists.txt"
},
{
"path" : "src/pMotionControler/CMakeLists.txt"
},
{
"path" : "src/pEmulator/CMakeLists.txt"
},
{
"path" : "src/pFaultHandle/CMakeLists.txt"
},
{
"path" : "src/pStateManagement/CMakeLists.txt"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/ben/project/moos-ivp-pi/build",
"source" : "/home/ben/project/moos-ivp-pi"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@@ -0,0 +1,305 @@
{
"configurations" :
[
{
"directories" :
[
{
"build" : ".",
"childIndexes" :
[
1
],
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"projectIndex" : 0,
"source" : "."
},
{
"build" : "src",
"childIndexes" :
[
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 0,
"projectIndex" : 0,
"source" : "src"
},
{
"build" : "src/pBoardSupportComm",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pBoardSupportComm",
"targetIndexes" :
[
0
]
},
{
"build" : "src/pSurfaceSupportComm",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pSurfaceSupportComm",
"targetIndexes" :
[
7
]
},
{
"build" : "src/pClientViewer",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pClientViewer",
"targetIndexes" :
[
1
]
},
{
"build" : "src/pDataManagement",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pDataManagement",
"targetIndexes" :
[
2
]
},
{
"build" : "src/pTaskManagement",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pTaskManagement",
"targetIndexes" :
[
8
]
},
{
"build" : "src/pTaskSend",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pTaskSend",
"targetIndexes" :
[
9
]
},
{
"build" : "src/pMotionControler",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pMotionControler",
"targetIndexes" :
[
5
]
},
{
"build" : "src/pEmulator",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pEmulator",
"targetIndexes" :
[
3
]
},
{
"build" : "src/pFaultHandle",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pFaultHandle",
"targetIndexes" :
[
4
]
},
{
"build" : "src/pStateManagement",
"minimumCMakeVersion" :
{
"string" : "2.8"
},
"parentIndex" : 1,
"projectIndex" : 0,
"source" : "src/pStateManagement",
"targetIndexes" :
[
6
]
}
],
"name" : "None",
"projects" :
[
{
"directoryIndexes" :
[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"name" : "IVP_EXTEND",
"targetIndexes" :
[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
]
}
],
"targets" :
[
{
"directoryIndex" : 2,
"id" : "pBoardSupportComm::@1146bd68d6ff676d7cdb",
"jsonFile" : "target-pBoardSupportComm-None-6b6714a772e692ce7bda.json",
"name" : "pBoardSupportComm",
"projectIndex" : 0
},
{
"directoryIndex" : 4,
"id" : "pClientViewer::@cc500851234cd734e978",
"jsonFile" : "target-pClientViewer-None-637c837c32b7f1c4a3f8.json",
"name" : "pClientViewer",
"projectIndex" : 0
},
{
"directoryIndex" : 5,
"id" : "pDataManagement::@034b47bbed8ab925014e",
"jsonFile" : "target-pDataManagement-None-3fb8b0228e67220a29b1.json",
"name" : "pDataManagement",
"projectIndex" : 0
},
{
"directoryIndex" : 9,
"id" : "pEmulator::@1b38eb9e6c0705d3ecdb",
"jsonFile" : "target-pEmulator-None-e8b09174b873ffc7a0a4.json",
"name" : "pEmulator",
"projectIndex" : 0
},
{
"directoryIndex" : 10,
"id" : "pFaultHandle::@42119e8a9462daeca695",
"jsonFile" : "target-pFaultHandle-None-96d2d6ef9203623ec32c.json",
"name" : "pFaultHandle",
"projectIndex" : 0
},
{
"directoryIndex" : 8,
"id" : "pMotionControler::@cc1346ef0ed31955aa90",
"jsonFile" : "target-pMotionControler-None-3f183e81cc43357193c0.json",
"name" : "pMotionControler",
"projectIndex" : 0
},
{
"directoryIndex" : 11,
"id" : "pStateManagement::@cdde0d278f39903bd0cc",
"jsonFile" : "target-pStateManagement-None-12c0626db4f6cdfc3816.json",
"name" : "pStateManagement",
"projectIndex" : 0
},
{
"directoryIndex" : 3,
"id" : "pSurfaceSupportComm::@af7dafcb6523990d05a0",
"jsonFile" : "target-pSurfaceSupportComm-None-5c1b066d62accb72956a.json",
"name" : "pSurfaceSupportComm",
"projectIndex" : 0
},
{
"directoryIndex" : 6,
"id" : "pTaskManagement::@c7868433878d507bf89f",
"jsonFile" : "target-pTaskManagement-None-97473a05e92e62137b49.json",
"name" : "pTaskManagement",
"projectIndex" : 0
},
{
"directoryIndex" : 7,
"id" : "pTaskSend::@d8178882102cb10e2e3f",
"jsonFile" : "target-pTaskSend-None-3a4f500e73d7f1e47a5a.json",
"name" : "pTaskSend",
"projectIndex" : 0
}
]
}
],
"kind" : "codemodel",
"paths" :
{
"build" : "/home/ben/project/moos-ivp-pi/build",
"source" : "/home/ben/project/moos-ivp-pi"
},
"version" :
{
"major" : 2,
"minor" : 0
}
}

View File

@@ -0,0 +1,116 @@
{
"cmake" :
{
"generator" :
{
"name" : "Unix Makefiles"
},
"paths" :
{
"cmake" : "/usr/bin/cmake",
"cpack" : "/usr/bin/cpack",
"ctest" : "/usr/bin/ctest",
"root" : "/usr/share/cmake-3.16"
},
"version" :
{
"isDirty" : false,
"major" : 3,
"minor" : 16,
"patch" : 3,
"string" : "3.16.3",
"suffix" : ""
}
},
"objects" :
[
{
"jsonFile" : "codemodel-v2-e5f65b12d81cb1175a33.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "cache-v2-dd2c937f009d9a652f28.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-a2b0be97f994224a37d6.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
}
],
"reply" :
{
"client-vscode" :
{
"query.json" :
{
"requests" :
[
{
"kind" : "cache",
"version" : 2
},
{
"kind" : "codemodel",
"version" : 2
},
{
"kind" : "toolchains",
"version" : 1
},
{
"kind" : "cmakeFiles",
"version" : 1
}
],
"responses" :
[
{
"jsonFile" : "cache-v2-dd2c937f009d9a652f28.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "codemodel-v2-e5f65b12d81cb1175a33.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"error" : "unknown request kind 'toolchains'"
},
{
"jsonFile" : "cmakeFiles-v1-a2b0be97f994224a37d6.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
}
]
}
}
}
}

View File

@@ -0,0 +1,378 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pBoardSupportComm"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pBoardSupportComm/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 27,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 32,
"parent" : 0
},
{
"command" : 3,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 3,
"file" : 2,
"line" : 13,
"parent" : 6
},
{
"command" : 4,
"file" : 0,
"line" : 20,
"parent" : 0
},
{
"command" : 4,
"file" : 0,
"line" : 29,
"parent" : 0
},
{
"command" : 3,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 4,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 7,
"path" : "/*"
},
{
"backtrace" : 7,
"path" : "/DUNE"
},
{
"backtrace" : 8,
"path" : "/home/ben/project/moos-ivp-pi/src/pBoardSupportComm"
},
{
"backtrace" : 9,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pBoardSupportComm::@1146bd68d6ff676d7cdb",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 4,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"backtrace" : 4,
"fragment" : "/usr/local/lib/libGeographicLib.so.26.0.0",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pBoardSupportComm",
"nameOnDisk" : "pBoardSupportComm",
"paths" :
{
"build" : "src/pBoardSupportComm",
"source" : "src/pBoardSupportComm"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pBoardSupportComm/BoardSupportComm.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pBoardSupportComm/BoardSupportComm_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pBoardSupportComm/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,389 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pClientViewer"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pClientViewer/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 32,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 30,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 34,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 25,
"parent" : 0
},
{
"command" : 5,
"file" : 0,
"line" : 29,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/home/ben/project/moos-ivp-pi/src/pClientViewer"
},
{
"backtrace" : 10,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pClientViewer::@cc500851234cd734e978",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pClientViewer",
"nameOnDisk" : "pClientViewer",
"paths" :
{
"build" : "src/pClientViewer",
"source" : "src/pClientViewer"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pClientViewer/ClientViewer.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pClientViewer/ClientViewer_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pClientViewer/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,389 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pDataManagement"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pDataManagement/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 27,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 25,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 28,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 20,
"parent" : 0
},
{
"command" : 5,
"file" : 0,
"line" : 24,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/home/ben/project/moos-ivp-pi/src/pDataManagement"
},
{
"backtrace" : 10,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pDataManagement::@034b47bbed8ab925014e",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pDataManagement",
"nameOnDisk" : "pDataManagement",
"paths" :
{
"build" : "src/pDataManagement",
"source" : "src/pDataManagement"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pDataManagement/DataManagement.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pDataManagement/DataManagement_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pDataManagement/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,374 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pEmulator"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES"
],
"files" :
[
"src/pEmulator/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 9,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 11,
"parent" : 0
},
{
"command" : 3,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 3,
"file" : 2,
"line" : 13,
"parent" : 6
},
{
"command" : 3,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 4,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 5,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 7,
"path" : "/*"
},
{
"backtrace" : 7,
"path" : "/DUNE"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 8,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
2,
4
]
}
],
"id" : "pEmulator::@1b38eb9e6c0705d3ecdb",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib",
"role" : "libraries"
},
{
"backtrace" : 4,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-lcontacts",
"role" : "libraries"
},
{
"fragment" : "-lgeometry",
"role" : "libraries"
},
{
"fragment" : "-lapputil",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pEmulator",
"nameOnDisk" : "pEmulator",
"paths" :
{
"build" : "src/pEmulator",
"source" : "src/pEmulator"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
2,
4
]
},
{
"name" : "Header Files",
"sourceIndexes" :
[
1,
3
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pEmulator/Emulator.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pEmulator/Emulator.hpp",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pEmulator/_150server.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pEmulator/_150server.hpp",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pEmulator/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,387 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pFaultHandle"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pFaultHandle/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 21,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 19,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 23,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 18,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/usr/local/include/jsoncpp"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pFaultHandle::@42119e8a9462daeca695",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pFaultHandle",
"nameOnDisk" : "pFaultHandle",
"paths" :
{
"build" : "src/pFaultHandle",
"source" : "src/pFaultHandle"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
},
{
"name" : "Header Files",
"sourceIndexes" :
[
3
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pFaultHandle/FaultHandle.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pFaultHandle/FaultHandle_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pFaultHandle/main.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pFaultHandle/FaultHandle.h",
"sourceGroupIndex" : 1
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,407 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pMotionControler"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pMotionControler/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 11,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 9,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 14,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 8,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
2,
4,
5
]
}
],
"id" : "pMotionControler::@cc1346ef0ed31955aa90",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-lgeometry",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pMotionControler",
"nameOnDisk" : "pMotionControler",
"paths" :
{
"build" : "src/pMotionControler",
"source" : "src/pMotionControler"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
2,
4,
5
]
},
{
"name" : "Header Files",
"sourceIndexes" :
[
1,
3,
6
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pMotionControler/Controler.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pMotionControler/Controler.hpp",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pMotionControler/MotionControler.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pMotionControler/MotionControler.hpp",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pMotionControler/main.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pMotionControler/pidControl.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pMotionControler/pidControl.hpp",
"sourceGroupIndex" : 1
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,389 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pStateManagement"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pStateManagement/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 23,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 21,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 25,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 16,
"parent" : 0
},
{
"command" : 5,
"file" : 0,
"line" : 20,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/home/ben/project/moos-ivp-pi/src/pStateManagement"
},
{
"backtrace" : 10,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pStateManagement::@cdde0d278f39903bd0cc",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pStateManagement",
"nameOnDisk" : "pStateManagement",
"paths" :
{
"build" : "src/pStateManagement",
"source" : "src/pStateManagement"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pStateManagement/StateManagement.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pStateManagement/StateManagement_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pStateManagement/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,384 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pSurfaceSupportComm"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pSurfaceSupportComm/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 33,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 28,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 35,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 27,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pSurfaceSupportComm::@af7dafcb6523990d05a0",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/usr/local/lib/libGeographicLib.so.26.0.0",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pSurfaceSupportComm",
"nameOnDisk" : "pSurfaceSupportComm",
"paths" :
{
"build" : "src/pSurfaceSupportComm",
"source" : "src/pSurfaceSupportComm"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pSurfaceSupportComm/SurfaceSupportComm.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pSurfaceSupportComm/SurfaceSupportComm_Info.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pSurfaceSupportComm/main.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,375 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pTaskManagement"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pTaskManagement/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 17,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 14,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 21,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 13,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 10,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
2
]
}
],
"id" : "pTaskManagement::@c7868433878d507bf89f",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pTaskManagement",
"nameOnDisk" : "pTaskManagement",
"paths" :
{
"build" : "src/pTaskManagement",
"source" : "src/pTaskManagement"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
2
]
},
{
"name" : "Header Files",
"sourceIndexes" :
[
1
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pTaskManagement/TaskManger.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/pTaskManagement/TaskManger.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pTaskManagement/TaskMangerMain.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,437 @@
{
"artifacts" :
[
{
"path" : "/home/ben/project/moos-ivp-pi/bin/pTaskSend"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"ADD_EXECUTABLE",
"LINK_DIRECTORIES",
"link_directories",
"TARGET_LINK_LIBRARIES",
"INCLUDE_DIRECTORIES",
"include_directories"
],
"files" :
[
"src/pTaskSend/CMakeLists.txt",
"CMakeLists.txt",
"src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 21,
"parent" : 0
},
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 60,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 19,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 23,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 57,
"parent" : 2
},
{
"file" : 2
},
{
"command" : 4,
"file" : 2,
"line" : 13,
"parent" : 7
},
{
"command" : 5,
"file" : 0,
"line" : 14,
"parent" : 0
},
{
"command" : 5,
"file" : 0,
"line" : 18,
"parent" : 0
},
{
"command" : 4,
"file" : 1,
"line" : 32,
"parent" : 2
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -fPIC -g -Wdeprecated-declarations "
},
{
"backtrace" : 5,
"fragment" : "-pthread"
},
{
"fragment" : "-std=gnu++11"
}
],
"includes" :
[
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_apputil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-colregs"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_behaviors-marine"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_bhvutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_contacts"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_encounters"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_evalutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_genutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_geometry"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_helmivp"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ipfview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpbuild"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpcore"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ivpsolve"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logic"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_logutils"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_manifest"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marine_pid"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_marineview"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_mbutil"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_obstacles"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_polar"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_realm"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ucommand"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_ufield"
},
{
"backtrace" : 6,
"path" : "/home/ben/project/moos-ivp/ivp/src/lib_zaicview"
},
{
"backtrace" : 8,
"path" : "/*"
},
{
"backtrace" : 8,
"path" : "/DUNE"
},
{
"backtrace" : 9,
"path" : "/home/ben/project/moos-ivp-pi/src/pTaskSend"
},
{
"backtrace" : 10,
"path" : "/usr/include/jsoncpp"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/App/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Comms/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/DB/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Utils/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include"
},
{
"backtrace" : 11,
"isSystem" : true,
"path" : "/home/ben/project/moos-ivp/MOOS/MOOSCore/Core/libMOOS/Thirdparty/AppCasting/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"id" : "pTaskSend::@d8178882102cb10e2e3f",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-fPIC -g -Wdeprecated-declarations",
"role" : "flags"
},
{
"fragment" : "-rdynamic",
"role" : "flags"
},
{
"backtrace" : 3,
"fragment" : "-L/home/ben/project/moos-ivp/lib",
"role" : "libraryPath"
},
{
"backtrace" : 4,
"fragment" : "-L/usr/local/lib",
"role" : "libraryPath"
},
{
"fragment" : "-Wl,-rpath,/home/ben/project/moos-ivp/lib:/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 5,
"fragment" : "/home/ben/project/moos-ivp/build/MOOS/MOOSCore/lib/libMOOS.a",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-lfltk",
"role" : "libraries"
},
{
"fragment" : "-lfltk_gl",
"role" : "libraries"
},
{
"fragment" : "-ldl",
"role" : "libraries"
},
{
"fragment" : "-ltiff",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
},
{
"fragment" : "-pthread",
"role" : "libraries"
},
{
"fragment" : "/usr/local/lib/libdune-core.a",
"role" : "libraries"
},
{
"fragment" : "-lmbutil",
"role" : "libraries"
},
{
"fragment" : "-lpthread",
"role" : "libraries"
},
{
"fragment" : "-lfltk",
"role" : "libraries"
},
{
"fragment" : "-lfltk_gl",
"role" : "libraries"
},
{
"fragment" : "-lm",
"role" : "libraries"
},
{
"fragment" : "-ltiff",
"role" : "libraries"
},
{
"fragment" : "-ljsoncpp",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "pTaskSend",
"nameOnDisk" : "pTaskSend",
"paths" :
{
"build" : "src/pTaskSend",
"source" : "src/pTaskSend"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pTaskSend/TaskSend.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pTaskSend/TaskSendMain.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pTaskSend/display.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

15
clean.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
rm -rf build/*
rm -rf lib/*
rm -rf bin/p*
rm -f .DS_Store
rm -f missions/*/.LastOpenedMOOSLogDirectory
find . -name '.DS_Store' -print -exec rm -rfv {} \;
find . -name '*~' -print -exec rm -rfv {} \;
find . -name '#*' -print -exec rm -rfv {} \;
find . -name '*.moos++' -print -exec rm -rfv {} \;
find . -name 'MOOSLog*' -print -exec rm -rfv {} \;

View File

@@ -0,0 +1 @@
LastOpenedLoggingDirectory=./MOOSLog_13_11_2023_____15_52_07

181
launch/alpha.bhv Normal file
View File

@@ -0,0 +1,181 @@
//-------- FILE: alpha.bhv -------------
initialize RUN = false
initialize TaskNum=t1
initialize SendTask=false
//--------------模式判断------------------------
set MODE = ACTIVE{
RUN=true
} INACTIVE
set MODE = T1{
MODE=ACTIVE
TaskNum = t1
}
//----------路径点任务----------------------------
Behavior = BHV_Waypoint
{
name = waypt_survey
pwt = 100 //优先权重
condition = MODE==T1
//endflag = START=false
endflag = END_WayPoint=true
configflag = CRUISE_SPD = $[SPEED]
//configflag = OSPOS = $[OSX],$[OSY]
activeflag = INFO=$[OWNSHIP]
activeflag = INFO=$[BHVNAME]
activeflag = INFO=$[BHVTYPE]
//cycleflag = CINFO=$[OSX],$[OSY]
wptflag = CurrentPointComplete=true
wptflag = PREV=$(PX),$(PY)
wptflag = NEXT=$(NX),$(NY)
wptflag = TEST=$(X),$(Y)
wptflag = OSPOS=$(OSX),$(OSY)
//wptflag_on_start = true
updates = WPT_UPDATE
//perpetual = true
templating = spawn
// speed_alt = 1.2
//use_alt_speed = true
lead = 8
lead_damper = 1
lead_to_start = false
speed = 1 // meters per second
capture_line = true
capture_radius = 5.0
slip_radius = 15.0
efficiency_measure = all
polygon = 60,-40
order = normal
//repeat = 3
visual_hints = nextpt_color=yellow
visual_hints = nextpt_vertex_size=8
visual_hints = nextpt_lcolor=gray70
visual_hints = vertex_color=dodger_blue, edge_color=white
visual_hints = vertex_size=5, edge_size=1
}
//--------------定深任务------------------
Behavior=BHV_ConstantDepth
{
name = const_depth
pwt = 100
//condition = DEPLOY = true
condition = MODE==T1
duration = no-time-limit
updates = DEPTH_UPDATE
depth = 0
}
//--------------定向任务--------------------
Behavior=BHV_ConstantHeading
{
name = const_heading
pwt = 100
//condition = START_TURN = true
//condition = DEPLOY = true
condition = MODE==T3
perpetual = true
activeflag = TURN = started
//endflag = TURN = done
//endflag = RETURN = true
//endflag = START_TURN = false
endflag = START=false
heading = 225
complete_thresh = 5
duration = no-time-limit
}
//--------------定速任务--------------------
Behavior=BHV_ConstantSpeed
{
name = const_speed
pwt = 1000
condition = MODE==T1
perpetual = true
updates = SPEED_UPDATE
//endflag = START=false
speed = 5
duration = no-time-limit
//peakwidth = 0.5
//basewidth = 0.5
}
//----------------安全模式-----------------------
//----------------计时器---------------------
Behavior = BHV_Timer
{
name = mtime
condition = MODE==T1
pwt = 100
templating = spawn
//duration_status = MSTATUS
//duration = 10
endflag = TIME_OUT=true
updates = TIMER_UPDATES
//perpetual = true
}
//-------------最大深度限制--------------------------
Behavior = BHV_MaxDepth
{
name = maxdepth
pwt = 200
condition = MODE==ACTIVE
updates = MAXDEEP_UPDATES
max_depth = 20
tolerance = 0
duration = no-time-limit
}
//--------------安全区域设置-----------------------
Behavior = BHV_OpRegion
{
// General Behavior Parameters
// ---------------------------
name = op_region // example
pwt = 300 // default
condition = MODE==TN
updates = OPREGION_UPDATES // example
// Parameters specific to this behavior
// ------------------------------------
max_time = 20 // default (seconds)
max_depth = 25 // default (meters)
min_altitude = 0 // default (meters)
reset_var = OPREGION_RESET // example
trigger_entry_time = 1 // default (seconds)
trigger_exit_time = 0.5 // default (seconds)
polygon = pts={-80,-00:-30,-175:150,-100:95,25}
breached_altitude_flag = TaskFault = AltitudeOut
breached_depth_flag = TaskFault = DepthOut
breached_poly_flag = TaskFault = RegionOut
breached_time_flag = TaskFault = TimeOut
visual_hints = vertex_color = brown // default
visual_hints = vertex_size = 3 // default
visual_hints = edge_color = aqua // default
visual_hints = edge_size = 1 // default
}

149
launch/alpha.moos Normal file
View File

@@ -0,0 +1,149 @@
ServerHost = localhost
ServerPort = 9000
Community = zxb
MOOSTimeWarp = 1
// Forest Lake
//这两个参数没有pMarineViewer就会闪退
LatOrigin = 43.825300
LongOrigin = -70.330400
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
Run = MOOSDB @ NewConsole = false
//Run = pLogger @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
Run = pRealm @ NewConsole = false
Run = pShare @ NewConsole = false
}
ProcessConfig = pShare
{
AppTick = 2
CommsTick = 2
input = route = localhost:8085
output = src_name=APPCAST_REQ, route=10.25.0.230:8081
//输出有两个端口8081和8082选择用1或者2
//发送消息看以下格式
//output = src_name=Y, dest_name=B, route=host:port
output = src_name=uMission_action_cmd,route=10.25.0.230:8081
}
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
//Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
//Log = REPORT @ 0 NOSYNC
//Log = BHV_SETTINGS @ 0 NOSYNC
Log = OPREGION_RESET @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
//------------------------------------------
// pMarineViewer config block
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
vehicles_name_mode = names+depth //+shortmode
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
//button_one = START # START=true
button_one = START # uMission_action_cmd={"taskName":"east_waypt_survey","action":"start"}
//button_one = MOOS_MANUAL_OVERRIDE=false
button_two = STOP # uMission_action_cmd={"taskName":"east_waypt_survey","action":"stop"}
//button_two = MOOS_MANUAL_OVERRIDE=true
button_three = FaultClear # ClearFalut = true
button_four = SendSecurityZone # SendSaftRules = true
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
cmd = label=DEPLOY, var=DEPLOY, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=AVOID, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=RETURN, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=RETURN, var=RETURN, sval=true, receivers=all:$(VNAMES)
cmd = label=RETURN, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=PERMUTE, var=UTS_FORWARD, dval=0, receivers=shore
cmd = label=STATION, var=STATION_KEEP, sval=true, receivers=all:$(VNAMES), color=pink
cmd = label=LOITER-FAST, var=UP_LOITER, sval=speed=2.8, receivers=all:$(VNAMES)
cmd = label=LOITER-SLOW, var=UP_LOITER, sval=speed=1.4, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-TRUE, var=UP_LOITER, sval=clockwise=true, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-FALSE, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-BEST, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
}

324
launch/launch.moos Normal file
View File

@@ -0,0 +1,324 @@
//======================================
//1. 在phare配置块里面添加需要的变量和调试端端口配置
//2. Our define process中加入自定义程序
//3. For test process 中加入配合调试的程序
ServerHost = localhost
ServerPort = 9000
Simulator = true
Community = pi
MOOSTimeWarp = 1
LatOrigin = 43.825300
LongOrigin = -70.330400
AltOrigin = 0
VehicleName = lauv-150
LogEnable = false
LogDir = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/log/
AuvDataLog = auvData.mdat
MissionHistoryLog = missionHistory.txt
ClientCommandLog = clientCommand.txt
FaultLog = faultLog.txt
MotionControlLog = motionControl.txt
llaOriginPath = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/setting/Origin.json
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
//============MOOS process=========================
Run = MOOSDB @ NewConsole = false
Run = pHelmIvP @ NewConsole = false
Run = pNodeReporter @ NewConsole = false
Run = uProcessWatch @ NewConsole = false
Run = pRealm @ NewConsole = false
Run = pShare @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
//===========Our define process====================
Run = pBoardSupportComm @ NewConsole = false
Run = pTaskManagement @ NewConsole = false
Run = pMotionControler @ NewConsole = false
Run = pSurfaceSupportComm @ NewConsole = false
Run = pDataManagement @ NewConsole = false
Run = pFaultHandle @ NewConsole = false
Run = pStateManagement @ NewConsole = false
//===============For test process===================
Run = pEmulator @ NewConsole = false
//Run = uSimMarine @ NewConsole = false
//Run = pMarinePID @ NewConsole = false
}
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
vehicles_name_mode = names+depth //+shortmode
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
//button_one = START # START=true
button_one = START # uMission_action_cmd={"taskName":"east_waypt_survey","action":"start"}
//button_one = MOOS_MANUAL_OVERRIDE=false
button_two = STOP # uMission_action_cmd={"taskName":"east_waypt_survey","action":"stop"}
//button_two = MOOS_MANUAL_OVERRIDE=true
//button_three = FaultClear # ClearFalut = true
//button_four = SendSecurityZone # SendSaftRules = true
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
cmd = label=DEPLOY, var=DEPLOY, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=AVOID, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=RETURN, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=RETURN, var=RETURN, sval=true, receivers=all:$(VNAMES)
cmd = label=RETURN, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=PERMUTE, var=UTS_FORWARD, dval=0, receivers=shore
cmd = label=STATION, var=STATION_KEEP, sval=true, receivers=all:$(VNAMES), color=pink
cmd = label=LOITER-FAST, var=UP_LOITER, sval=speed=2.8, receivers=all:$(VNAMES)
cmd = label=LOITER-SLOW, var=UP_LOITER, sval=speed=1.4, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-TRUE, var=UP_LOITER, sval=clockwise=true, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-FALSE, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-BEST, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
}
ProcessConfig = pHelmIvP
{
AppTick = 4
CommsTick = 4
behaviors = alpha.bhv
domain = course:0:359:360
domain = speed:0:10:101
domain = depth:0:100:101
park_on_allstop = false
//park_on_allstop = true
}
ProcessConfig = uProcessWatch
{
AppTick = 4
CommsTick = 4
watch_all = true
nowatch = uPokeDB*
nowatch = uQueryDB*
nowatch = uXMS*
nowatch = uMAC*
nowatch = pShare*
nowatch = pRealm*
nowatch = pNodeReporter*
}
ProcessConfig = pNodeReporter
{
AppTick = 2
CommsTick = 2
platform_type = UUV
platform_color = red
platform_length = 4
}
ProcessConfig = pShare
{
AppTick = 2
CommsTick = 2
//UUV 信息
output = src_name = NODE_REPORT*, route = 10.25.0.160:8085
output = src_name = NODE_REPORT*, route = 10.25.0.248:8085
output = src_name = NODE_REPORT*, route = 10.25.0.165:8085
//App 信息
output = src_name = APPCAST*, route = 10.25.0.160:8085
output = src_name = APPCAST*, route = 10.25.0.165:8085
output = src_name = APPCAST*, route = 10.25.0.248:8085
//路径点信息
output = src_name = VIEW*, route = 10.25.0.160:8085
output = src_name = VIEW*, route = 10.25.0.165:8085
output = src_name = VIEW*, route = 10.25.0.248:8085
//调试端输入端口
input = route = localhost:8081
input = route = localhost:8082
input = route = localhost:8083
}
ProcessConfig = pTaskManagement
{
AppTick = 8
CommsTick = 8
planConfigPath = /home/zjk/Desktop/project/moos-ivp-pi/setting/PlanConfigure.json
}
ProcessConfig = pBoardSupportComm
{
AppTick = 5
CommsTick = 5
}
ProcessConfig = uSimMarine
{
AppTick = 10
CommsTick = 10
START_X = 0
START_Y = 0
START_SPEED = 0
START_HEADING = 180
PREFIX = NAV
}
ProcessConfig = pMarinePID
{
AppTick = 20
CommsTick = 20
VERBOSE = true
DEPTH_CONTROL = false
// Yaw PID controller
YAW_PID_KP = 0.5
YAW_PID_KD = 0.0
YAW_PID_KI = 0.0
YAW_PID_INTEGRAL_LIMIT = 0.07
// Speed PID controller
SPEED_PID_KP = 1.0
SPEED_PID_KD = 0.0
SPEED_PID_KI = 0.0
SPEED_PID_INTEGRAL_LIMIT = 0.07
//MAXIMUMS
MAXRUDDER = 100
MAXTHRUST = 100
// A non-zero SPEED_FACTOR overrides use of SPEED_PID
// Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR
SPEED_FACTOR = 20
}
ProcessConfig = pMotionControler
{
AppTick = 5
CommsTick = 5
tardy_nav_thresh = 2.0
tardy_helm_thresh = 2.0
cheak_stalensee = true
delta_freqency = 5
config_file = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/setting/ControlParam.json
}
ProcessConfig = pEmulator
{
AppTick = 5
CommsTick = 5
matlab_host = 10.25.0.137
matlab_port = 8085
local_port = 8080
prefix = NAV
start_x = 10
start_y = 9
start_z = 1
start_heading = 30
}
ProcessConfig = pDataManagement
{
AppTick = 4
CommsTick = 4
}
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
FileTimeStamp = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
Log = REPORT @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
ProcessConfig = pFaultHandle
{
AppTick = 4
CommsTick = 4
}

328
launch/launch_local.moos Normal file
View File

@@ -0,0 +1,328 @@
//======================================
//1. 在phare配置块里面添加需要的变量和调试端端口配置
//2. Our define process中加入自定义程序
//3. For test process 中加入配合调试的程序
ServerHost = localhost
ServerPort = 9000
Simulator = true
Community = pi
MOOSTimeWarp = 1
LatOrigin = 43.825300
LongOrigin = -70.330400
AltOrigin = 0
VehicleName = lauv-150
LogEnable = true
//LogDir = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/log/
LogDir = /home/ben/project/moos-ivp-pi/log/
AuvDataLog = auvData.mdat
MissionHistoryLog = missionHistory.txt
ClientCommandLog = clientCommand.txt
FaultLog = faultLog.txt
MotionControlLog = motionControl.txt
//llaOriginPath = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/setting/Origin.json
llaOriginPath = /home/ben/project/moos-ivp-pi/setting/Origin.json
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
//============MOOS process=========================
Run = MOOSDB @ NewConsole = false
Run = pHelmIvP @ NewConsole = false
Run = pNodeReporter @ NewConsole = false
Run = uProcessWatch @ NewConsole = false
Run = pRealm @ NewConsole = false
//Run = pShare @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
//===========Our define process====================
Run = pBoardSupportComm @ NewConsole = false
Run = pTaskManagement @ NewConsole = false
//Run = pMotionControler @ NewConsole = false
Run = pSurfaceSupportComm @ NewConsole = false
Run = pDataManagement @ NewConsole = false
Run = pFaultHandle @ NewConsole = false
Run = pStateManagement @ NewConsole = false
//===============For test process===================
//Run = pEmulator @ NewConsole = false
Run = uSimMarine @ NewConsole = false
Run = pMarinePID @ NewConsole = false
}
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
vehicles_name_mode = names+depth //+shortmode
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
//button_one = START # START=true
button_one = START # uMission_action_cmd={"taskName":"east_waypt_survey","action":"start"}
//button_one = MOOS_MANUAL_OVERRIDE=false
button_two = STOP # uMission_action_cmd={"taskName":"east_waypt_survey","action":"stop"}
//button_two = MOOS_MANUAL_OVERRIDE=true
//button_three = FaultClear # ClearFalut = true
//button_four = SendSecurityZone # SendSaftRules = true
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
cmd = label=DEPLOY, var=DEPLOY, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=MOOS_MANUAL_OVERRIDE, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=AVOID, sval=true, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=RETURN, sval=false, receivers=all:$(VNAMES)
cmd = label=DEPLOY, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=RETURN, var=RETURN, sval=true, receivers=all:$(VNAMES)
cmd = label=RETURN, var=STATION_KEEP, sval=false, receivers=all:$(VNAMES)
cmd = label=PERMUTE, var=UTS_FORWARD, dval=0, receivers=shore
cmd = label=STATION, var=STATION_KEEP, sval=true, receivers=all:$(VNAMES), color=pink
cmd = label=LOITER-FAST, var=UP_LOITER, sval=speed=2.8, receivers=all:$(VNAMES)
cmd = label=LOITER-SLOW, var=UP_LOITER, sval=speed=1.4, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-TRUE, var=UP_LOITER, sval=clockwise=true, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-FALSE, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
cmd = label=LOITER-CLOCKWISE-BEST, var=UP_LOITER, sval=clockwise=false, receivers=all:$(VNAMES)
}
ProcessConfig = pHelmIvP
{
AppTick = 4
CommsTick = 4
behaviors = alpha.bhv
domain = course:0:359:360
domain = speed:0:10:101
domain = depth:0:100:101
park_on_allstop = false
//park_on_allstop = true
}
ProcessConfig = uProcessWatch
{
AppTick = 4
CommsTick = 4
watch_all = true
nowatch = uPokeDB*
nowatch = uQueryDB*
nowatch = uXMS*
nowatch = uMAC*
nowatch = pShare*
nowatch = pRealm*
nowatch = pNodeReporter*
}
ProcessConfig = pNodeReporter
{
AppTick = 2
CommsTick = 2
platform_type = UUV
platform_color = red
platform_length = 4
}
ProcessConfig = pShare
{
AppTick = 2
CommsTick = 2
//UUV 信息
output = src_name = NODE_REPORT*, route = 10.25.0.160:8085
output = src_name = NODE_REPORT*, route = 10.25.0.248:8085
output = src_name = NODE_REPORT*, route = 10.25.0.165:8085
//App 信息
output = src_name = APPCAST*, route = 10.25.0.160:8085
output = src_name = APPCAST*, route = 10.25.0.165:8085
output = src_name = APPCAST*, route = 10.25.0.248:8085
//路径点信息
output = src_name = VIEW*, route = 10.25.0.160:8085
output = src_name = VIEW*, route = 10.25.0.165:8085
output = src_name = VIEW*, route = 10.25.0.248:8085
//调试端输入端口
input = route = localhost:8081
input = route = localhost:8082
input = route = localhost:8083
}
ProcessConfig = pTaskManagement
{
AppTick = 8
CommsTick = 8
//planConfigPath = /home/zjk/Desktop/project/moos-ivp-pi/setting/PlanConfigure.json
planConfigPath = /home/ben/project/moos-ivp-pi/setting/PlanConfigure.json
}
ProcessConfig = pBoardSupportComm
{
AppTick = 5
CommsTick = 5
}
ProcessConfig = uSimMarine
{
AppTick = 10
CommsTick = 10
START_X = 0
START_Y = 0
START_SPEED = 0
START_HEADING = 180
PREFIX = NAV
}
ProcessConfig = pMarinePID
{
AppTick = 20
CommsTick = 20
VERBOSE = true
DEPTH_CONTROL = false
// Yaw PID controller
YAW_PID_KP = 0.5
YAW_PID_KD = 0.0
YAW_PID_KI = 0.0
YAW_PID_INTEGRAL_LIMIT = 0.07
// Speed PID controller
SPEED_PID_KP = 1.0
SPEED_PID_KD = 0.0
SPEED_PID_KI = 0.0
SPEED_PID_INTEGRAL_LIMIT = 0.07
//MAXIMUMS
MAXRUDDER = 100
MAXTHRUST = 100
// A non-zero SPEED_FACTOR overrides use of SPEED_PID
// Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR
SPEED_FACTOR = 20
}
ProcessConfig = pMotionControler
{
AppTick = 5
CommsTick = 5
tardy_nav_thresh = 2.0
tardy_helm_thresh = 2.0
cheak_stalensee = true
delta_freqency = 5
//config_file = /home/jhl/moos-ivp-pi/moos-ivp-pi-word/setting/ControlParam.json
config_file = /home/ben/project/moos-ivp-pi/setting/ControlParam.json
}
ProcessConfig = pEmulator
{
AppTick = 5
CommsTick = 5
matlab_host = 10.25.0.137
matlab_port = 8085
local_port = 8080
prefix = NAV
start_x = 10
start_y = 9
start_z = 1
start_heading = 30
}
ProcessConfig = pDataManagement
{
AppTick = 4
CommsTick = 4
}
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
FileTimeStamp = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
Log = REPORT @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
ProcessConfig = pFaultHandle
{
AppTick = 4
CommsTick = 4
}

View File

@@ -0,0 +1,62 @@
stamp,mode,refLon,refLat,refAlt,curLon,curLat,curAlt,north,east,depth,roll,pitch,yaw,insVX,insVY,insVZ,dvlVX,dvlVY,dvlVZ,height,thrust,light,load,dvl,iridium,batteryVol,batteryLev,batteryTemp
1700816027.452301,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816028.453864,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816029.455264,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816030.456581,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816031.457907,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816032.459370,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816033.461214,255,-90.330399,50.825298,0.000000,-70.330406,43.825291,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,221.265686,-0.015959,0.001138,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816034.463172,255,-90.330399,50.825298,0.000000,-70.330421,43.825283,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,256.499908,-0.013856,-0.015647,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816035.464781,255,-90.330399,50.825298,0.000000,-70.330452,43.825283,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,279.698303,0.005554,-0.023349,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816036.466592,255,-90.330399,50.825298,0.000000,-70.330482,43.825291,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,294.955994,-0.001521,0.025955,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816037.468631,255,-90.330399,50.825298,0.000000,-70.330513,43.825302,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,305.117188,-0.024714,-0.011832,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816038.470937,255,-90.330399,50.825298,0.000000,-70.330536,43.825317,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,311.726898,-0.027891,0.004797,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816039.472921,255,-90.330399,50.825298,0.000000,-70.330566,43.825333,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,316.019745,0.001756,-0.028847,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816040.475010,255,-90.330399,50.825298,0.000000,-70.330589,43.825356,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,319.103973,-0.000783,0.029190,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816041.477071,255,-90.330399,50.825298,0.000000,-70.330612,43.825375,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,321.166321,0.025067,-0.015554,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816042.479474,255,-90.330399,50.825298,0.000000,-70.330635,43.825394,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,322.507629,-0.011150,-0.027528,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816043.481484,255,-90.330399,50.825298,0.000000,-70.330658,43.825417,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,323.379303,-0.028673,-0.008119,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816044.483527,255,-90.330399,50.825298,0.000000,-70.330681,43.825436,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,323.946442,-0.028419,0.009295,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816045.485677,255,-90.330399,50.825298,0.000000,-70.330704,43.825459,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.315002,-0.022853,0.019281,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816046.487692,255,-90.330399,50.825298,0.000000,-70.330727,43.825481,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.554688,-0.017366,0.024340,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816047.489423,255,-90.330399,50.825298,0.000000,-70.330750,43.825500,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.710480,-0.013240,0.026920,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816048.491376,255,-90.330399,50.825298,0.000000,-70.330772,43.825523,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.811707,-0.010326,0.028167,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816049.493341,255,-90.330399,50.825298,0.000000,-70.330795,43.825546,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.877563,-0.008367,0.028810,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816050.495084,255,-90.330399,50.825298,0.000000,-70.330818,43.825569,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.920380,-0.007071,0.029155,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816051.496895,255,-90.330399,50.825298,0.000000,-70.330841,43.825588,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.948242,-0.006221,0.029348,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816052.499007,255,-90.330399,50.825298,0.000000,-70.330856,43.825611,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.966370,-0.005665,0.029460,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816053.500951,255,-90.330399,50.825298,0.000000,-70.330879,43.825634,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.978119,-0.005302,0.029528,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816054.502858,255,-90.330399,50.825298,0.000000,-70.330902,43.825657,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.985779,-0.005067,0.029569,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816055.504794,255,-90.330399,50.825298,0.000000,-70.330925,43.825676,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.990753,-0.004912,0.029595,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816056.506864,255,-90.330399,50.825298,0.000000,-70.330948,43.825699,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.993988,-0.004813,0.029611,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816057.508876,255,-90.330399,50.825298,0.000000,-70.330971,43.825722,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.996094,-0.004748,0.029622,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816058.510177,255,-90.330399,50.825298,0.000000,-70.330994,43.825745,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.997467,-0.004705,0.029629,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816059.511894,255,-90.330399,50.825298,0.000000,-70.331017,43.825764,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.998352,-0.004678,0.029633,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816060.513713,255,-90.330399,50.825298,0.000000,-70.331032,43.825787,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.998932,-0.004660,0.029636,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816061.515361,255,-90.330399,50.825298,0.000000,-70.331055,43.825809,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999298,-0.004648,0.029638,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816062.517724,255,-90.330399,50.825298,0.000000,-70.331078,43.825832,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999542,-0.004641,0.029639,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816063.519399,255,-90.330399,50.825298,0.000000,-70.331100,43.825851,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999695,-0.004636,0.029640,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816064.521321,255,-90.330399,50.825298,0.000000,-70.331123,43.825874,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999817,-0.004633,0.029640,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816065.523155,255,-90.330399,50.825298,0.000000,-70.331146,43.825897,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999878,-0.004630,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816066.525113,255,-90.330399,50.825298,0.000000,-70.331169,43.825920,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999908,-0.004629,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816067.527088,255,-90.330399,50.825298,0.000000,-70.331192,43.825939,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999939,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816068.528931,255,-90.330399,50.825298,0.000000,-70.331207,43.825962,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999969,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816069.530942,255,-90.330399,50.825298,0.000000,-70.331230,43.825985,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999969,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816070.533259,255,-90.330399,50.825298,0.000000,-70.331253,43.826008,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816071.535545,255,-90.330399,50.825298,0.000000,-70.331276,43.826027,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816072.537694,255,-90.330399,50.825298,0.000000,-70.331299,43.826050,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816073.539486,255,-90.330399,50.825298,0.000000,-70.331322,43.826073,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816074.541668,255,-90.330399,50.825298,0.000000,-70.331345,43.826096,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816075.543549,255,-90.330399,50.825298,0.000000,-70.331367,43.826115,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816076.545451,255,-90.330399,50.825298,0.000000,-70.331383,43.826138,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816077.546880,255,-90.330399,50.825298,0.000000,-70.331406,43.826157,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816078.548941,255,-90.330399,50.825298,0.000000,-70.331429,43.826180,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816079.550498,255,-90.330399,50.825298,0.000000,-70.331451,43.826202,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816080.552557,255,-90.330399,50.825298,0.000000,-70.331474,43.826225,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816081.554820,255,-90.330399,50.825298,0.000000,-70.331497,43.826244,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816082.556979,255,-90.330399,50.825298,0.000000,-70.331512,43.826267,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816083.559367,255,-90.330399,50.825298,0.000000,-70.331535,43.826290,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.193695,0.000103,0.029900,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816084.561927,255,-90.330399,50.825298,0.000000,-70.331558,43.826313,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.475800,0.008774,0.028584,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816085.564134,255,-90.330399,50.825298,0.000000,-70.331581,43.826332,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.659149,0.014102,0.026479,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816086.565876,255,-90.330399,50.825298,0.000000,-70.331604,43.826355,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.758423,0.016744,0.024288,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816087.567839,255,-90.330399,50.825298,0.000000,-70.331619,43.826389,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,352.651459,0.019075,0.039317,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000

View File

@@ -0,0 +1 @@
PlanControl:1700816031.985205,east_waypt_survey,start

View File

@@ -0,0 +1 @@
stamp,level,type,id,first,source

View File

@@ -0,0 +1,451 @@
stamp,state,taskName,destName,errorCode
1700816032.208877,3,east_waypt_survey,,0
1700816032.209008,3,east_waypt_survey,,0
1700816032.459245,3,east_waypt_survey,station_1,0
1700816032.459485,3,east_waypt_survey,station_1,0
1700816032.709793,3,east_waypt_survey,station_1,0
1700816032.709916,3,east_waypt_survey,station_1,0
1700816032.960172,3,east_waypt_survey,station_1,0
1700816032.960243,3,east_waypt_survey,station_1,0
1700816033.210579,3,east_waypt_survey,station_1,0
1700816033.210741,3,east_waypt_survey,station_1,0
1700816033.461092,3,east_waypt_survey,station_1,0
1700816033.461268,3,east_waypt_survey,station_1,0
1700816033.711654,3,east_waypt_survey,station_1,0
1700816033.711850,3,east_waypt_survey,station_1,0
1700816033.962186,3,east_waypt_survey,station_1,0
1700816033.962254,3,east_waypt_survey,station_1,0
1700816034.212517,3,east_waypt_survey,station_1,0
1700816034.212695,3,east_waypt_survey,station_1,0
1700816034.463044,3,east_waypt_survey,station_1,0
1700816034.463241,3,east_waypt_survey,station_1,0
1700816034.754383,3,east_waypt_survey,station_1,0
1700816034.754540,3,east_waypt_survey,station_1,0
1700816034.963804,3,east_waypt_survey,station_1,0
1700816034.963877,3,east_waypt_survey,station_1,0
1700816035.214206,3,east_waypt_survey,station_1,0
1700816035.214365,3,east_waypt_survey,station_1,0
1700816035.464652,3,east_waypt_survey,station_1,0
1700816035.464841,3,east_waypt_survey,station_1,0
1700816035.715239,3,east_waypt_survey,station_1,0
1700816035.715382,3,east_waypt_survey,station_1,0
1700816035.965593,3,east_waypt_survey,station_1,0
1700816035.965625,3,east_waypt_survey,station_1,0
1700816036.215854,3,east_waypt_survey,station_1,0
1700816036.216009,3,east_waypt_survey,station_1,0
1700816036.466402,3,east_waypt_survey,station_1,0
1700816036.466688,3,east_waypt_survey,station_1,0
1700816036.717018,3,east_waypt_survey,station_1,0
1700816036.717189,3,east_waypt_survey,station_1,0
1700816036.967522,3,east_waypt_survey,station_1,0
1700816036.967596,3,east_waypt_survey,station_1,0
1700816037.217925,3,east_waypt_survey,station_1,0
1700816037.218168,3,east_waypt_survey,station_1,0
1700816037.468499,3,east_waypt_survey,station_1,0
1700816037.468715,3,east_waypt_survey,station_1,0
1700816037.719129,3,east_waypt_survey,station_1,0
1700816037.719314,3,east_waypt_survey,station_1,0
1700816037.969713,3,east_waypt_survey,station_1,0
1700816037.969809,3,east_waypt_survey,station_1,0
1700816038.220210,3,east_waypt_survey,station_1,0
1700816038.220398,3,east_waypt_survey,station_1,0
1700816038.470784,3,east_waypt_survey,station_1,0
1700816038.471023,3,east_waypt_survey,station_1,0
1700816038.721386,3,east_waypt_survey,station_1,0
1700816038.721547,3,east_waypt_survey,station_1,0
1700816038.971869,3,east_waypt_survey,station_1,0
1700816038.971938,3,east_waypt_survey,station_1,0
1700816039.222234,3,east_waypt_survey,station_1,0
1700816039.222428,3,east_waypt_survey,station_1,0
1700816039.472795,3,east_waypt_survey,station_1,0
1700816039.472981,3,east_waypt_survey,station_1,0
1700816039.723322,3,east_waypt_survey,station_1,0
1700816039.723522,3,east_waypt_survey,station_1,0
1700816039.973940,3,east_waypt_survey,station_1,0
1700816039.974023,3,east_waypt_survey,station_1,0
1700816040.224345,3,east_waypt_survey,station_1,0
1700816040.224512,3,east_waypt_survey,station_1,0
1700816040.474886,3,east_waypt_survey,station_1,0
1700816040.475065,3,east_waypt_survey,station_1,0
1700816040.725486,3,east_waypt_survey,station_1,0
1700816040.725653,3,east_waypt_survey,station_1,0
1700816040.975918,3,east_waypt_survey,station_1,0
1700816040.975992,3,east_waypt_survey,station_1,0
1700816041.226343,3,east_waypt_survey,station_1,0
1700816041.226548,3,east_waypt_survey,station_1,0
1700816041.476948,3,east_waypt_survey,station_1,0
1700816041.477126,3,east_waypt_survey,station_1,0
1700816041.727650,3,east_waypt_survey,station_1,0
1700816041.727854,3,east_waypt_survey,station_1,0
1700816041.978300,3,east_waypt_survey,station_1,0
1700816041.978374,3,east_waypt_survey,station_1,0
1700816042.228716,3,east_waypt_survey,station_1,0
1700816042.228943,3,east_waypt_survey,station_1,0
1700816042.479307,3,east_waypt_survey,station_1,0
1700816042.479555,3,east_waypt_survey,station_1,0
1700816042.729978,3,east_waypt_survey,station_1,0
1700816042.730143,3,east_waypt_survey,station_1,0
1700816042.980438,3,east_waypt_survey,station_1,0
1700816042.980515,3,east_waypt_survey,station_1,0
1700816043.230907,3,east_waypt_survey,station_1,0
1700816043.231108,3,east_waypt_survey,station_1,0
1700816043.481364,3,east_waypt_survey,station_1,0
1700816043.481544,3,east_waypt_survey,station_1,0
1700816043.731938,3,east_waypt_survey,station_1,0
1700816043.732125,3,east_waypt_survey,station_1,0
1700816043.982541,3,east_waypt_survey,station_1,0
1700816043.982620,3,east_waypt_survey,station_1,0
1700816044.232929,3,east_waypt_survey,station_1,0
1700816044.233097,3,east_waypt_survey,station_1,0
1700816044.483370,3,east_waypt_survey,station_1,0
1700816044.483591,3,east_waypt_survey,station_1,0
1700816044.733981,3,east_waypt_survey,station_1,0
1700816044.734152,3,east_waypt_survey,station_1,0
1700816044.984458,3,east_waypt_survey,station_1,0
1700816044.984537,3,east_waypt_survey,station_1,0
1700816045.234943,3,east_waypt_survey,station_1,0
1700816045.235157,3,east_waypt_survey,station_1,0
1700816045.485551,3,east_waypt_survey,station_1,0
1700816045.485731,3,east_waypt_survey,station_1,0
1700816045.736048,3,east_waypt_survey,station_1,0
1700816045.736220,3,east_waypt_survey,station_1,0
1700816045.986640,3,east_waypt_survey,station_1,0
1700816045.986722,3,east_waypt_survey,station_1,0
1700816046.237011,3,east_waypt_survey,station_1,0
1700816046.237198,3,east_waypt_survey,station_1,0
1700816046.487511,3,east_waypt_survey,station_1,0
1700816046.487786,3,east_waypt_survey,station_1,0
1700816046.738158,3,east_waypt_survey,station_1,0
1700816046.738411,3,east_waypt_survey,station_1,0
1700816047.054477,3,east_waypt_survey,station_1,0
1700816047.054549,3,east_waypt_survey,station_1,0
1700816047.238882,3,east_waypt_survey,station_1,0
1700816047.239170,3,east_waypt_survey,station_1,0
1700816047.489367,3,east_waypt_survey,station_1,0
1700816047.489444,3,east_waypt_survey,station_1,0
1700816047.739852,3,east_waypt_survey,station_1,0
1700816047.740061,3,east_waypt_survey,station_1,0
1700816047.990340,3,east_waypt_survey,station_1,0
1700816047.990433,3,east_waypt_survey,station_1,0
1700816048.240757,3,east_waypt_survey,station_1,0
1700816048.240978,3,east_waypt_survey,station_1,0
1700816048.491253,3,east_waypt_survey,station_1,0
1700816048.491563,3,east_waypt_survey,station_1,0
1700816048.741912,3,east_waypt_survey,station_1,0
1700816048.742069,3,east_waypt_survey,station_1,0
1700816048.992343,3,east_waypt_survey,station_1,0
1700816048.992425,3,east_waypt_survey,station_1,0
1700816049.242746,3,east_waypt_survey,station_1,0
1700816049.242989,3,east_waypt_survey,station_1,0
1700816049.493253,3,east_waypt_survey,station_1,0
1700816049.493425,3,east_waypt_survey,station_1,0
1700816049.743751,3,east_waypt_survey,station_1,0
1700816049.743908,3,east_waypt_survey,station_1,0
1700816049.994182,3,east_waypt_survey,station_1,0
1700816049.994249,3,east_waypt_survey,station_1,0
1700816050.244547,3,east_waypt_survey,station_1,0
1700816050.244707,3,east_waypt_survey,station_1,0
1700816050.494967,3,east_waypt_survey,station_1,0
1700816050.495234,3,east_waypt_survey,station_1,0
1700816050.745558,3,east_waypt_survey,station_1,0
1700816050.745706,3,east_waypt_survey,station_1,0
1700816050.995970,3,east_waypt_survey,station_1,0
1700816050.996041,3,east_waypt_survey,station_1,0
1700816051.246296,3,east_waypt_survey,station_1,0
1700816051.246457,3,east_waypt_survey,station_1,0
1700816051.496800,3,east_waypt_survey,station_1,0
1700816051.496984,3,east_waypt_survey,station_1,0
1700816051.747485,3,east_waypt_survey,station_1,0
1700816051.747684,3,east_waypt_survey,station_1,0
1700816051.998093,3,east_waypt_survey,station_1,0
1700816051.998172,3,east_waypt_survey,station_1,0
1700816052.248486,3,east_waypt_survey,station_1,0
1700816052.248648,3,east_waypt_survey,station_1,0
1700816052.498913,3,east_waypt_survey,station_1,0
1700816052.499089,3,east_waypt_survey,station_1,0
1700816052.749516,3,east_waypt_survey,station_1,0
1700816052.749737,3,east_waypt_survey,station_1,0
1700816053.000036,3,east_waypt_survey,station_1,0
1700816053.000094,3,east_waypt_survey,station_1,0
1700816053.250365,3,east_waypt_survey,station_1,0
1700816053.250569,3,east_waypt_survey,station_1,0
1700816053.500852,3,east_waypt_survey,station_1,0
1700816053.501036,3,east_waypt_survey,station_1,0
1700816053.751387,3,east_waypt_survey,station_1,0
1700816053.751649,3,east_waypt_survey,station_1,0
1700816054.001928,3,east_waypt_survey,station_1,0
1700816054.001993,3,east_waypt_survey,station_1,0
1700816054.252292,3,east_waypt_survey,station_1,0
1700816054.252497,3,east_waypt_survey,station_1,0
1700816054.502743,3,east_waypt_survey,station_1,0
1700816054.502990,3,east_waypt_survey,station_1,0
1700816054.753304,3,east_waypt_survey,station_1,0
1700816054.753525,3,east_waypt_survey,station_1,0
1700816055.003813,3,east_waypt_survey,station_1,0
1700816055.003984,3,east_waypt_survey,station_1,0
1700816055.254289,3,east_waypt_survey,station_1,0
1700816055.254440,3,east_waypt_survey,station_1,0
1700816055.504703,3,east_waypt_survey,station_1,0
1700816055.504925,3,east_waypt_survey,station_1,0
1700816055.755324,3,east_waypt_survey,station_1,0
1700816055.755552,3,east_waypt_survey,station_1,0
1700816056.005919,3,east_waypt_survey,station_1,0
1700816056.005997,3,east_waypt_survey,station_1,0
1700816056.256307,3,east_waypt_survey,station_1,0
1700816056.256495,3,east_waypt_survey,station_1,0
1700816056.506764,3,east_waypt_survey,station_1,0
1700816056.506959,3,east_waypt_survey,station_1,0
1700816056.757382,3,east_waypt_survey,station_1,0
1700816056.757587,3,east_waypt_survey,station_1,0
1700816057.007940,3,east_waypt_survey,station_1,0
1700816057.008013,3,east_waypt_survey,station_1,0
1700816057.258317,3,east_waypt_survey,station_1,0
1700816057.258483,3,east_waypt_survey,station_1,0
1700816057.508776,3,east_waypt_survey,station_1,0
1700816057.508963,3,east_waypt_survey,station_1,0
1700816057.759254,3,east_waypt_survey,station_1,0
1700816057.759323,3,east_waypt_survey,station_1,0
1700816058.009523,3,east_waypt_survey,station_1,0
1700816058.009551,3,east_waypt_survey,station_1,0
1700816058.259725,3,east_waypt_survey,station_1,0
1700816058.259837,3,east_waypt_survey,station_1,0
1700816058.510085,3,east_waypt_survey,station_1,0
1700816058.510260,3,east_waypt_survey,station_1,0
1700816058.760570,3,east_waypt_survey,station_1,0
1700816058.760716,3,east_waypt_survey,station_1,0
1700816059.010990,3,east_waypt_survey,station_1,0
1700816059.011060,3,east_waypt_survey,station_1,0
1700816059.261289,3,east_waypt_survey,station_1,0
1700816059.261392,3,east_waypt_survey,station_1,0
1700816059.511785,3,east_waypt_survey,station_1,0
1700816059.511984,3,east_waypt_survey,station_1,0
1700816059.762472,3,east_waypt_survey,station_1,0
1700816059.762658,3,east_waypt_survey,station_1,0
1700816060.012899,3,east_waypt_survey,station_1,0
1700816060.012937,3,east_waypt_survey,station_1,0
1700816060.263156,3,east_waypt_survey,station_1,0
1700816060.263229,3,east_waypt_survey,station_1,0
1700816060.513611,3,east_waypt_survey,station_1,0
1700816060.513801,3,east_waypt_survey,station_1,0
1700816060.764103,3,east_waypt_survey,station_1,0
1700816060.764267,3,east_waypt_survey,station_1,0
1700816061.014479,3,east_waypt_survey,station_1,0
1700816061.014516,3,east_waypt_survey,station_1,0
1700816061.264817,3,east_waypt_survey,station_1,0
1700816061.264998,3,east_waypt_survey,station_1,0
1700816061.515269,3,east_waypt_survey,station_1,0
1700816061.515450,3,east_waypt_survey,station_1,0
1700816061.769275,3,east_waypt_survey,station_1,0
1700816061.769454,3,east_waypt_survey,station_1,0
1700816062.016738,3,east_waypt_survey,station_1,0
1700816062.016827,3,east_waypt_survey,station_1,0
1700816062.267092,3,east_waypt_survey,station_1,0
1700816062.267242,3,east_waypt_survey,station_1,0
1700816062.517593,3,east_waypt_survey,station_1,0
1700816062.517864,3,east_waypt_survey,station_1,0
1700816062.768102,3,east_waypt_survey,station_1,0
1700816062.768196,3,east_waypt_survey,station_1,0
1700816063.018409,3,east_waypt_survey,station_1,0
1700816063.018473,3,east_waypt_survey,station_1,0
1700816063.268769,3,east_waypt_survey,station_1,0
1700816063.268964,3,east_waypt_survey,station_1,0
1700816063.519306,3,east_waypt_survey,station_1,0
1700816063.519526,3,east_waypt_survey,station_1,0
1700816063.769963,3,east_waypt_survey,station_1,0
1700816063.770164,3,east_waypt_survey,station_1,0
1700816064.020422,3,east_waypt_survey,station_1,0
1700816064.020491,3,east_waypt_survey,station_1,0
1700816064.270789,3,east_waypt_survey,station_1,0
1700816064.270964,3,east_waypt_survey,station_1,0
1700816064.521208,3,east_waypt_survey,station_1,0
1700816064.521436,3,east_waypt_survey,station_1,0
1700816064.771714,3,east_waypt_survey,station_1,0
1700816064.771889,3,east_waypt_survey,station_1,0
1700816065.022263,3,east_waypt_survey,station_1,0
1700816065.022339,3,east_waypt_survey,station_1,0
1700816065.272659,3,east_waypt_survey,station_1,0
1700816065.272835,3,east_waypt_survey,station_1,0
1700816065.523070,3,east_waypt_survey,station_1,0
1700816065.523252,3,east_waypt_survey,station_1,0
1700816065.773637,3,east_waypt_survey,station_1,0
1700816065.773834,3,east_waypt_survey,station_1,0
1700816066.024163,3,east_waypt_survey,station_1,0
1700816066.024268,3,east_waypt_survey,station_1,0
1700816066.274558,3,east_waypt_survey,station_1,0
1700816066.274759,3,east_waypt_survey,station_1,0
1700816066.525020,3,east_waypt_survey,station_1,0
1700816066.525197,3,east_waypt_survey,station_1,0
1700816066.775556,3,east_waypt_survey,station_1,0
1700816066.775723,3,east_waypt_survey,station_1,0
1700816067.026024,3,east_waypt_survey,station_1,0
1700816067.026094,3,east_waypt_survey,station_1,0
1700816067.276391,3,east_waypt_survey,station_1,0
1700816067.276593,3,east_waypt_survey,station_1,0
1700816067.526983,3,east_waypt_survey,station_1,0
1700816067.527183,3,east_waypt_survey,station_1,0
1700816067.777592,3,east_waypt_survey,station_1,0
1700816067.777725,3,east_waypt_survey,station_1,0
1700816068.027991,3,east_waypt_survey,station_1,0
1700816068.028067,3,east_waypt_survey,station_1,0
1700816068.278403,3,east_waypt_survey,station_1,0
1700816068.278567,3,east_waypt_survey,station_1,0
1700816068.528826,3,east_waypt_survey,station_1,0
1700816068.529028,3,east_waypt_survey,station_1,0
1700816068.779418,3,east_waypt_survey,station_1,0
1700816068.779642,3,east_waypt_survey,station_1,0
1700816069.029914,3,east_waypt_survey,station_1,0
1700816069.029989,3,east_waypt_survey,station_1,0
1700816069.280328,3,east_waypt_survey,station_1,0
1700816069.280494,3,east_waypt_survey,station_1,0
1700816069.530804,3,east_waypt_survey,station_1,0
1700816069.531105,3,east_waypt_survey,station_1,0
1700816069.781601,3,east_waypt_survey,station_1,0
1700816069.781778,3,east_waypt_survey,station_1,0
1700816070.032084,3,east_waypt_survey,station_1,0
1700816070.032158,3,east_waypt_survey,station_1,0
1700816070.282557,3,east_waypt_survey,station_1,0
1700816070.282786,3,east_waypt_survey,station_1,0
1700816070.533129,3,east_waypt_survey,station_1,0
1700816070.533378,3,east_waypt_survey,station_1,0
1700816070.783728,3,east_waypt_survey,station_1,0
1700816070.783942,3,east_waypt_survey,station_1,0
1700816071.034389,3,east_waypt_survey,station_1,0
1700816071.034498,3,east_waypt_survey,station_1,0
1700816071.284860,3,east_waypt_survey,station_1,0
1700816071.285056,3,east_waypt_survey,station_1,0
1700816071.535430,3,east_waypt_survey,station_1,0
1700816071.535629,3,east_waypt_survey,station_1,0
1700816071.786117,3,east_waypt_survey,station_1,0
1700816071.786292,3,east_waypt_survey,station_1,0
1700816072.036619,3,east_waypt_survey,station_1,0
1700816072.036699,3,east_waypt_survey,station_1,0
1700816072.287171,3,east_waypt_survey,station_1,0
1700816072.287379,3,east_waypt_survey,station_1,0
1700816072.537650,3,east_waypt_survey,station_1,0
1700816072.537727,3,east_waypt_survey,station_1,0
1700816072.787998,3,east_waypt_survey,station_1,0
1700816072.788181,3,east_waypt_survey,station_1,0
1700816073.038418,3,east_waypt_survey,station_1,0
1700816073.038465,3,east_waypt_survey,station_1,0
1700816073.288763,3,east_waypt_survey,station_1,0
1700816073.288948,3,east_waypt_survey,station_1,0
1700816073.539371,3,east_waypt_survey,station_1,0
1700816073.539574,3,east_waypt_survey,station_1,0
1700816073.790044,3,east_waypt_survey,station_1,0
1700816073.790238,3,east_waypt_survey,station_1,0
1700816074.040513,3,east_waypt_survey,station_1,0
1700816074.040586,3,east_waypt_survey,station_1,0
1700816074.291023,3,east_waypt_survey,station_1,0
1700816074.291200,3,east_waypt_survey,station_1,0
1700816074.541573,3,east_waypt_survey,station_1,0
1700816074.541748,3,east_waypt_survey,station_1,0
1700816074.792051,3,east_waypt_survey,station_1,0
1700816074.792227,3,east_waypt_survey,station_1,0
1700816075.042626,3,east_waypt_survey,station_1,0
1700816075.042698,3,east_waypt_survey,station_1,0
1700816075.292997,3,east_waypt_survey,station_1,0
1700816075.293180,3,east_waypt_survey,station_1,0
1700816075.543440,3,east_waypt_survey,station_1,0
1700816075.543635,3,east_waypt_survey,station_1,0
1700816075.794077,3,east_waypt_survey,station_1,0
1700816075.794245,3,east_waypt_survey,station_1,0
1700816076.044511,3,east_waypt_survey,station_1,0
1700816076.044574,3,east_waypt_survey,station_1,0
1700816076.294973,3,east_waypt_survey,station_1,0
1700816076.295133,3,east_waypt_survey,station_1,0
1700816076.545408,3,east_waypt_survey,station_1,0
1700816076.545478,3,east_waypt_survey,station_1,0
1700816076.795700,3,east_waypt_survey,station_1,0
1700816076.795807,3,east_waypt_survey,station_1,0
1700816077.046128,3,east_waypt_survey,station_1,0
1700816077.046194,3,east_waypt_survey,station_1,0
1700816077.296430,3,east_waypt_survey,station_1,0
1700816077.296524,3,east_waypt_survey,station_1,0
1700816077.546815,3,east_waypt_survey,station_1,0
1700816077.546952,3,east_waypt_survey,station_1,0
1700816077.797365,3,east_waypt_survey,station_1,0
1700816077.797547,3,east_waypt_survey,station_1,0
1700816078.047834,3,east_waypt_survey,station_1,0
1700816078.047913,3,east_waypt_survey,station_1,0
1700816078.298332,3,east_waypt_survey,station_1,0
1700816078.298519,3,east_waypt_survey,station_1,0
1700816078.548836,3,east_waypt_survey,station_1,0
1700816078.549071,3,east_waypt_survey,station_1,0
1700816078.799363,3,east_waypt_survey,station_1,0
1700816078.799483,3,east_waypt_survey,station_1,0
1700816079.049739,3,east_waypt_survey,station_1,0
1700816079.049805,3,east_waypt_survey,station_1,0
1700816079.300014,3,east_waypt_survey,station_1,0
1700816079.300100,3,east_waypt_survey,station_1,0
1700816079.550389,3,east_waypt_survey,station_1,0
1700816079.550616,3,east_waypt_survey,station_1,0
1700816079.800986,3,east_waypt_survey,station_1,0
1700816079.801166,3,east_waypt_survey,station_1,0
1700816080.051514,3,east_waypt_survey,station_1,0
1700816080.051594,3,east_waypt_survey,station_1,0
1700816080.301932,3,east_waypt_survey,station_1,0
1700816080.302114,3,east_waypt_survey,station_1,0
1700816080.552418,3,east_waypt_survey,station_1,0
1700816080.552715,3,east_waypt_survey,station_1,0
1700816080.803106,3,east_waypt_survey,station_1,0
1700816080.803303,3,east_waypt_survey,station_1,0
1700816081.053588,3,east_waypt_survey,station_1,0
1700816081.053657,3,east_waypt_survey,station_1,0
1700816081.304038,3,east_waypt_survey,station_1,0
1700816081.304277,3,east_waypt_survey,station_1,0
1700816081.554711,3,east_waypt_survey,station_1,0
1700816081.554910,3,east_waypt_survey,station_1,0
1700816081.805324,3,east_waypt_survey,station_1,0
1700816081.805528,3,east_waypt_survey,station_1,0
1700816082.055838,3,east_waypt_survey,station_1,0
1700816082.055917,3,east_waypt_survey,station_1,0
1700816082.306331,3,east_waypt_survey,station_1,0
1700816082.306531,3,east_waypt_survey,station_1,0
1700816082.556876,3,east_waypt_survey,station_1,0
1700816082.557070,3,east_waypt_survey,station_1,0
1700816082.807561,3,east_waypt_survey,station_1,0
1700816082.807743,3,east_waypt_survey,station_1,0
1700816083.058154,3,east_waypt_survey,station_1,0
1700816083.058260,3,east_waypt_survey,station_1,0
1700816083.308611,3,east_waypt_survey,station_1,0
1700816083.308806,3,east_waypt_survey,station_1,0
1700816083.559237,3,east_waypt_survey,station_1,0
1700816083.559519,3,east_waypt_survey,station_1,0
1700816083.810050,3,east_waypt_survey,station_1,0
1700816083.810269,3,east_waypt_survey,station_1,0
1700816084.060612,3,east_waypt_survey,station_1,0
1700816084.060716,3,east_waypt_survey,station_1,0
1700816084.311167,3,east_waypt_survey,station_1,0
1700816084.311391,3,east_waypt_survey,station_1,0
1700816084.561819,3,east_waypt_survey,station_1,0
1700816084.562016,3,east_waypt_survey,station_1,0
1700816084.812393,3,east_waypt_survey,station_1,0
1700816084.812579,3,east_waypt_survey,station_1,0
1700816085.063035,3,east_waypt_survey,station_1,0
1700816085.063119,3,east_waypt_survey,station_1,0
1700816085.313567,3,east_waypt_survey,station_1,0
1700816085.313751,3,east_waypt_survey,station_1,0
1700816085.564039,3,east_waypt_survey,station_1,0
1700816085.564216,3,east_waypt_survey,station_1,0
1700816085.814542,3,east_waypt_survey,station_1,0
1700816085.814643,3,east_waypt_survey,station_1,0
1700816086.064897,3,east_waypt_survey,station_2,0
1700816086.064967,3,east_waypt_survey,station_2,0
1700816086.315306,3,east_waypt_survey,station_2,0
1700816086.315453,3,east_waypt_survey,station_2,0
1700816086.565798,3,east_waypt_survey,station_2,0
1700816086.565946,3,east_waypt_survey,station_2,0
1700816086.816338,3,east_waypt_survey,station_2,0
1700816086.816560,3,east_waypt_survey,station_2,0
1700816087.066878,3,east_waypt_survey,station_2,0
1700816087.066960,3,east_waypt_survey,station_2,0
1700816087.317274,3,east_waypt_survey,station_2,0
1700816087.317479,3,east_waypt_survey,station_2,0
1700816087.567740,3,east_waypt_survey,station_2,0
1700816087.567928,3,east_waypt_survey,station_2,0
1700816087.818408,3,east_waypt_survey,station_2,0
1700816087.818599,3,east_waypt_survey,station_2,0
1700816088.069017,3,east_waypt_survey,station_2,0
1700816088.069118,3,east_waypt_survey,station_2,0
1700816088.319436,3,east_waypt_survey,station_2,0
1700816088.319644,3,east_waypt_survey,station_2,0

View File

@@ -0,0 +1,676 @@
stamp,desired_heading,desired_speed,desired_depth
1700816021.444746,0.000000,0.000000,0.000000
1700816021.444781,0.000000,0.000000,0.000000
1700816021.444789,0.000000,0.000000,0.000000
1700816021.444797,0.000000,0.000000,0.000000
1700816021.444805,0.000000,0.000000,0.000000
1700816021.444812,0.000000,0.000000,0.000000
1700816032.459279,0.000000,0.000000,10.000000
1700816032.459291,0.000000,3.000000,10.000000
1700816032.459300,321.000000,3.000000,10.000000
1700816032.709816,321.000000,3.000000,10.000000
1700816032.709824,321.000000,3.000000,10.000000
1700816032.709829,321.000000,3.000000,10.000000
1700816032.960202,321.000000,3.000000,10.000000
1700816032.960213,321.000000,3.000000,10.000000
1700816032.960222,322.000000,3.000000,10.000000
1700816033.210611,322.000000,3.000000,10.000000
1700816033.210622,322.000000,3.000000,10.000000
1700816033.210631,322.000000,3.000000,10.000000
1700816033.461126,322.000000,3.000000,10.000000
1700816033.461137,322.000000,3.000000,10.000000
1700816033.461145,322.000000,3.000000,10.000000
1700816033.711696,322.000000,3.000000,10.000000
1700816033.711714,322.000000,3.000000,10.000000
1700816033.711728,322.000000,3.000000,10.000000
1700816033.962214,322.000000,3.000000,10.000000
1700816033.962225,322.000000,3.000000,10.000000
1700816033.962233,322.000000,3.000000,10.000000
1700816034.212545,322.000000,3.000000,10.000000
1700816034.212556,322.000000,3.000000,10.000000
1700816034.212564,322.000000,3.000000,10.000000
1700816034.463077,322.000000,3.000000,10.000000
1700816034.463088,322.000000,3.000000,10.000000
1700816034.463099,323.000000,3.000000,10.000000
1700816034.754414,323.000000,3.000000,10.000000
1700816034.754425,323.000000,3.000000,10.000000
1700816034.754432,323.000000,3.000000,10.000000
1700816034.963834,323.000000,3.000000,10.000000
1700816034.963846,323.000000,3.000000,10.000000
1700816034.963855,323.000000,3.000000,10.000000
1700816035.214238,323.000000,3.000000,10.000000
1700816035.214248,323.000000,3.000000,10.000000
1700816035.214257,323.000000,3.000000,10.000000
1700816035.464690,323.000000,3.000000,10.000000
1700816035.464702,323.000000,3.000000,10.000000
1700816035.464711,323.000000,3.000000,10.000000
1700816035.715286,323.000000,3.000000,10.000000
1700816035.715290,323.000000,3.000000,10.000000
1700816035.715294,323.000000,3.000000,10.000000
1700816035.965608,323.000000,3.000000,10.000000
1700816035.965612,323.000000,3.000000,10.000000
1700816035.965616,324.000000,3.000000,10.000000
1700816036.215881,324.000000,3.000000,10.000000
1700816036.215892,324.000000,3.000000,10.000000
1700816036.215901,324.000000,3.000000,10.000000
1700816036.466451,324.000000,3.000000,10.000000
1700816036.466468,324.000000,3.000000,10.000000
1700816036.466481,324.000000,3.000000,10.000000
1700816036.717051,324.000000,3.000000,10.000000
1700816036.717063,324.000000,3.000000,10.000000
1700816036.717072,324.000000,3.000000,10.000000
1700816036.967553,324.000000,3.000000,10.000000
1700816036.967565,324.000000,3.000000,10.000000
1700816036.967574,324.000000,3.000000,10.000000
1700816037.217969,324.000000,3.000000,10.000000
1700816037.217989,324.000000,3.000000,10.000000
1700816037.218004,324.000000,3.000000,10.000000
1700816037.468538,324.000000,3.000000,10.000000
1700816037.468549,324.000000,3.000000,10.000000
1700816037.468559,324.000000,3.000000,10.000000
1700816037.719160,324.000000,3.000000,10.000000
1700816037.719170,324.000000,3.000000,10.000000
1700816037.719179,324.000000,3.000000,10.000000
1700816037.969751,324.000000,3.000000,10.000000
1700816037.969767,324.000000,3.000000,10.000000
1700816037.969779,324.000000,3.000000,10.000000
1700816038.220244,324.000000,3.000000,10.000000
1700816038.220255,324.000000,3.000000,10.000000
1700816038.220263,324.000000,3.000000,10.000000
1700816038.470819,324.000000,3.000000,10.000000
1700816038.470830,324.000000,3.000000,10.000000
1700816038.470838,324.000000,3.000000,10.000000
1700816038.721418,324.000000,3.000000,10.000000
1700816038.721428,324.000000,3.000000,10.000000
1700816038.721436,324.000000,3.000000,10.000000
1700816038.971899,324.000000,3.000000,10.000000
1700816038.971909,324.000000,3.000000,10.000000
1700816038.971917,324.000000,3.000000,10.000000
1700816039.222275,324.000000,3.000000,10.000000
1700816039.222287,324.000000,3.000000,10.000000
1700816039.222296,324.000000,3.000000,10.000000
1700816039.472829,324.000000,3.000000,10.000000
1700816039.472841,324.000000,3.000000,10.000000
1700816039.472850,325.000000,3.000000,10.000000
1700816039.723354,325.000000,3.000000,10.000000
1700816039.723364,325.000000,3.000000,10.000000
1700816039.723372,325.000000,3.000000,10.000000
1700816039.973979,325.000000,3.000000,10.000000
1700816039.973991,325.000000,3.000000,10.000000
1700816039.974000,325.000000,3.000000,10.000000
1700816040.224378,325.000000,3.000000,10.000000
1700816040.224390,325.000000,3.000000,10.000000
1700816040.224399,325.000000,3.000000,10.000000
1700816040.474922,325.000000,3.000000,10.000000
1700816040.474932,325.000000,3.000000,10.000000
1700816040.474941,325.000000,3.000000,10.000000
1700816040.725522,325.000000,3.000000,10.000000
1700816040.725533,325.000000,3.000000,10.000000
1700816040.725541,325.000000,3.000000,10.000000
1700816040.975952,325.000000,3.000000,10.000000
1700816040.975964,325.000000,3.000000,10.000000
1700816040.975972,325.000000,3.000000,10.000000
1700816041.226379,325.000000,3.000000,10.000000
1700816041.226390,325.000000,3.000000,10.000000
1700816041.226399,325.000000,3.000000,10.000000
1700816041.476987,325.000000,3.000000,10.000000
1700816041.476997,325.000000,3.000000,10.000000
1700816041.477006,325.000000,3.000000,10.000000
1700816041.727688,325.000000,3.000000,10.000000
1700816041.727699,325.000000,3.000000,10.000000
1700816041.727710,325.000000,3.000000,10.000000
1700816041.978334,325.000000,3.000000,10.000000
1700816041.978345,325.000000,3.000000,10.000000
1700816041.978353,325.000000,3.000000,10.000000
1700816042.228754,325.000000,3.000000,10.000000
1700816042.228771,325.000000,3.000000,10.000000
1700816042.228785,325.000000,3.000000,10.000000
1700816042.479341,325.000000,3.000000,10.000000
1700816042.479352,325.000000,3.000000,10.000000
1700816042.479361,325.000000,3.000000,10.000000
1700816042.730012,325.000000,3.000000,10.000000
1700816042.730023,325.000000,3.000000,10.000000
1700816042.730031,325.000000,3.000000,10.000000
1700816042.980473,325.000000,3.000000,10.000000
1700816042.980484,325.000000,3.000000,10.000000
1700816042.980493,325.000000,3.000000,10.000000
1700816043.230942,325.000000,3.000000,10.000000
1700816043.230954,325.000000,3.000000,10.000000
1700816043.230963,325.000000,3.000000,10.000000
1700816043.481395,325.000000,3.000000,10.000000
1700816043.481406,325.000000,3.000000,10.000000
1700816043.481416,325.000000,3.000000,10.000000
1700816043.731979,325.000000,3.000000,10.000000
1700816043.731991,325.000000,3.000000,10.000000
1700816043.732001,325.000000,3.000000,10.000000
1700816043.982577,325.000000,3.000000,10.000000
1700816043.982589,325.000000,3.000000,10.000000
1700816043.982598,325.000000,3.000000,10.000000
1700816044.232961,325.000000,3.000000,10.000000
1700816044.232973,325.000000,3.000000,10.000000
1700816044.232982,325.000000,3.000000,10.000000
1700816044.483407,325.000000,3.000000,10.000000
1700816044.483419,325.000000,3.000000,10.000000
1700816044.483428,325.000000,3.000000,10.000000
1700816044.734015,325.000000,3.000000,10.000000
1700816044.734026,325.000000,3.000000,10.000000
1700816044.734035,325.000000,3.000000,10.000000
1700816044.984496,325.000000,3.000000,10.000000
1700816044.984507,325.000000,3.000000,10.000000
1700816044.984516,325.000000,3.000000,10.000000
1700816045.234981,325.000000,3.000000,10.000000
1700816045.234992,325.000000,3.000000,10.000000
1700816045.235001,325.000000,3.000000,10.000000
1700816045.485591,325.000000,3.000000,10.000000
1700816045.485602,325.000000,3.000000,10.000000
1700816045.485611,325.000000,3.000000,10.000000
1700816045.736084,325.000000,3.000000,10.000000
1700816045.736096,325.000000,3.000000,10.000000
1700816045.736105,325.000000,3.000000,10.000000
1700816045.986680,325.000000,3.000000,10.000000
1700816045.986692,325.000000,3.000000,10.000000
1700816045.986700,325.000000,3.000000,10.000000
1700816046.237046,325.000000,3.000000,10.000000
1700816046.237058,325.000000,3.000000,10.000000
1700816046.237068,325.000000,3.000000,10.000000
1700816046.487552,325.000000,3.000000,10.000000
1700816046.487568,325.000000,3.000000,10.000000
1700816046.487583,325.000000,3.000000,10.000000
1700816046.738198,325.000000,3.000000,10.000000
1700816046.738214,325.000000,3.000000,10.000000
1700816046.738229,325.000000,3.000000,10.000000
1700816047.054509,325.000000,3.000000,10.000000
1700816047.054520,325.000000,3.000000,10.000000
1700816047.054529,325.000000,3.000000,10.000000
1700816047.238931,325.000000,3.000000,10.000000
1700816047.238947,325.000000,3.000000,10.000000
1700816047.238959,325.000000,3.000000,10.000000
1700816047.489383,325.000000,3.000000,10.000000
1700816047.489391,325.000000,3.000000,10.000000
1700816047.489395,325.000000,3.000000,10.000000
1700816047.739886,325.000000,3.000000,10.000000
1700816047.739897,325.000000,3.000000,10.000000
1700816047.739906,325.000000,3.000000,10.000000
1700816047.990371,325.000000,3.000000,10.000000
1700816047.990386,325.000000,3.000000,10.000000
1700816047.990399,325.000000,3.000000,10.000000
1700816048.240792,325.000000,3.000000,10.000000
1700816048.240807,325.000000,3.000000,10.000000
1700816048.240821,325.000000,3.000000,10.000000
1700816048.491485,325.000000,3.000000,10.000000
1700816048.491507,325.000000,3.000000,10.000000
1700816048.491523,325.000000,3.000000,10.000000
1700816048.741943,325.000000,3.000000,10.000000
1700816048.741954,325.000000,3.000000,10.000000
1700816048.741962,325.000000,3.000000,10.000000
1700816048.992371,325.000000,3.000000,10.000000
1700816048.992382,325.000000,3.000000,10.000000
1700816048.992395,325.000000,3.000000,10.000000
1700816049.242791,325.000000,3.000000,10.000000
1700816049.242808,325.000000,3.000000,10.000000
1700816049.242821,325.000000,3.000000,10.000000
1700816049.493388,325.000000,3.000000,10.000000
1700816049.493397,325.000000,3.000000,10.000000
1700816049.493405,325.000000,3.000000,10.000000
1700816049.743781,325.000000,3.000000,10.000000
1700816049.743792,325.000000,3.000000,10.000000
1700816049.743800,325.000000,3.000000,10.000000
1700816049.994209,325.000000,3.000000,10.000000
1700816049.994220,325.000000,3.000000,10.000000
1700816049.994229,325.000000,3.000000,10.000000
1700816050.244578,325.000000,3.000000,10.000000
1700816050.244588,325.000000,3.000000,10.000000
1700816050.244597,325.000000,3.000000,10.000000
1700816050.495164,325.000000,3.000000,10.000000
1700816050.495180,325.000000,3.000000,10.000000
1700816050.495196,325.000000,3.000000,10.000000
1700816050.745586,325.000000,3.000000,10.000000
1700816050.745597,325.000000,3.000000,10.000000
1700816050.745606,325.000000,3.000000,10.000000
1700816050.995997,325.000000,3.000000,10.000000
1700816050.996009,325.000000,3.000000,10.000000
1700816050.996019,325.000000,3.000000,10.000000
1700816051.246328,325.000000,3.000000,10.000000
1700816051.246338,325.000000,3.000000,10.000000
1700816051.246347,325.000000,3.000000,10.000000
1700816051.496943,325.000000,3.000000,10.000000
1700816051.496953,325.000000,3.000000,10.000000
1700816051.496962,325.000000,3.000000,10.000000
1700816051.747521,325.000000,3.000000,10.000000
1700816051.747532,325.000000,3.000000,10.000000
1700816051.747541,325.000000,3.000000,10.000000
1700816051.998130,325.000000,3.000000,10.000000
1700816051.998141,325.000000,3.000000,10.000000
1700816051.998150,325.000000,3.000000,10.000000
1700816052.248522,325.000000,3.000000,10.000000
1700816052.248532,325.000000,3.000000,10.000000
1700816052.248541,325.000000,3.000000,10.000000
1700816052.499053,325.000000,3.000000,10.000000
1700816052.499062,325.000000,3.000000,10.000000
1700816052.499070,325.000000,3.000000,10.000000
1700816052.749564,325.000000,3.000000,10.000000
1700816052.749580,325.000000,3.000000,10.000000
1700816052.749592,325.000000,3.000000,10.000000
1700816053.000062,325.000000,3.000000,10.000000
1700816053.000071,325.000000,3.000000,10.000000
1700816053.000078,325.000000,3.000000,10.000000
1700816053.250410,325.000000,3.000000,10.000000
1700816053.250420,325.000000,3.000000,10.000000
1700816053.250428,325.000000,3.000000,10.000000
1700816053.500998,325.000000,3.000000,10.000000
1700816053.501008,325.000000,3.000000,10.000000
1700816053.501016,325.000000,3.000000,10.000000
1700816053.751424,325.000000,3.000000,10.000000
1700816053.751444,325.000000,3.000000,10.000000
1700816053.751453,325.000000,3.000000,10.000000
1700816054.001954,325.000000,3.000000,10.000000
1700816054.001965,325.000000,3.000000,10.000000
1700816054.001973,325.000000,3.000000,10.000000
1700816054.252330,325.000000,3.000000,10.000000
1700816054.252342,325.000000,3.000000,10.000000
1700816054.252351,325.000000,3.000000,10.000000
1700816054.502925,325.000000,3.000000,10.000000
1700816054.502941,325.000000,3.000000,10.000000
1700816054.502956,325.000000,3.000000,10.000000
1700816054.753346,325.000000,3.000000,10.000000
1700816054.753361,325.000000,3.000000,10.000000
1700816054.753374,325.000000,3.000000,10.000000
1700816055.003856,325.000000,3.000000,10.000000
1700816055.003931,325.000000,3.000000,10.000000
1700816055.003947,325.000000,3.000000,10.000000
1700816055.254319,325.000000,3.000000,10.000000
1700816055.254331,325.000000,3.000000,10.000000
1700816055.254339,325.000000,3.000000,10.000000
1700816055.504859,325.000000,3.000000,10.000000
1700816055.504875,325.000000,3.000000,10.000000
1700816055.504890,325.000000,3.000000,10.000000
1700816055.755360,325.000000,3.000000,10.000000
1700816055.755370,325.000000,3.000000,10.000000
1700816055.755387,325.000000,3.000000,10.000000
1700816056.005954,325.000000,3.000000,10.000000
1700816056.005966,325.000000,3.000000,10.000000
1700816056.005975,325.000000,3.000000,10.000000
1700816056.256343,325.000000,3.000000,10.000000
1700816056.256353,325.000000,3.000000,10.000000
1700816056.256361,325.000000,3.000000,10.000000
1700816056.506913,325.000000,3.000000,10.000000
1700816056.506923,325.000000,3.000000,10.000000
1700816056.506931,325.000000,3.000000,10.000000
1700816056.757424,325.000000,3.000000,10.000000
1700816056.757436,325.000000,3.000000,10.000000
1700816056.757446,325.000000,3.000000,10.000000
1700816057.007974,325.000000,3.000000,10.000000
1700816057.007985,325.000000,3.000000,10.000000
1700816057.007993,325.000000,3.000000,10.000000
1700816057.258352,325.000000,3.000000,10.000000
1700816057.258363,325.000000,3.000000,10.000000
1700816057.258371,325.000000,3.000000,10.000000
1700816057.508925,325.000000,3.000000,10.000000
1700816057.508935,325.000000,3.000000,10.000000
1700816057.508943,325.000000,3.000000,10.000000
1700816057.759269,325.000000,3.000000,10.000000
1700816057.759273,325.000000,3.000000,10.000000
1700816057.759275,325.000000,3.000000,10.000000
1700816058.009537,325.000000,3.000000,10.000000
1700816058.009541,325.000000,3.000000,10.000000
1700816058.009544,325.000000,3.000000,10.000000
1700816058.259747,325.000000,3.000000,10.000000
1700816058.259752,325.000000,3.000000,10.000000
1700816058.259755,325.000000,3.000000,10.000000
1700816058.510224,325.000000,3.000000,10.000000
1700816058.510234,325.000000,3.000000,10.000000
1700816058.510241,325.000000,3.000000,10.000000
1700816058.760601,325.000000,3.000000,10.000000
1700816058.760611,325.000000,3.000000,10.000000
1700816058.760619,325.000000,3.000000,10.000000
1700816059.011020,325.000000,3.000000,10.000000
1700816059.011031,325.000000,3.000000,10.000000
1700816059.011040,325.000000,3.000000,10.000000
1700816059.261311,325.000000,3.000000,10.000000
1700816059.261316,325.000000,3.000000,10.000000
1700816059.261319,325.000000,3.000000,10.000000
1700816059.511945,325.000000,3.000000,10.000000
1700816059.511955,325.000000,3.000000,10.000000
1700816059.511963,325.000000,3.000000,10.000000
1700816059.762508,325.000000,3.000000,10.000000
1700816059.762518,325.000000,3.000000,10.000000
1700816059.762527,325.000000,3.000000,10.000000
1700816060.012919,325.000000,3.000000,10.000000
1700816060.012924,325.000000,3.000000,10.000000
1700816060.012928,325.000000,3.000000,10.000000
1700816060.263175,325.000000,3.000000,10.000000
1700816060.263179,325.000000,3.000000,10.000000
1700816060.263182,325.000000,3.000000,10.000000
1700816060.513762,325.000000,3.000000,10.000000
1700816060.513772,325.000000,3.000000,10.000000
1700816060.513780,325.000000,3.000000,10.000000
1700816060.764138,325.000000,3.000000,10.000000
1700816060.764148,325.000000,3.000000,10.000000
1700816060.764158,325.000000,3.000000,10.000000
1700816061.014497,325.000000,3.000000,10.000000
1700816061.014502,325.000000,3.000000,10.000000
1700816061.014506,325.000000,3.000000,10.000000
1700816061.264854,325.000000,3.000000,10.000000
1700816061.264866,325.000000,3.000000,10.000000
1700816061.264875,325.000000,3.000000,10.000000
1700816061.515412,325.000000,3.000000,10.000000
1700816061.515421,325.000000,3.000000,10.000000
1700816061.515430,325.000000,3.000000,10.000000
1700816061.769312,325.000000,3.000000,10.000000
1700816061.769323,325.000000,3.000000,10.000000
1700816061.769333,325.000000,3.000000,10.000000
1700816062.016774,325.000000,3.000000,10.000000
1700816062.016785,325.000000,3.000000,10.000000
1700816062.016805,325.000000,3.000000,10.000000
1700816062.267121,325.000000,3.000000,10.000000
1700816062.267131,325.000000,3.000000,10.000000
1700816062.267138,325.000000,3.000000,10.000000
1700816062.517793,325.000000,3.000000,10.000000
1700816062.517811,325.000000,3.000000,10.000000
1700816062.517827,325.000000,3.000000,10.000000
1700816062.768133,325.000000,3.000000,10.000000
1700816062.768138,325.000000,3.000000,10.000000
1700816062.768142,325.000000,3.000000,10.000000
1700816063.018435,325.000000,3.000000,10.000000
1700816063.018445,325.000000,3.000000,10.000000
1700816063.018453,325.000000,3.000000,10.000000
1700816063.268807,325.000000,3.000000,10.000000
1700816063.268822,325.000000,3.000000,10.000000
1700816063.268835,325.000000,3.000000,10.000000
1700816063.519471,325.000000,3.000000,10.000000
1700816063.519489,325.000000,3.000000,10.000000
1700816063.519500,325.000000,3.000000,10.000000
1700816063.769996,325.000000,3.000000,10.000000
1700816063.770007,325.000000,3.000000,10.000000
1700816063.770016,325.000000,3.000000,10.000000
1700816064.020453,325.000000,3.000000,10.000000
1700816064.020464,325.000000,3.000000,10.000000
1700816064.020471,325.000000,3.000000,10.000000
1700816064.270827,325.000000,3.000000,10.000000
1700816064.270839,325.000000,3.000000,10.000000
1700816064.270848,325.000000,3.000000,10.000000
1700816064.521371,325.000000,3.000000,10.000000
1700816064.521383,325.000000,3.000000,10.000000
1700816064.521401,325.000000,3.000000,10.000000
1700816064.771743,325.000000,3.000000,10.000000
1700816064.771754,325.000000,3.000000,10.000000
1700816064.771762,325.000000,3.000000,10.000000
1700816065.022295,325.000000,3.000000,10.000000
1700816065.022306,325.000000,3.000000,10.000000
1700816065.022314,325.000000,3.000000,10.000000
1700816065.272688,325.000000,3.000000,10.000000
1700816065.272698,325.000000,3.000000,10.000000
1700816065.272706,325.000000,3.000000,10.000000
1700816065.523202,325.000000,3.000000,10.000000
1700816065.523211,325.000000,3.000000,10.000000
1700816065.523219,325.000000,3.000000,10.000000
1700816065.773670,325.000000,3.000000,10.000000
1700816065.773682,325.000000,3.000000,10.000000
1700816065.773691,325.000000,3.000000,10.000000
1700816066.024199,325.000000,3.000000,10.000000
1700816066.024218,325.000000,3.000000,10.000000
1700816066.024233,325.000000,3.000000,10.000000
1700816066.274590,325.000000,3.000000,10.000000
1700816066.274601,325.000000,3.000000,10.000000
1700816066.274609,325.000000,3.000000,10.000000
1700816066.525160,325.000000,3.000000,10.000000
1700816066.525170,325.000000,3.000000,10.000000
1700816066.525178,325.000000,3.000000,10.000000
1700816066.775592,325.000000,3.000000,10.000000
1700816066.775603,325.000000,3.000000,10.000000
1700816066.775611,325.000000,3.000000,10.000000
1700816067.026055,325.000000,3.000000,10.000000
1700816067.026065,325.000000,3.000000,10.000000
1700816067.026073,325.000000,3.000000,10.000000
1700816067.276427,325.000000,3.000000,10.000000
1700816067.276439,325.000000,3.000000,10.000000
1700816067.276448,325.000000,3.000000,10.000000
1700816067.527138,325.000000,3.000000,10.000000
1700816067.527147,325.000000,3.000000,10.000000
1700816067.527156,325.000000,3.000000,10.000000
1700816067.777615,325.000000,3.000000,10.000000
1700816067.777622,325.000000,3.000000,10.000000
1700816067.777629,325.000000,3.000000,10.000000
1700816068.028024,325.000000,3.000000,10.000000
1700816068.028036,325.000000,3.000000,10.000000
1700816068.028044,325.000000,3.000000,10.000000
1700816068.278438,325.000000,3.000000,10.000000
1700816068.278449,325.000000,3.000000,10.000000
1700816068.278457,325.000000,3.000000,10.000000
1700816068.528976,325.000000,3.000000,10.000000
1700816068.528985,325.000000,3.000000,10.000000
1700816068.528997,325.000000,3.000000,10.000000
1700816068.779475,325.000000,3.000000,10.000000
1700816068.779494,325.000000,3.000000,10.000000
1700816068.779508,325.000000,3.000000,10.000000
1700816069.029946,325.000000,3.000000,10.000000
1700816069.029958,325.000000,3.000000,10.000000
1700816069.029967,325.000000,3.000000,10.000000
1700816069.280365,325.000000,3.000000,10.000000
1700816069.280376,325.000000,3.000000,10.000000
1700816069.280384,325.000000,3.000000,10.000000
1700816069.531021,325.000000,3.000000,10.000000
1700816069.531046,325.000000,3.000000,10.000000
1700816069.531061,325.000000,3.000000,10.000000
1700816069.781636,325.000000,3.000000,10.000000
1700816069.781647,325.000000,3.000000,10.000000
1700816069.781655,325.000000,3.000000,10.000000
1700816070.032118,325.000000,3.000000,10.000000
1700816070.032129,325.000000,3.000000,10.000000
1700816070.032137,325.000000,3.000000,10.000000
1700816070.282598,325.000000,3.000000,10.000000
1700816070.282608,325.000000,3.000000,10.000000
1700816070.282625,325.000000,3.000000,10.000000
1700816070.533321,325.000000,3.000000,10.000000
1700816070.533335,325.000000,3.000000,10.000000
1700816070.533346,325.000000,3.000000,10.000000
1700816070.783767,325.000000,3.000000,10.000000
1700816070.783783,325.000000,3.000000,10.000000
1700816070.783796,325.000000,3.000000,10.000000
1700816071.034435,325.000000,3.000000,10.000000
1700816071.034451,325.000000,3.000000,10.000000
1700816071.034465,325.000000,3.000000,10.000000
1700816071.284898,325.000000,3.000000,10.000000
1700816071.284912,325.000000,3.000000,10.000000
1700816071.284925,325.000000,3.000000,10.000000
1700816071.535593,325.000000,3.000000,10.000000
1700816071.535602,325.000000,3.000000,10.000000
1700816071.535610,325.000000,3.000000,10.000000
1700816071.786158,325.000000,3.000000,10.000000
1700816071.786169,325.000000,3.000000,10.000000
1700816071.786178,325.000000,3.000000,10.000000
1700816072.036656,325.000000,3.000000,10.000000
1700816072.036668,325.000000,3.000000,10.000000
1700816072.036677,325.000000,3.000000,10.000000
1700816072.287214,325.000000,3.000000,10.000000
1700816072.287226,325.000000,3.000000,10.000000
1700816072.287235,325.000000,3.000000,10.000000
1700816072.537712,325.000000,3.000000,10.000000
1700816072.537716,325.000000,3.000000,10.000000
1700816072.537719,325.000000,3.000000,10.000000
1700816072.788030,325.000000,3.000000,10.000000
1700816072.788040,325.000000,3.000000,10.000000
1700816072.788048,325.000000,3.000000,10.000000
1700816073.038438,325.000000,3.000000,10.000000
1700816073.038445,325.000000,3.000000,10.000000
1700816073.038451,325.000000,3.000000,10.000000
1700816073.288801,325.000000,3.000000,10.000000
1700816073.288813,325.000000,3.000000,10.000000
1700816073.288822,325.000000,3.000000,10.000000
1700816073.539535,325.000000,3.000000,10.000000
1700816073.539545,325.000000,3.000000,10.000000
1700816073.539554,325.000000,3.000000,10.000000
1700816073.790084,325.000000,3.000000,10.000000
1700816073.790095,325.000000,3.000000,10.000000
1700816073.790103,325.000000,3.000000,10.000000
1700816074.040544,325.000000,3.000000,10.000000
1700816074.040555,325.000000,3.000000,10.000000
1700816074.040564,325.000000,3.000000,10.000000
1700816074.291062,325.000000,3.000000,10.000000
1700816074.291073,325.000000,3.000000,10.000000
1700816074.291082,325.000000,3.000000,10.000000
1700816074.541712,325.000000,3.000000,10.000000
1700816074.541721,325.000000,3.000000,10.000000
1700816074.541729,325.000000,3.000000,10.000000
1700816074.792087,325.000000,3.000000,10.000000
1700816074.792099,325.000000,3.000000,10.000000
1700816074.792108,325.000000,3.000000,10.000000
1700816075.042659,325.000000,3.000000,10.000000
1700816075.042669,325.000000,3.000000,10.000000
1700816075.042678,325.000000,3.000000,10.000000
1700816075.293030,325.000000,3.000000,10.000000
1700816075.293041,325.000000,3.000000,10.000000
1700816075.293049,325.000000,3.000000,10.000000
1700816075.543599,325.000000,3.000000,10.000000
1700816075.543608,325.000000,3.000000,10.000000
1700816075.543616,325.000000,3.000000,10.000000
1700816075.794116,325.000000,3.000000,10.000000
1700816075.794127,325.000000,3.000000,10.000000
1700816075.794135,325.000000,3.000000,10.000000
1700816076.044537,325.000000,3.000000,10.000000
1700816076.044547,325.000000,3.000000,10.000000
1700816076.044555,325.000000,3.000000,10.000000
1700816076.295007,325.000000,3.000000,10.000000
1700816076.295017,325.000000,3.000000,10.000000
1700816076.295025,325.000000,3.000000,10.000000
1700816076.545466,325.000000,3.000000,10.000000
1700816076.545469,325.000000,3.000000,10.000000
1700816076.545471,325.000000,3.000000,10.000000
1700816076.795725,325.000000,3.000000,10.000000
1700816076.795731,325.000000,3.000000,10.000000
1700816076.795736,325.000000,3.000000,10.000000
1700816077.046155,325.000000,3.000000,10.000000
1700816077.046166,325.000000,3.000000,10.000000
1700816077.046175,325.000000,3.000000,10.000000
1700816077.296450,325.000000,3.000000,10.000000
1700816077.296455,325.000000,3.000000,10.000000
1700816077.296460,325.000000,3.000000,10.000000
1700816077.546914,325.000000,3.000000,10.000000
1700816077.546922,325.000000,3.000000,10.000000
1700816077.546929,325.000000,3.000000,10.000000
1700816077.797399,325.000000,3.000000,10.000000
1700816077.797409,325.000000,3.000000,10.000000
1700816077.797417,325.000000,3.000000,10.000000
1700816078.047868,325.000000,3.000000,10.000000
1700816078.047881,325.000000,3.000000,10.000000
1700816078.047890,325.000000,3.000000,10.000000
1700816078.298367,325.000000,3.000000,10.000000
1700816078.298377,325.000000,3.000000,10.000000
1700816078.298386,325.000000,3.000000,10.000000
1700816078.549007,325.000000,3.000000,10.000000
1700816078.549023,325.000000,3.000000,10.000000
1700816078.549034,325.000000,3.000000,10.000000
1700816078.799382,325.000000,3.000000,10.000000
1700816078.799385,325.000000,3.000000,10.000000
1700816078.799388,325.000000,3.000000,10.000000
1700816079.049766,325.000000,3.000000,10.000000
1700816079.049777,325.000000,3.000000,10.000000
1700816079.049785,325.000000,3.000000,10.000000
1700816079.300029,325.000000,3.000000,10.000000
1700816079.300033,325.000000,3.000000,10.000000
1700816079.300036,325.000000,3.000000,10.000000
1700816079.550552,325.000000,3.000000,10.000000
1700816079.550568,325.000000,3.000000,10.000000
1700816079.550582,325.000000,3.000000,10.000000
1700816079.801020,325.000000,3.000000,10.000000
1700816079.801032,325.000000,3.000000,10.000000
1700816079.801041,325.000000,3.000000,10.000000
1700816080.051550,325.000000,3.000000,10.000000
1700816080.051562,325.000000,3.000000,10.000000
1700816080.051572,325.000000,3.000000,10.000000
1700816080.301965,325.000000,3.000000,10.000000
1700816080.301981,325.000000,3.000000,10.000000
1700816080.301994,325.000000,3.000000,10.000000
1700816080.552642,325.000000,3.000000,10.000000
1700816080.552660,325.000000,3.000000,10.000000
1700816080.552677,325.000000,3.000000,10.000000
1700816080.803137,325.000000,3.000000,10.000000
1700816080.803148,325.000000,3.000000,10.000000
1700816080.803158,325.000000,3.000000,10.000000
1700816081.053615,325.000000,3.000000,10.000000
1700816081.053628,325.000000,3.000000,10.000000
1700816081.053637,325.000000,3.000000,10.000000
1700816081.304075,325.000000,3.000000,10.000000
1700816081.304092,325.000000,3.000000,10.000000
1700816081.304106,325.000000,3.000000,10.000000
1700816081.554872,325.000000,3.000000,10.000000
1700816081.554881,325.000000,3.000000,10.000000
1700816081.554890,325.000000,3.000000,10.000000
1700816081.805366,325.000000,3.000000,10.000000
1700816081.805377,325.000000,3.000000,10.000000
1700816081.805386,325.000000,3.000000,10.000000
1700816082.055875,325.000000,3.000000,10.000000
1700816082.055886,325.000000,3.000000,10.000000
1700816082.055895,325.000000,3.000000,10.000000
1700816082.306369,325.000000,3.000000,10.000000
1700816082.306381,325.000000,3.000000,10.000000
1700816082.306390,325.000000,3.000000,10.000000
1700816082.557029,325.000000,3.000000,10.000000
1700816082.557040,325.000000,3.000000,10.000000
1700816082.557048,325.000000,3.000000,10.000000
1700816082.807602,325.000000,3.000000,10.000000
1700816082.807614,325.000000,3.000000,10.000000
1700816082.807623,326.000000,3.000000,10.000000
1700816083.058199,326.000000,3.000000,10.000000
1700816083.058215,326.000000,3.000000,10.000000
1700816083.058228,326.000000,3.000000,10.000000
1700816083.308648,326.000000,3.000000,10.000000
1700816083.308664,326.000000,3.000000,10.000000
1700816083.308676,326.000000,3.000000,10.000000
1700816083.559426,326.000000,3.000000,10.000000
1700816083.559447,326.000000,3.000000,10.000000
1700816083.559478,326.000000,3.000000,10.000000
1700816083.810092,326.000000,3.000000,10.000000
1700816083.810107,326.000000,3.000000,10.000000
1700816083.810119,326.000000,3.000000,10.000000
1700816084.060652,326.000000,3.000000,10.000000
1700816084.060668,326.000000,3.000000,10.000000
1700816084.060682,326.000000,3.000000,10.000000
1700816084.311210,326.000000,3.000000,10.000000
1700816084.311225,326.000000,3.000000,10.000000
1700816084.311237,326.000000,3.000000,10.000000
1700816084.561977,326.000000,3.000000,10.000000
1700816084.561986,326.000000,3.000000,10.000000
1700816084.561995,326.000000,3.000000,10.000000
1700816084.812434,326.000000,3.000000,10.000000
1700816084.812446,326.000000,3.000000,10.000000
1700816084.812455,326.000000,3.000000,10.000000
1700816085.063076,326.000000,3.000000,10.000000
1700816085.063087,326.000000,3.000000,10.000000
1700816085.063096,326.000000,3.000000,10.000000
1700816085.313616,326.000000,3.000000,10.000000
1700816085.313627,326.000000,3.000000,10.000000
1700816085.313636,326.000000,3.000000,10.000000
1700816085.564179,326.000000,3.000000,10.000000
1700816085.564188,326.000000,3.000000,10.000000
1700816085.564196,326.000000,3.000000,10.000000
1700816086.064928,326.000000,3.000000,0.000000
1700816086.064938,326.000000,0.000000,0.000000
1700816086.064947,0.000000,0.000000,0.000000
1700816086.315334,0.000000,0.000000,8.000000
1700816086.315341,0.000000,5.000000,8.000000
1700816086.315348,17.000000,5.000000,8.000000
1700816086.565913,17.000000,5.000000,8.000000
1700816086.565920,17.000000,5.000000,8.000000
1700816086.565925,18.000000,5.000000,8.000000
1700816086.816377,18.000000,5.000000,8.000000
1700816086.816388,18.000000,5.000000,8.000000
1700816086.816397,18.000000,5.000000,8.000000
1700816087.066920,18.000000,5.000000,8.000000
1700816087.066930,18.000000,5.000000,8.000000
1700816087.066938,18.000000,5.000000,8.000000
1700816087.317311,18.000000,5.000000,8.000000
1700816087.317322,18.000000,5.000000,8.000000
1700816087.317331,19.000000,5.000000,8.000000
1700816087.567888,19.000000,5.000000,8.000000
1700816087.567897,19.000000,5.000000,8.000000
1700816087.567905,19.000000,5.000000,8.000000
1700816087.818444,19.000000,5.000000,8.000000
1700816087.818454,19.000000,5.000000,8.000000
1700816087.818462,19.000000,5.000000,8.000000
1700816088.069058,19.000000,5.000000,8.000000
1700816088.069073,19.000000,5.000000,8.000000
1700816088.069086,20.000000,5.000000,8.000000
1700816088.319483,20.000000,5.000000,8.000000
1700816088.319499,20.000000,5.000000,8.000000
1700816088.319512,20.000000,5.000000,8.000000

View File

@@ -0,0 +1,146 @@
stamp,mode,refLon,refLat,refAlt,curLon,curLat,curAlt,north,east,depth,roll,pitch,yaw,insVX,insVY,insVZ,dvlVX,dvlVY,dvlVZ,height,thrust,light,load,dvl,iridium,batteryVol,batteryLev,batteryTemp
1700816146.379559,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816147.380766,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816148.382141,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816149.383717,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816150.385157,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816151.386511,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,180.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816152.388023,255,-90.330399,50.825298,0.000000,-70.330399,43.825298,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,191.636749,-0.007748,0.005322,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816153.389874,255,-90.330399,50.825298,0.000000,-70.330414,43.825287,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,237.135208,0.010877,-0.014592,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816154.391686,255,-90.330399,50.825298,0.000000,-70.330437,43.825283,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.909088,0.018906,-0.011635,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816155.393302,255,-90.330399,50.825298,0.000000,-70.330467,43.825283,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,286.521332,-0.014174,-0.020472,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816156.395069,255,-90.330399,50.825298,0.000000,-70.330498,43.825294,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,299.539276,-0.026598,0.000335,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816157.396561,255,-90.330399,50.825298,0.000000,-70.330521,43.825306,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,308.094788,0.024663,0.012829,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816158.398296,255,-90.330399,50.825298,0.000000,-70.330551,43.825325,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,313.657440,0.016498,0.023362,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816159.400539,255,-90.330399,50.825298,0.000000,-70.330574,43.825340,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,317.356567,-0.027871,-0.008013,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816160.402489,255,-90.330399,50.825298,0.000000,-70.330597,43.825363,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,320.030548,0.023669,0.017271,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816161.404379,255,-90.330399,50.825298,0.000000,-70.330627,43.825382,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,321.768616,0.011160,-0.027416,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816162.406533,255,-90.330399,50.825298,0.000000,-70.330650,43.825401,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,322.899353,-0.021177,-0.020823,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816163.408771,255,-90.330399,50.825298,0.000000,-70.330666,43.825424,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,323.634125,-0.029799,-0.000296,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816164.410375,255,-90.330399,50.825298,0.000000,-70.330688,43.825447,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.111877,-0.026398,0.014041,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816165.412499,255,-90.330399,50.825298,0.000000,-70.330711,43.825466,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.422455,-0.020550,0.021718,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816166.414718,255,-90.330399,50.825298,0.000000,-70.330734,43.825489,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.624481,-0.015548,0.025540,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816167.416968,255,-90.330399,50.825298,0.000000,-70.330757,43.825512,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.755768,-0.011953,0.027516,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816168.419068,255,-90.330399,50.825298,0.000000,-70.330780,43.825531,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.841217,-0.009454,0.028471,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816169.420871,255,-90.330399,50.825298,0.000000,-70.330803,43.825554,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.896729,-0.007789,0.028971,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816170.422729,255,-90.330399,50.825298,0.000000,-70.330826,43.825577,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.932831,-0.006691,0.029244,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816171.424751,255,-90.330399,50.825298,0.000000,-70.330849,43.825600,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.956329,-0.005973,0.029399,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816172.426938,255,-90.330399,50.825298,0.000000,-70.330872,43.825619,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.971588,-0.005504,0.029491,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816173.429263,255,-90.330399,50.825298,0.000000,-70.330887,43.825642,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.981537,-0.005197,0.029546,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816174.431332,255,-90.330399,50.825298,0.000000,-70.330910,43.825665,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.988007,-0.004998,0.029581,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816175.433512,255,-90.330399,50.825298,0.000000,-70.330933,43.825687,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.992188,-0.004868,0.029602,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816176.435635,255,-90.330399,50.825298,0.000000,-70.330956,43.825706,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.994934,-0.004784,0.029616,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816177.437691,255,-90.330399,50.825298,0.000000,-70.330978,43.825729,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.996704,-0.004729,0.029625,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816178.439825,255,-90.330399,50.825298,0.000000,-70.331001,43.825752,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.997864,-0.004693,0.029631,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816179.442120,255,-90.330399,50.825298,0.000000,-70.331024,43.825775,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.998596,-0.004670,0.029634,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816180.444414,255,-90.330399,50.825298,0.000000,-70.331047,43.825794,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999084,-0.004655,0.029637,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816181.446815,255,-90.330399,50.825298,0.000000,-70.331062,43.825817,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999420,-0.004645,0.029638,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816182.448892,255,-90.330399,50.825298,0.000000,-70.331085,43.825840,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999603,-0.004638,0.029639,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816183.451203,255,-90.330399,50.825298,0.000000,-70.331108,43.825863,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999756,-0.004635,0.029640,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816184.453498,255,-90.330399,50.825298,0.000000,-70.331131,43.825882,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999847,-0.004632,0.029640,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816185.455850,255,-90.330399,50.825298,0.000000,-70.331154,43.825905,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999908,-0.004630,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816186.458013,255,-90.330399,50.825298,0.000000,-70.331177,43.825928,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999939,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816187.459989,255,-90.330399,50.825298,0.000000,-70.331200,43.825951,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999969,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816188.461813,255,-90.330399,50.825298,0.000000,-70.331223,43.825970,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999969,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816189.464064,255,-90.330399,50.825298,0.000000,-70.331238,43.825993,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,324.999969,-0.004628,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816190.466256,255,-90.330399,50.825298,0.000000,-70.331261,43.826015,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816191.468462,255,-90.330399,50.825298,0.000000,-70.331284,43.826038,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816192.470446,255,-90.330399,50.825298,0.000000,-70.331306,43.826057,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816193.472662,255,-90.330399,50.825298,0.000000,-70.331329,43.826080,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816194.475011,255,-90.330399,50.825298,0.000000,-70.331352,43.826103,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816195.477210,255,-90.330399,50.825298,0.000000,-70.331375,43.826126,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816196.479518,255,-90.330399,50.825298,0.000000,-70.331398,43.826145,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816197.481640,255,-90.330399,50.825298,0.000000,-70.331421,43.826168,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816198.483315,255,-90.330399,50.825298,0.000000,-70.331436,43.826191,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816199.485810,255,-90.330399,50.825298,0.000000,-70.331459,43.826214,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816200.487822,255,-90.330399,50.825298,0.000000,-70.331482,43.826233,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816201.489977,255,-90.330399,50.825298,0.000000,-70.331505,43.826256,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816202.492038,255,-90.330399,50.825298,0.000000,-70.331528,43.826279,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.000000,-0.004627,0.029641,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816203.494153,255,-90.330399,50.825298,0.000000,-70.331551,43.826302,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.349670,0.004948,0.029488,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816204.496086,255,-90.330399,50.825298,0.000000,-70.331566,43.826321,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.558594,0.011210,0.027719,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816205.498088,255,-90.330399,50.825298,0.000000,-70.331589,43.826344,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,325.712952,0.015565,0.025646,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816206.500261,255,-90.330399,50.825298,0.000000,-70.331612,43.826366,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,338.778748,-0.037468,-0.013718,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816207.502429,255,-90.330399,50.825298,0.000000,-70.331619,43.826405,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,359.321014,0.043001,0.013598,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816208.504813,255,-90.330399,50.825298,0.000000,-70.331619,43.826447,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,9.855519,-0.044786,-0.015827,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816209.507195,255,-90.330399,50.825298,0.000000,-70.331604,43.826488,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,15.100991,-0.027319,-0.040436,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816210.510344,255,-90.330399,50.825298,0.000000,-70.331589,43.826534,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,18.116117,0.028582,0.040169,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816211.262184,255,-90.330399,50.825298,0.000000,-70.331566,43.826576,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,19.607180,0.039486,-0.030182,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816212.514434,255,-90.330399,50.825298,0.000000,-70.331551,43.826618,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.327560,0.007138,-0.049286,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816213.266216,255,-90.330399,50.825298,0.000000,-70.331528,43.826660,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.675314,-0.011400,-0.048580,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816214.268370,255,-90.330399,50.825298,0.000000,-70.331505,43.826702,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.843258,-0.019977,-0.045836,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816215.270633,255,-90.330399,50.825298,0.000000,-70.331482,43.826744,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.924313,-0.023895,-0.043921,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816216.272506,255,-90.330399,50.825298,0.000000,-70.331467,43.826786,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.963461,-0.025721,-0.042877,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816217.274633,255,-90.330399,50.825298,0.000000,-70.331444,43.826832,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.982359,-0.026588,-0.042345,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816218.276625,255,-90.330399,50.825298,0.000000,-70.331421,43.826874,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.991488,-0.027002,-0.042082,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816219.278508,255,-90.330399,50.825298,0.000000,-70.331398,43.826916,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,20.995890,-0.027201,-0.041953,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816220.280847,255,-90.330399,50.825298,0.000000,-70.331375,43.826958,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,21.352226,-0.038470,-0.031625,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816221.282843,255,-90.330399,50.825298,0.000000,-70.331360,43.827000,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,21.687271,-0.047248,-0.016051,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816222.285018,255,-90.330399,50.825298,0.000000,-70.331337,43.827042,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,21.849096,-0.049412,-0.007646,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816223.287042,255,-90.330399,50.825298,0.000000,-70.331314,43.827084,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,21.921659,-0.049580,-0.003451,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816224.289129,255,-90.330399,50.825298,0.000000,-70.331314,43.827126,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,328.747070,0.046277,-0.009290,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816225.291208,255,-90.330399,50.825298,0.000000,-70.331360,43.827152,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,298.013458,0.008081,0.043963,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816226.293120,255,-90.330399,50.825298,0.000000,-70.331413,43.827164,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,282.519775,0.029626,-0.035711,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816227.295298,255,-90.330399,50.825298,0.000000,-70.331474,43.827171,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,274.656647,0.016246,0.045273,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816228.297452,255,-90.330399,50.825298,0.000000,-70.331535,43.827171,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,270.696198,0.034219,-0.035211,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816229.299723,255,-90.330399,50.825298,0.000000,-70.331596,43.827171,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,268.784668,0.015283,0.047187,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816230.301925,255,-90.330399,50.825298,0.000000,-70.331657,43.827168,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,267.861359,-0.031296,0.038738,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816231.303820,255,-90.330399,50.825298,0.000000,-70.331718,43.827168,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,267.415955,-0.045725,0.019980,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816232.305952,255,-90.330399,50.825298,0.000000,-70.331779,43.827164,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,267.200806,-0.049186,0.008985,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816233.308402,255,-90.330399,50.825298,0.000000,-70.331841,43.827160,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,267.026886,-0.049782,0.003436,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816234.310382,255,-90.330399,50.825298,0.000000,-70.331902,43.827156,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.495575,-0.043739,-0.024020,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816235.312443,255,-90.330399,50.825298,0.000000,-70.331970,43.827152,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.239319,-0.035545,-0.035022,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816236.314332,255,-90.330399,50.825298,0.000000,-70.332031,43.827148,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.115540,-0.030645,-0.039508,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816237.316636,255,-90.330399,50.825298,0.000000,-70.332092,43.827145,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.055786,-0.028043,-0.041396,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816238.318591,255,-90.330399,50.825298,0.000000,-70.332153,43.827141,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.026917,-0.026745,-0.042246,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816239.320670,255,-90.330399,50.825298,0.000000,-70.332214,43.827137,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.013000,-0.026109,-0.042642,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816240.322817,255,-90.330399,50.825298,0.000000,-70.332275,43.827133,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.006287,-0.025800,-0.042830,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816241.324869,255,-90.330399,50.825298,0.000000,-70.332336,43.827129,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.003021,-0.025650,-0.042919,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816242.327157,255,-90.330399,50.825298,0.000000,-70.332405,43.827126,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.001465,-0.025578,-0.042962,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816243.329233,255,-90.330399,50.825298,0.000000,-70.332466,43.827122,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.354553,-0.037124,-0.033194,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816244.331389,255,-90.330399,50.825298,0.000000,-70.332527,43.827118,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.688477,-0.046514,-0.018069,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816245.333556,255,-90.330399,50.825298,0.000000,-70.332588,43.827114,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.849609,-0.049032,-0.009791,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816246.335453,255,-90.330399,50.825298,0.000000,-70.332649,43.827114,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.927399,-0.049678,-0.005661,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816247.337603,255,-90.330399,50.825298,0.000000,-70.332710,43.827110,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,266.964935,-0.049867,-0.003650,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816248.339673,255,-90.330399,50.825298,0.000000,-70.332771,43.827099,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,236.361160,-0.014579,-0.045418,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816249.341508,255,-90.330399,50.825298,0.000000,-70.332809,43.827068,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,206.080246,0.027037,-0.036222,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816250.343442,255,-90.330399,50.825298,0.000000,-70.332825,43.827026,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,190.420380,-0.046246,-0.002234,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816251.345330,255,-90.330399,50.825298,0.000000,-70.332825,43.826984,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,182.311417,0.035903,-0.031859,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816252.347299,255,-90.330399,50.825298,0.000000,-70.332825,43.826942,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,178.012894,-0.035728,-0.033534,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816253.349212,255,-90.330399,50.825298,0.000000,-70.332825,43.826897,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,175.802505,0.049223,-0.004175,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816254.351134,255,-90.330399,50.825298,0.000000,-70.332817,43.826851,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,174.353424,0.004833,0.049464,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816255.353149,255,-90.330399,50.825298,0.000000,-70.332809,43.826809,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.653656,-0.030352,0.039482,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816256.355156,255,-90.330399,50.825298,0.000000,-70.332802,43.826763,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.315475,-0.042494,0.026158,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816257.357146,255,-90.330399,50.825298,0.000000,-70.332794,43.826717,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.152359,-0.046502,0.018372,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816258.359157,255,-90.330399,50.825298,0.000000,-70.332787,43.826675,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.073563,-0.047890,0.014371,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816259.361182,255,-90.330399,50.825298,0.000000,-70.332771,43.826630,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.035522,-0.048438,0.012400,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816260.363160,255,-90.330399,50.825298,0.000000,-70.332764,43.826584,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,173.017151,-0.048674,0.011440,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816261.365346,255,-90.330399,50.825298,0.000000,-70.332756,43.826538,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.938156,-0.048683,0.010954,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816262.367217,255,-90.330399,50.825298,0.000000,-70.332748,43.826500,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.487244,-0.048176,-0.013002,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816263.368813,255,-90.330399,50.825298,0.000000,-70.332741,43.826454,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.043871,-0.021144,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816264.370028,255,-90.330399,50.825298,0.000000,-70.332733,43.826412,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.041619,-0.020058,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816265.371300,255,-90.330399,50.825298,0.000000,-70.332726,43.826374,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.039276,-0.018930,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816266.372554,255,-90.330399,50.825298,0.000000,-70.332718,43.826336,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.037024,-0.017844,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816267.373705,255,-90.330399,50.825298,0.000000,-70.332710,43.826302,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.034772,-0.016759,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816268.374904,255,-90.330399,50.825298,0.000000,-70.332703,43.826267,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.032520,-0.015673,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816269.376326,255,-90.330399,50.825298,0.000000,-70.332695,43.826237,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.030268,-0.014588,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816270.377598,255,-90.330399,50.825298,0.000000,-70.332687,43.826206,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.028016,-0.013503,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816271.378829,255,-90.330399,50.825298,0.000000,-70.332680,43.826180,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.025764,-0.012417,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816272.379941,255,-90.330399,50.825298,0.000000,-70.332680,43.826157,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.023512,-0.011332,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816273.380877,255,-90.330399,50.825298,0.000000,-70.332672,43.826134,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.021260,-0.010246,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816274.381993,255,-90.330399,50.825298,0.000000,-70.332672,43.826115,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.019008,-0.009161,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816275.383164,255,-90.330399,50.825298,0.000000,-70.332664,43.826096,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.016756,-0.008075,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816276.384483,255,-90.330399,50.825298,0.000000,-70.332664,43.826080,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.014503,-0.006990,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816277.385855,255,-90.330399,50.825298,0.000000,-70.332657,43.826069,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.012251,-0.005905,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816278.387292,255,-90.330399,50.825298,0.000000,-70.332657,43.826057,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.009909,-0.004776,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816279.388882,255,-90.330399,50.825298,0.000000,-70.332657,43.826050,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.007657,-0.003690,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816280.390024,255,-90.330399,50.825298,0.000000,-70.332657,43.826042,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.005405,-0.002605,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816281.391234,255,-90.330399,50.825298,0.000000,-70.332657,43.826038,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.003153,-0.001520,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816282.392479,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,-0.000901,-0.000434,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816283.393728,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816284.394837,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816285.395908,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816286.397535,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816287.398744,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816288.399953,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816289.401189,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000
1700816290.402203,255,-90.330399,50.825298,0.000000,-70.332649,43.826035,0.000000,49463.585938,6378031.000000,0.000000,0.000000,0.000000,172.338486,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,255,0,255,15,60,25.000000

View File

@@ -0,0 +1 @@
PlanControl:1700816151.420578,east_waypt_survey,start

View File

@@ -0,0 +1 @@
stamp,level,type,id,first,source

View File

@@ -0,0 +1,889 @@
stamp,state,taskName,destName,errorCode
1700816151.636889,3,east_waypt_survey,,0
1700816151.637013,3,east_waypt_survey,,0
1700816151.887230,3,east_waypt_survey,station_1,0
1700816151.887305,3,east_waypt_survey,station_1,0
1700816152.137587,3,east_waypt_survey,station_1,0
1700816152.137741,3,east_waypt_survey,station_1,0
1700816152.388094,3,east_waypt_survey,station_1,0
1700816152.388143,3,east_waypt_survey,station_1,0
1700816152.638431,3,east_waypt_survey,station_1,0
1700816152.638606,3,east_waypt_survey,station_1,0
1700816152.888885,3,east_waypt_survey,station_1,0
1700816152.888964,3,east_waypt_survey,station_1,0
1700816153.139320,3,east_waypt_survey,station_1,0
1700816153.139503,3,east_waypt_survey,station_1,0
1700816153.389962,3,east_waypt_survey,station_1,0
1700816153.390013,3,east_waypt_survey,station_1,0
1700816153.640319,3,east_waypt_survey,station_1,0
1700816153.640502,3,east_waypt_survey,station_1,0
1700816153.890820,3,east_waypt_survey,station_1,0
1700816153.890900,3,east_waypt_survey,station_1,0
1700816154.141196,3,east_waypt_survey,station_1,0
1700816154.141344,3,east_waypt_survey,station_1,0
1700816154.391752,3,east_waypt_survey,station_1,0
1700816154.391790,3,east_waypt_survey,station_1,0
1700816154.642092,3,east_waypt_survey,station_1,0
1700816154.642248,3,east_waypt_survey,station_1,0
1700816154.892563,3,east_waypt_survey,station_1,0
1700816154.892644,3,east_waypt_survey,station_1,0
1700816155.142900,3,east_waypt_survey,station_1,0
1700816155.142973,3,east_waypt_survey,station_1,0
1700816155.393383,3,east_waypt_survey,station_1,0
1700816155.393429,3,east_waypt_survey,station_1,0
1700816155.643767,3,east_waypt_survey,station_1,0
1700816155.643933,3,east_waypt_survey,station_1,0
1700816155.894197,3,east_waypt_survey,station_1,0
1700816155.894270,3,east_waypt_survey,station_1,0
1700816156.144547,3,east_waypt_survey,station_1,0
1700816156.144738,3,east_waypt_survey,station_1,0
1700816156.395147,3,east_waypt_survey,station_1,0
1700816156.395193,3,east_waypt_survey,station_1,0
1700816156.645481,3,east_waypt_survey,station_1,0
1700816156.645690,3,east_waypt_survey,station_1,0
1700816156.895898,3,east_waypt_survey,station_1,0
1700816156.895958,3,east_waypt_survey,station_1,0
1700816157.146191,3,east_waypt_survey,station_1,0
1700816157.146265,3,east_waypt_survey,station_1,0
1700816157.396637,3,east_waypt_survey,station_1,0
1700816157.396683,3,east_waypt_survey,station_1,0
1700816157.646972,3,east_waypt_survey,station_1,0
1700816157.647130,3,east_waypt_survey,station_1,0
1700816157.897366,3,east_waypt_survey,station_1,0
1700816157.897398,3,east_waypt_survey,station_1,0
1700816158.147755,3,east_waypt_survey,station_1,0
1700816158.147939,3,east_waypt_survey,station_1,0
1700816158.398383,3,east_waypt_survey,station_1,0
1700816158.398433,3,east_waypt_survey,station_1,0
1700816158.648876,3,east_waypt_survey,station_1,0
1700816158.649093,3,east_waypt_survey,station_1,0
1700816158.899497,3,east_waypt_survey,station_1,0
1700816158.899582,3,east_waypt_survey,station_1,0
1700816159.150058,3,east_waypt_survey,station_1,0
1700816159.150231,3,east_waypt_survey,station_1,0
1700816159.400614,3,east_waypt_survey,station_1,0
1700816159.400660,3,east_waypt_survey,station_1,0
1700816159.650992,3,east_waypt_survey,station_1,0
1700816159.651184,3,east_waypt_survey,station_1,0
1700816159.901570,3,east_waypt_survey,station_1,0
1700816159.901644,3,east_waypt_survey,station_1,0
1700816160.151908,3,east_waypt_survey,station_1,0
1700816160.152072,3,east_waypt_survey,station_1,0
1700816160.402565,3,east_waypt_survey,station_1,0
1700816160.402608,3,east_waypt_survey,station_1,0
1700816160.652958,3,east_waypt_survey,station_1,0
1700816160.653132,3,east_waypt_survey,station_1,0
1700816160.903373,3,east_waypt_survey,station_1,0
1700816160.903488,3,east_waypt_survey,station_1,0
1700816161.153892,3,east_waypt_survey,station_1,0
1700816161.154056,3,east_waypt_survey,station_1,0
1700816161.404460,3,east_waypt_survey,station_1,0
1700816161.404507,3,east_waypt_survey,station_1,0
1700816161.654748,3,east_waypt_survey,station_1,0
1700816161.654844,3,east_waypt_survey,station_1,0
1700816161.905202,3,east_waypt_survey,station_1,0
1700816161.905284,3,east_waypt_survey,station_1,0
1700816162.155824,3,east_waypt_survey,station_1,0
1700816162.156101,3,east_waypt_survey,station_1,0
1700816162.406618,3,east_waypt_survey,station_1,0
1700816162.406668,3,east_waypt_survey,station_1,0
1700816162.657089,3,east_waypt_survey,station_1,0
1700816162.657253,3,east_waypt_survey,station_1,0
1700816162.907642,3,east_waypt_survey,station_1,0
1700816162.907723,3,east_waypt_survey,station_1,0
1700816163.158146,3,east_waypt_survey,station_1,0
1700816163.158353,3,east_waypt_survey,station_1,0
1700816163.408895,3,east_waypt_survey,station_1,0
1700816163.408979,3,east_waypt_survey,station_1,0
1700816163.659206,3,east_waypt_survey,station_1,0
1700816163.659293,3,east_waypt_survey,station_1,0
1700816163.909508,3,east_waypt_survey,station_1,0
1700816163.909553,3,east_waypt_survey,station_1,0
1700816164.159803,3,east_waypt_survey,station_1,0
1700816164.159953,3,east_waypt_survey,station_1,0
1700816164.410454,3,east_waypt_survey,station_1,0
1700816164.410499,3,east_waypt_survey,station_1,0
1700816164.660832,3,east_waypt_survey,station_1,0
1700816164.661007,3,east_waypt_survey,station_1,0
1700816164.911403,3,east_waypt_survey,station_1,0
1700816164.911525,3,east_waypt_survey,station_1,0
1700816165.161930,3,east_waypt_survey,station_1,0
1700816165.162137,3,east_waypt_survey,station_1,0
1700816165.412587,3,east_waypt_survey,station_1,0
1700816165.412640,3,east_waypt_survey,station_1,0
1700816165.663114,3,east_waypt_survey,station_1,0
1700816165.663362,3,east_waypt_survey,station_1,0
1700816165.913647,3,east_waypt_survey,station_1,0
1700816165.913750,3,east_waypt_survey,station_1,0
1700816166.164061,3,east_waypt_survey,station_1,0
1700816166.164281,3,east_waypt_survey,station_1,0
1700816166.414804,3,east_waypt_survey,station_1,0
1700816166.414870,3,east_waypt_survey,station_1,0
1700816166.665261,3,east_waypt_survey,station_1,0
1700816166.665480,3,east_waypt_survey,station_1,0
1700816166.915784,3,east_waypt_survey,station_1,0
1700816166.915881,3,east_waypt_survey,station_1,0
1700816167.166319,3,east_waypt_survey,station_1,0
1700816167.166625,3,east_waypt_survey,station_1,0
1700816167.417047,3,east_waypt_survey,station_1,0
1700816167.417093,3,east_waypt_survey,station_1,0
1700816167.667395,3,east_waypt_survey,station_1,0
1700816167.667640,3,east_waypt_survey,station_1,0
1700816167.918048,3,east_waypt_survey,station_1,0
1700816167.918133,3,east_waypt_survey,station_1,0
1700816168.168441,3,east_waypt_survey,station_1,0
1700816168.168606,3,east_waypt_survey,station_1,0
1700816168.419149,3,east_waypt_survey,station_1,0
1700816168.419207,3,east_waypt_survey,station_1,0
1700816168.669613,3,east_waypt_survey,station_1,0
1700816168.669817,3,east_waypt_survey,station_1,0
1700816168.920096,3,east_waypt_survey,station_1,0
1700816168.920166,3,east_waypt_survey,station_1,0
1700816169.170424,3,east_waypt_survey,station_1,0
1700816169.170549,3,east_waypt_survey,station_1,0
1700816169.420924,3,east_waypt_survey,station_1,0
1700816169.420946,3,east_waypt_survey,station_1,0
1700816169.671263,3,east_waypt_survey,station_1,0
1700816169.671435,3,east_waypt_survey,station_1,0
1700816169.921715,3,east_waypt_survey,station_1,0
1700816169.921764,3,east_waypt_survey,station_1,0
1700816170.172053,3,east_waypt_survey,station_1,0
1700816170.172273,3,east_waypt_survey,station_1,0
1700816170.422816,3,east_waypt_survey,station_1,0
1700816170.422866,3,east_waypt_survey,station_1,0
1700816170.673221,3,east_waypt_survey,station_1,0
1700816170.673445,3,east_waypt_survey,station_1,0
1700816170.923743,3,east_waypt_survey,station_1,0
1700816170.923820,3,east_waypt_survey,station_1,0
1700816171.174182,3,east_waypt_survey,station_1,0
1700816171.174410,3,east_waypt_survey,station_1,0
1700816171.424826,3,east_waypt_survey,station_1,0
1700816171.424873,3,east_waypt_survey,station_1,0
1700816171.675220,3,east_waypt_survey,station_1,0
1700816171.675409,3,east_waypt_survey,station_1,0
1700816171.925819,3,east_waypt_survey,station_1,0
1700816171.925945,3,east_waypt_survey,station_1,0
1700816172.176349,3,east_waypt_survey,station_1,0
1700816172.176520,3,east_waypt_survey,station_1,0
1700816172.427017,3,east_waypt_survey,station_1,0
1700816172.427064,3,east_waypt_survey,station_1,0
1700816172.677489,3,east_waypt_survey,station_1,0
1700816172.677685,3,east_waypt_survey,station_1,0
1700816172.928080,3,east_waypt_survey,station_1,0
1700816172.928181,3,east_waypt_survey,station_1,0
1700816173.178650,3,east_waypt_survey,station_1,0
1700816173.178836,3,east_waypt_survey,station_1,0
1700816173.429352,3,east_waypt_survey,station_1,0
1700816173.429403,3,east_waypt_survey,station_1,0
1700816173.679824,3,east_waypt_survey,station_1,0
1700816173.680043,3,east_waypt_survey,station_1,0
1700816173.930341,3,east_waypt_survey,station_1,0
1700816173.930422,3,east_waypt_survey,station_1,0
1700816174.180783,3,east_waypt_survey,station_1,0
1700816174.180966,3,east_waypt_survey,station_1,0
1700816174.431415,3,east_waypt_survey,station_1,0
1700816174.431491,3,east_waypt_survey,station_1,0
1700816174.681898,3,east_waypt_survey,station_1,0
1700816174.682102,3,east_waypt_survey,station_1,0
1700816174.932451,3,east_waypt_survey,station_1,0
1700816174.932526,3,east_waypt_survey,station_1,0
1700816175.182878,3,east_waypt_survey,station_1,0
1700816175.183066,3,east_waypt_survey,station_1,0
1700816175.433637,3,east_waypt_survey,station_1,0
1700816175.433732,3,east_waypt_survey,station_1,0
1700816175.684107,3,east_waypt_survey,station_1,0
1700816175.684314,3,east_waypt_survey,station_1,0
1700816175.934627,3,east_waypt_survey,station_1,0
1700816175.934742,3,east_waypt_survey,station_1,0
1700816176.185073,3,east_waypt_survey,station_1,0
1700816176.185256,3,east_waypt_survey,station_1,0
1700816176.435720,3,east_waypt_survey,station_1,0
1700816176.435772,3,east_waypt_survey,station_1,0
1700816176.686148,3,east_waypt_survey,station_1,0
1700816176.686395,3,east_waypt_survey,station_1,0
1700816176.936679,3,east_waypt_survey,station_1,0
1700816176.936762,3,east_waypt_survey,station_1,0
1700816177.187112,3,east_waypt_survey,station_1,0
1700816177.187281,3,east_waypt_survey,station_1,0
1700816177.437817,3,east_waypt_survey,station_1,0
1700816177.437907,3,east_waypt_survey,station_1,0
1700816177.688327,3,east_waypt_survey,station_1,0
1700816177.688572,3,east_waypt_survey,station_1,0
1700816177.938860,3,east_waypt_survey,station_1,0
1700816177.938932,3,east_waypt_survey,station_1,0
1700816178.189248,3,east_waypt_survey,station_1,0
1700816178.189446,3,east_waypt_survey,station_1,0
1700816178.439911,3,east_waypt_survey,station_1,0
1700816178.439962,3,east_waypt_survey,station_1,0
1700816178.690451,3,east_waypt_survey,station_1,0
1700816178.690627,3,east_waypt_survey,station_1,0
1700816178.941016,3,east_waypt_survey,station_1,0
1700816178.941098,3,east_waypt_survey,station_1,0
1700816179.191474,3,east_waypt_survey,station_1,0
1700816179.191676,3,east_waypt_survey,station_1,0
1700816179.442198,3,east_waypt_survey,station_1,0
1700816179.442246,3,east_waypt_survey,station_1,0
1700816179.692630,3,east_waypt_survey,station_1,0
1700816179.692813,3,east_waypt_survey,station_1,0
1700816179.943235,3,east_waypt_survey,station_1,0
1700816179.943323,3,east_waypt_survey,station_1,0
1700816180.193744,3,east_waypt_survey,station_1,0
1700816180.193922,3,east_waypt_survey,station_1,0
1700816180.444503,3,east_waypt_survey,station_1,0
1700816180.444554,3,east_waypt_survey,station_1,0
1700816180.695028,3,east_waypt_survey,station_1,0
1700816180.695228,3,east_waypt_survey,station_1,0
1700816180.945673,3,east_waypt_survey,station_1,0
1700816180.945757,3,east_waypt_survey,station_1,0
1700816181.196136,3,east_waypt_survey,station_1,0
1700816181.196308,3,east_waypt_survey,station_1,0
1700816181.446905,3,east_waypt_survey,station_1,0
1700816181.446955,3,east_waypt_survey,station_1,0
1700816181.697298,3,east_waypt_survey,station_1,0
1700816181.697479,3,east_waypt_survey,station_1,0
1700816181.947801,3,east_waypt_survey,station_1,0
1700816181.947881,3,east_waypt_survey,station_1,0
1700816182.198327,3,east_waypt_survey,station_1,0
1700816182.198511,3,east_waypt_survey,station_1,0
1700816182.448978,3,east_waypt_survey,station_1,0
1700816182.449028,3,east_waypt_survey,station_1,0
1700816182.699510,3,east_waypt_survey,station_1,0
1700816182.699730,3,east_waypt_survey,station_1,0
1700816182.950145,3,east_waypt_survey,station_1,0
1700816182.950262,3,east_waypt_survey,station_1,0
1700816183.200666,3,east_waypt_survey,station_1,0
1700816183.200848,3,east_waypt_survey,station_1,0
1700816183.451292,3,east_waypt_survey,station_1,0
1700816183.451382,3,east_waypt_survey,station_1,0
1700816183.701726,3,east_waypt_survey,station_1,0
1700816183.701968,3,east_waypt_survey,station_1,0
1700816183.952265,3,east_waypt_survey,station_1,0
1700816183.952354,3,east_waypt_survey,station_1,0
1700816184.202823,3,east_waypt_survey,station_1,0
1700816184.203028,3,east_waypt_survey,station_1,0
1700816184.453582,3,east_waypt_survey,station_1,0
1700816184.453632,3,east_waypt_survey,station_1,0
1700816184.703996,3,east_waypt_survey,station_1,0
1700816184.704273,3,east_waypt_survey,station_1,0
1700816184.954684,3,east_waypt_survey,station_1,0
1700816184.954780,3,east_waypt_survey,station_1,0
1700816185.205185,3,east_waypt_survey,station_1,0
1700816185.205377,3,east_waypt_survey,station_1,0
1700816185.455933,3,east_waypt_survey,station_1,0
1700816185.455988,3,east_waypt_survey,station_1,0
1700816185.706465,3,east_waypt_survey,station_1,0
1700816185.706644,3,east_waypt_survey,station_1,0
1700816185.956919,3,east_waypt_survey,station_1,0
1700816185.956993,3,east_waypt_survey,station_1,0
1700816186.207312,3,east_waypt_survey,station_1,0
1700816186.207534,3,east_waypt_survey,station_1,0
1700816186.458093,3,east_waypt_survey,station_1,0
1700816186.458139,3,east_waypt_survey,station_1,0
1700816186.708484,3,east_waypt_survey,station_1,0
1700816186.708657,3,east_waypt_survey,station_1,0
1700816186.959014,3,east_waypt_survey,station_1,0
1700816186.959093,3,east_waypt_survey,station_1,0
1700816187.209479,3,east_waypt_survey,station_1,0
1700816187.209665,3,east_waypt_survey,station_1,0
1700816187.460064,3,east_waypt_survey,station_1,0
1700816187.460110,3,east_waypt_survey,station_1,0
1700816187.710346,3,east_waypt_survey,station_1,0
1700816187.710518,3,east_waypt_survey,station_1,0
1700816187.960785,3,east_waypt_survey,station_1,0
1700816187.960861,3,east_waypt_survey,station_1,0
1700816188.211291,3,east_waypt_survey,station_1,0
1700816188.211483,3,east_waypt_survey,station_1,0
1700816188.461893,3,east_waypt_survey,station_1,0
1700816188.461944,3,east_waypt_survey,station_1,0
1700816188.712259,3,east_waypt_survey,station_1,0
1700816188.712488,3,east_waypt_survey,station_1,0
1700816188.962779,3,east_waypt_survey,station_1,0
1700816188.962863,3,east_waypt_survey,station_1,0
1700816189.213242,3,east_waypt_survey,station_1,0
1700816189.213503,3,east_waypt_survey,station_1,0
1700816189.464155,3,east_waypt_survey,station_1,0
1700816189.464248,3,east_waypt_survey,station_1,0
1700816189.714637,3,east_waypt_survey,station_1,0
1700816189.714835,3,east_waypt_survey,station_1,0
1700816189.965241,3,east_waypt_survey,station_1,0
1700816189.965347,3,east_waypt_survey,station_1,0
1700816190.215648,3,east_waypt_survey,station_1,0
1700816190.215841,3,east_waypt_survey,station_1,0
1700816190.466347,3,east_waypt_survey,station_1,0
1700816190.466434,3,east_waypt_survey,station_1,0
1700816190.716769,3,east_waypt_survey,station_1,0
1700816190.716988,3,east_waypt_survey,station_1,0
1700816190.967314,3,east_waypt_survey,station_1,0
1700816190.967397,3,east_waypt_survey,station_1,0
1700816191.217830,3,east_waypt_survey,station_1,0
1700816191.218102,3,east_waypt_survey,station_1,0
1700816191.468546,3,east_waypt_survey,station_1,0
1700816191.468606,3,east_waypt_survey,station_1,0
1700816191.718930,3,east_waypt_survey,station_1,0
1700816191.719146,3,east_waypt_survey,station_1,0
1700816191.969454,3,east_waypt_survey,station_1,0
1700816191.969546,3,east_waypt_survey,station_1,0
1700816192.219856,3,east_waypt_survey,station_1,0
1700816192.220038,3,east_waypt_survey,station_1,0
1700816192.470579,3,east_waypt_survey,station_1,0
1700816192.470669,3,east_waypt_survey,station_1,0
1700816192.721080,3,east_waypt_survey,station_1,0
1700816192.721297,3,east_waypt_survey,station_1,0
1700816192.971683,3,east_waypt_survey,station_1,0
1700816192.971787,3,east_waypt_survey,station_1,0
1700816193.222134,3,east_waypt_survey,station_1,0
1700816193.222310,3,east_waypt_survey,station_1,0
1700816193.472746,3,east_waypt_survey,station_1,0
1700816193.472797,3,east_waypt_survey,station_1,0
1700816193.723217,3,east_waypt_survey,station_1,0
1700816193.723498,3,east_waypt_survey,station_1,0
1700816193.973858,3,east_waypt_survey,station_1,0
1700816193.973960,3,east_waypt_survey,station_1,0
1700816194.224314,3,east_waypt_survey,station_1,0
1700816194.224492,3,east_waypt_survey,station_1,0
1700816194.475093,3,east_waypt_survey,station_1,0
1700816194.475157,3,east_waypt_survey,station_1,0
1700816194.725582,3,east_waypt_survey,station_1,0
1700816194.725800,3,east_waypt_survey,station_1,0
1700816194.976124,3,east_waypt_survey,station_1,0
1700816194.976207,3,east_waypt_survey,station_1,0
1700816195.226674,3,east_waypt_survey,station_1,0
1700816195.226854,3,east_waypt_survey,station_1,0
1700816195.477306,3,east_waypt_survey,station_1,0
1700816195.477396,3,east_waypt_survey,station_1,0
1700816195.727873,3,east_waypt_survey,station_1,0
1700816195.728099,3,east_waypt_survey,station_1,0
1700816195.978529,3,east_waypt_survey,station_1,0
1700816195.978631,3,east_waypt_survey,station_1,0
1700816196.228926,3,east_waypt_survey,station_1,0
1700816196.229131,3,east_waypt_survey,station_1,0
1700816196.479614,3,east_waypt_survey,station_1,0
1700816196.479694,3,east_waypt_survey,station_1,0
1700816196.730146,3,east_waypt_survey,station_1,0
1700816196.730352,3,east_waypt_survey,station_1,0
1700816196.980591,3,east_waypt_survey,station_1,0
1700816196.980657,3,east_waypt_survey,station_1,0
1700816197.230970,3,east_waypt_survey,station_1,0
1700816197.231198,3,east_waypt_survey,station_1,0
1700816197.481724,3,east_waypt_survey,station_1,0
1700816197.481774,3,east_waypt_survey,station_1,0
1700816197.732094,3,east_waypt_survey,station_1,0
1700816197.732284,3,east_waypt_survey,station_1,0
1700816197.982472,3,east_waypt_survey,station_1,0
1700816197.982512,3,east_waypt_survey,station_1,0
1700816198.232803,3,east_waypt_survey,station_1,0
1700816198.232990,3,east_waypt_survey,station_1,0
1700816198.483401,3,east_waypt_survey,station_1,0
1700816198.483497,3,east_waypt_survey,station_1,0
1700816198.734054,3,east_waypt_survey,station_1,0
1700816198.734263,3,east_waypt_survey,station_1,0
1700816198.984664,3,east_waypt_survey,station_1,0
1700816198.984747,3,east_waypt_survey,station_1,0
1700816199.235173,3,east_waypt_survey,station_1,0
1700816199.235377,3,east_waypt_survey,station_1,0
1700816199.485937,3,east_waypt_survey,station_1,0
1700816199.486022,3,east_waypt_survey,station_1,0
1700816199.736382,3,east_waypt_survey,station_1,0
1700816199.736625,3,east_waypt_survey,station_1,0
1700816199.986891,3,east_waypt_survey,station_1,0
1700816199.986990,3,east_waypt_survey,station_1,0
1700816200.237326,3,east_waypt_survey,station_1,0
1700816200.237492,3,east_waypt_survey,station_1,0
1700816200.487907,3,east_waypt_survey,station_1,0
1700816200.487957,3,east_waypt_survey,station_1,0
1700816200.738416,3,east_waypt_survey,station_1,0
1700816200.738638,3,east_waypt_survey,station_1,0
1700816200.988919,3,east_waypt_survey,station_1,0
1700816200.989023,3,east_waypt_survey,station_1,0
1700816201.239389,3,east_waypt_survey,station_1,0
1700816201.239613,3,east_waypt_survey,station_1,0
1700816201.490094,3,east_waypt_survey,station_1,0
1700816201.490155,3,east_waypt_survey,station_1,0
1700816201.740514,3,east_waypt_survey,station_1,0
1700816201.740747,3,east_waypt_survey,station_1,0
1700816201.991051,3,east_waypt_survey,station_1,0
1700816201.991151,3,east_waypt_survey,station_1,0
1700816202.241469,3,east_waypt_survey,station_1,0
1700816202.241698,3,east_waypt_survey,station_1,0
1700816202.492118,3,east_waypt_survey,station_1,0
1700816202.492164,3,east_waypt_survey,station_1,0
1700816202.742541,3,east_waypt_survey,station_1,0
1700816202.742726,3,east_waypt_survey,station_1,0
1700816202.992998,3,east_waypt_survey,station_1,0
1700816202.993103,3,east_waypt_survey,station_1,0
1700816203.243598,3,east_waypt_survey,station_1,0
1700816203.243838,3,east_waypt_survey,station_1,0
1700816203.494229,3,east_waypt_survey,station_1,0
1700816203.494275,3,east_waypt_survey,station_1,0
1700816203.744577,3,east_waypt_survey,station_1,0
1700816203.744785,3,east_waypt_survey,station_1,0
1700816203.995200,3,east_waypt_survey,station_1,0
1700816203.995285,3,east_waypt_survey,station_1,0
1700816204.245591,3,east_waypt_survey,station_1,0
1700816204.245769,3,east_waypt_survey,station_1,0
1700816204.496168,3,east_waypt_survey,station_1,0
1700816204.496217,3,east_waypt_survey,station_1,0
1700816204.746646,3,east_waypt_survey,station_1,0
1700816204.746814,3,east_waypt_survey,station_1,0
1700816204.997085,3,east_waypt_survey,station_1,0
1700816204.997159,3,east_waypt_survey,station_1,0
1700816205.247624,3,east_waypt_survey,station_1,0
1700816205.247784,3,east_waypt_survey,station_1,0
1700816205.498176,3,east_waypt_survey,station_2,0
1700816205.498264,3,east_waypt_survey,station_2,0
1700816205.748588,3,east_waypt_survey,station_2,0
1700816205.748792,3,east_waypt_survey,station_2,0
1700816205.999093,3,east_waypt_survey,station_2,0
1700816205.999204,3,east_waypt_survey,station_2,0
1700816206.249636,3,east_waypt_survey,station_2,0
1700816206.249919,3,east_waypt_survey,station_2,0
1700816206.500339,3,east_waypt_survey,station_2,0
1700816206.500385,3,east_waypt_survey,station_2,0
1700816206.750770,3,east_waypt_survey,station_2,0
1700816206.751020,3,east_waypt_survey,station_2,0
1700816207.001310,3,east_waypt_survey,station_2,0
1700816207.001406,3,east_waypt_survey,station_2,0
1700816207.251759,3,east_waypt_survey,station_2,0
1700816207.251980,3,east_waypt_survey,station_2,0
1700816207.502521,3,east_waypt_survey,station_2,0
1700816207.502597,3,east_waypt_survey,station_2,0
1700816207.753042,3,east_waypt_survey,station_2,0
1700816207.753253,3,east_waypt_survey,station_2,0
1700816208.003582,3,east_waypt_survey,station_2,0
1700816208.003689,3,east_waypt_survey,station_2,0
1700816208.254130,3,east_waypt_survey,station_2,0
1700816208.254381,3,east_waypt_survey,station_2,0
1700816208.504937,3,east_waypt_survey,station_2,0
1700816208.505015,3,east_waypt_survey,station_2,0
1700816208.755498,3,east_waypt_survey,station_2,0
1700816208.755718,3,east_waypt_survey,station_2,0
1700816209.006097,3,east_waypt_survey,station_2,0
1700816209.006199,3,east_waypt_survey,station_2,0
1700816209.256571,3,east_waypt_survey,station_2,0
1700816209.256772,3,east_waypt_survey,station_2,0
1700816209.507279,3,east_waypt_survey,station_2,0
1700816209.507329,3,east_waypt_survey,station_2,0
1700816209.757773,3,east_waypt_survey,station_2,0
1700816209.757994,3,east_waypt_survey,station_2,0
1700816210.008292,3,east_waypt_survey,station_2,0
1700816210.008397,3,east_waypt_survey,station_2,0
1700816210.259767,3,east_waypt_survey,station_2,0
1700816210.260007,3,east_waypt_survey,station_2,0
1700816210.510436,3,east_waypt_survey,station_2,0
1700816210.510486,3,east_waypt_survey,station_2,0
1700816210.760841,3,east_waypt_survey,station_2,0
1700816210.761025,3,east_waypt_survey,station_2,0
1700816211.011443,3,east_waypt_survey,station_2,0
1700816211.011558,3,east_waypt_survey,station_2,0
1700816211.261864,3,east_waypt_survey,station_2,0
1700816211.262110,3,east_waypt_survey,station_2,0
1700816211.512533,3,east_waypt_survey,station_2,0
1700816211.512610,3,east_waypt_survey,station_2,0
1700816211.763012,3,east_waypt_survey,station_2,0
1700816211.763177,3,east_waypt_survey,station_2,0
1700816212.013480,3,east_waypt_survey,station_2,0
1700816212.013564,3,east_waypt_survey,station_2,0
1700816212.263851,3,east_waypt_survey,station_2,0
1700816212.264042,3,east_waypt_survey,station_2,0
1700816212.514515,3,east_waypt_survey,station_2,0
1700816212.514575,3,east_waypt_survey,station_2,0
1700816212.764933,3,east_waypt_survey,station_2,0
1700816212.765110,3,east_waypt_survey,station_2,0
1700816213.015537,3,east_waypt_survey,station_2,0
1700816213.015616,3,east_waypt_survey,station_2,0
1700816213.265930,3,east_waypt_survey,station_2,0
1700816213.266128,3,east_waypt_survey,station_2,0
1700816213.516584,3,east_waypt_survey,station_2,0
1700816213.516685,3,east_waypt_survey,station_2,0
1700816213.767124,3,east_waypt_survey,station_2,0
1700816213.767311,3,east_waypt_survey,station_2,0
1700816214.017682,3,east_waypt_survey,station_2,0
1700816214.017784,3,east_waypt_survey,station_2,0
1700816214.268097,3,east_waypt_survey,station_2,0
1700816214.268287,3,east_waypt_survey,station_2,0
1700816214.518791,3,east_waypt_survey,station_2,0
1700816214.518888,3,east_waypt_survey,station_2,0
1700816214.769337,3,east_waypt_survey,station_2,0
1700816214.769553,3,east_waypt_survey,station_2,0
1700816215.019860,3,east_waypt_survey,station_2,0
1700816215.019962,3,east_waypt_survey,station_2,0
1700816215.270318,3,east_waypt_survey,station_2,0
1700816215.270538,3,east_waypt_survey,station_2,0
1700816215.520971,3,east_waypt_survey,station_2,0
1700816215.521066,3,east_waypt_survey,station_2,0
1700816215.771392,3,east_waypt_survey,station_2,0
1700816215.771638,3,east_waypt_survey,station_2,0
1700816216.022015,3,east_waypt_survey,station_2,0
1700816216.022119,3,east_waypt_survey,station_2,0
1700816216.272369,3,east_waypt_survey,station_2,0
1700816216.272471,3,east_waypt_survey,station_2,0
1700816216.522949,3,east_waypt_survey,station_2,0
1700816216.523061,3,east_waypt_survey,station_2,0
1700816216.773540,3,east_waypt_survey,station_2,0
1700816216.773643,3,east_waypt_survey,station_2,0
1700816217.024087,3,east_waypt_survey,station_2,0
1700816217.024203,3,east_waypt_survey,station_2,0
1700816217.274526,3,east_waypt_survey,station_2,0
1700816217.274603,3,east_waypt_survey,station_2,0
1700816217.524936,3,east_waypt_survey,station_2,0
1700816217.525035,3,east_waypt_survey,station_2,0
1700816217.775502,3,east_waypt_survey,station_2,0
1700816217.775715,3,east_waypt_survey,station_2,0
1700816218.026143,3,east_waypt_survey,station_2,0
1700816218.026219,3,east_waypt_survey,station_2,0
1700816218.276519,3,east_waypt_survey,station_2,0
1700816218.276591,3,east_waypt_survey,station_2,0
1700816218.526917,3,east_waypt_survey,station_2,0
1700816218.526989,3,east_waypt_survey,station_2,0
1700816218.777368,3,east_waypt_survey,station_2,0
1700816218.777441,3,east_waypt_survey,station_2,0
1700816219.027797,3,east_waypt_survey,station_2,0
1700816219.027874,3,east_waypt_survey,station_2,0
1700816219.278207,3,east_waypt_survey,station_2,0
1700816219.278293,3,east_waypt_survey,station_2,0
1700816219.528844,3,east_waypt_survey,station_2,0
1700816219.528916,3,east_waypt_survey,station_2,0
1700816219.779289,3,east_waypt_survey,station_2,0
1700816219.779405,3,east_waypt_survey,station_2,0
1700816220.122432,3,east_waypt_survey,station_2,0
1700816220.122514,3,east_waypt_survey,station_2,0
1700816220.280743,3,east_waypt_survey,station_2,0
1700816220.280782,3,east_waypt_survey,station_2,0
1700816220.531260,3,east_waypt_survey,station_2,0
1700816220.531332,3,east_waypt_survey,station_2,0
1700816220.781651,3,east_waypt_survey,station_2,0
1700816220.781734,3,east_waypt_survey,station_2,0
1700816221.032182,3,east_waypt_survey,station_2,0
1700816221.032270,3,east_waypt_survey,station_2,0
1700816221.282595,3,east_waypt_survey,station_2,0
1700816221.282664,3,east_waypt_survey,station_2,0
1700816221.533264,3,east_waypt_survey,station_2,0
1700816221.533351,3,east_waypt_survey,station_2,0
1700816221.783764,3,east_waypt_survey,station_2,0
1700816221.783839,3,east_waypt_survey,station_2,0
1700816222.034303,3,east_waypt_survey,station_2,0
1700816222.034381,3,east_waypt_survey,station_2,0
1700816222.284708,3,east_waypt_survey,station_2,0
1700816222.284802,3,east_waypt_survey,station_2,0
1700816222.535438,3,east_waypt_survey,station_2,0
1700816222.535551,3,east_waypt_survey,station_2,0
1700816222.785951,3,east_waypt_survey,station_2,0
1700816222.786011,3,east_waypt_survey,station_2,0
1700816223.036365,3,east_waypt_survey,station_3,0
1700816223.036443,3,east_waypt_survey,station_3,0
1700816223.286769,3,east_waypt_survey,station_3,0
1700816223.286958,3,east_waypt_survey,station_3,0
1700816223.537462,3,east_waypt_survey,station_3,0
1700816223.537551,3,east_waypt_survey,station_3,0
1700816223.787861,3,east_waypt_survey,station_3,0
1700816223.788066,3,east_waypt_survey,station_3,0
1700816224.038429,3,east_waypt_survey,station_3,0
1700816224.038527,3,east_waypt_survey,station_3,0
1700816224.288876,3,east_waypt_survey,station_3,0
1700816224.289062,3,east_waypt_survey,station_3,0
1700816224.539499,3,east_waypt_survey,station_3,0
1700816224.539573,3,east_waypt_survey,station_3,0
1700816224.789953,3,east_waypt_survey,station_3,0
1700816224.790032,3,east_waypt_survey,station_3,0
1700816225.040475,3,east_waypt_survey,station_3,0
1700816225.040556,3,east_waypt_survey,station_3,0
1700816225.290927,3,east_waypt_survey,station_3,0
1700816225.291006,3,east_waypt_survey,station_3,0
1700816225.541551,3,east_waypt_survey,station_3,0
1700816225.541578,3,east_waypt_survey,station_3,0
1700816225.791872,3,east_waypt_survey,station_3,0
1700816225.791951,3,east_waypt_survey,station_3,0
1700816226.042505,3,east_waypt_survey,station_3,0
1700816226.042588,3,east_waypt_survey,station_3,0
1700816226.292881,3,east_waypt_survey,station_3,0
1700816226.292948,3,east_waypt_survey,station_3,0
1700816226.543640,3,east_waypt_survey,station_3,0
1700816226.543721,3,east_waypt_survey,station_3,0
1700816226.794184,3,east_waypt_survey,station_3,0
1700816226.794263,3,east_waypt_survey,station_3,0
1700816227.044693,3,east_waypt_survey,station_3,0
1700816227.044774,3,east_waypt_survey,station_3,0
1700816227.295196,3,east_waypt_survey,station_3,0
1700816227.295229,3,east_waypt_survey,station_3,0
1700816227.545728,3,east_waypt_survey,station_3,0
1700816227.545806,3,east_waypt_survey,station_3,0
1700816227.796172,3,east_waypt_survey,station_3,0
1700816227.796252,3,east_waypt_survey,station_3,0
1700816228.046773,3,east_waypt_survey,station_3,0
1700816228.046852,3,east_waypt_survey,station_3,0
1700816228.297185,3,east_waypt_survey,station_3,0
1700816228.297265,3,east_waypt_survey,station_3,0
1700816228.547835,3,east_waypt_survey,station_3,0
1700816228.547916,3,east_waypt_survey,station_3,0
1700816228.798350,3,east_waypt_survey,station_3,0
1700816228.798430,3,east_waypt_survey,station_3,0
1700816229.048877,3,east_waypt_survey,station_3,0
1700816229.048963,3,east_waypt_survey,station_3,0
1700816229.299413,3,east_waypt_survey,station_3,0
1700816229.299507,3,east_waypt_survey,station_3,0
1700816229.550221,3,east_waypt_survey,station_3,0
1700816229.550297,3,east_waypt_survey,station_3,0
1700816229.800598,3,east_waypt_survey,station_3,0
1700816229.800675,3,east_waypt_survey,station_3,0
1700816230.051184,3,east_waypt_survey,station_3,0
1700816230.051263,3,east_waypt_survey,station_3,0
1700816230.301679,3,east_waypt_survey,station_3,0
1700816230.301748,3,east_waypt_survey,station_3,0
1700816230.552375,3,east_waypt_survey,station_3,0
1700816230.552453,3,east_waypt_survey,station_3,0
1700816230.802887,3,east_waypt_survey,station_3,0
1700816230.802969,3,east_waypt_survey,station_3,0
1700816231.053374,3,east_waypt_survey,station_3,0
1700816231.053474,3,east_waypt_survey,station_3,0
1700816231.303716,3,east_waypt_survey,station_3,0
1700816231.303744,3,east_waypt_survey,station_3,0
1700816231.554180,3,east_waypt_survey,station_3,0
1700816231.554289,3,east_waypt_survey,station_3,0
1700816231.804603,3,east_waypt_survey,station_3,0
1700816231.804679,3,east_waypt_survey,station_3,0
1700816232.055194,3,east_waypt_survey,station_3,0
1700816232.055277,3,east_waypt_survey,station_3,0
1700816232.305675,3,east_waypt_survey,station_3,0
1700816232.305761,3,east_waypt_survey,station_3,0
1700816232.556373,3,east_waypt_survey,station_3,0
1700816232.556454,3,east_waypt_survey,station_3,0
1700816232.806902,3,east_waypt_survey,station_3,0
1700816232.807015,3,east_waypt_survey,station_3,0
1700816233.057628,3,east_waypt_survey,station_3,0
1700816233.057733,3,east_waypt_survey,station_3,0
1700816233.308090,3,east_waypt_survey,station_3,0
1700816233.308173,3,east_waypt_survey,station_3,0
1700816233.558785,3,east_waypt_survey,station_3,0
1700816233.558894,3,east_waypt_survey,station_3,0
1700816233.809229,3,east_waypt_survey,station_3,0
1700816233.809313,3,east_waypt_survey,station_3,0
1700816234.059633,3,east_waypt_survey,station_3,0
1700816234.059703,3,east_waypt_survey,station_3,0
1700816234.310114,3,east_waypt_survey,station_3,0
1700816234.310186,3,east_waypt_survey,station_3,0
1700816234.560748,3,east_waypt_survey,station_3,0
1700816234.560829,3,east_waypt_survey,station_3,0
1700816234.811283,3,east_waypt_survey,station_3,0
1700816234.811364,3,east_waypt_survey,station_3,0
1700816235.061775,3,east_waypt_survey,station_3,0
1700816235.061847,3,east_waypt_survey,station_3,0
1700816235.312193,3,east_waypt_survey,station_3,0
1700816235.312267,3,east_waypt_survey,station_3,0
1700816235.562763,3,east_waypt_survey,station_3,0
1700816235.562811,3,east_waypt_survey,station_3,0
1700816235.813193,3,east_waypt_survey,station_3,0
1700816235.813293,3,east_waypt_survey,station_3,0
1700816236.063750,3,east_waypt_survey,station_3,0
1700816236.063854,3,east_waypt_survey,station_3,0
1700816236.314154,3,east_waypt_survey,station_3,0
1700816236.314249,3,east_waypt_survey,station_3,0
1700816236.564837,3,east_waypt_survey,station_3,0
1700816236.564926,3,east_waypt_survey,station_3,0
1700816236.815396,3,east_waypt_survey,station_3,0
1700816236.815524,3,east_waypt_survey,station_3,0
1700816237.065962,3,east_waypt_survey,station_3,0
1700816237.066069,3,east_waypt_survey,station_3,0
1700816237.316450,3,east_waypt_survey,station_3,0
1700816237.316545,3,east_waypt_survey,station_3,0
1700816237.567123,3,east_waypt_survey,station_3,0
1700816237.567209,3,east_waypt_survey,station_3,0
1700816237.817495,3,east_waypt_survey,station_3,0
1700816237.817596,3,east_waypt_survey,station_3,0
1700816238.067978,3,east_waypt_survey,station_3,0
1700816238.068087,3,east_waypt_survey,station_3,0
1700816238.318403,3,east_waypt_survey,station_3,0
1700816238.318504,3,east_waypt_survey,station_3,0
1700816238.569034,3,east_waypt_survey,station_3,0
1700816238.569131,3,east_waypt_survey,station_3,0
1700816238.819472,3,east_waypt_survey,station_3,0
1700816238.819578,3,east_waypt_survey,station_3,0
1700816239.069994,3,east_waypt_survey,station_3,0
1700816239.070093,3,east_waypt_survey,station_3,0
1700816239.320476,3,east_waypt_survey,station_3,0
1700816239.320579,3,east_waypt_survey,station_3,0
1700816239.571137,3,east_waypt_survey,station_3,0
1700816239.571237,3,east_waypt_survey,station_3,0
1700816239.821633,3,east_waypt_survey,station_3,0
1700816239.821748,3,east_waypt_survey,station_3,0
1700816240.072180,3,east_waypt_survey,station_3,0
1700816240.072253,3,east_waypt_survey,station_3,0
1700816240.322671,3,east_waypt_survey,station_3,0
1700816240.322746,3,east_waypt_survey,station_3,0
1700816240.573276,3,east_waypt_survey,station_3,0
1700816240.573344,3,east_waypt_survey,station_3,0
1700816240.823784,3,east_waypt_survey,station_3,0
1700816240.823863,3,east_waypt_survey,station_3,0
1700816241.074340,3,east_waypt_survey,station_3,0
1700816241.074416,3,east_waypt_survey,station_3,0
1700816241.324745,3,east_waypt_survey,station_3,0
1700816241.324927,3,east_waypt_survey,station_3,0
1700816241.575486,3,east_waypt_survey,station_3,0
1700816241.575568,3,east_waypt_survey,station_3,0
1700816241.826024,3,east_waypt_survey,station_3,0
1700816241.826109,3,east_waypt_survey,station_3,0
1700816242.076511,3,east_waypt_survey,station_3,0
1700816242.076589,3,east_waypt_survey,station_3,0
1700816242.327036,3,east_waypt_survey,station_3,0
1700816242.327211,3,east_waypt_survey,station_3,0
1700816242.577769,3,east_waypt_survey,station_3,0
1700816242.577849,3,east_waypt_survey,station_3,0
1700816242.828158,3,east_waypt_survey,station_3,0
1700816242.828229,3,east_waypt_survey,station_3,0
1700816243.078719,3,east_waypt_survey,station_3,0
1700816243.078796,3,east_waypt_survey,station_3,0
1700816243.329121,3,east_waypt_survey,station_3,0
1700816243.329285,3,east_waypt_survey,station_3,0
1700816243.579829,3,east_waypt_survey,station_3,0
1700816243.579908,3,east_waypt_survey,station_3,0
1700816243.830328,3,east_waypt_survey,station_3,0
1700816243.830408,3,east_waypt_survey,station_3,0
1700816244.080811,3,east_waypt_survey,station_3,0
1700816244.080889,3,east_waypt_survey,station_3,0
1700816244.331222,3,east_waypt_survey,station_3,0
1700816244.331499,3,east_waypt_survey,station_3,0
1700816244.582028,3,east_waypt_survey,station_3,0
1700816244.582107,3,east_waypt_survey,station_3,0
1700816244.832437,3,east_waypt_survey,station_3,0
1700816244.832514,3,east_waypt_survey,station_3,0
1700816245.082939,3,east_waypt_survey,station_3,0
1700816245.083024,3,east_waypt_survey,station_3,0
1700816245.333438,3,east_waypt_survey,station_3,0
1700816245.333611,3,east_waypt_survey,station_3,0
1700816245.584035,3,east_waypt_survey,station_3,0
1700816245.584123,3,east_waypt_survey,station_3,0
1700816245.834518,3,east_waypt_survey,station_3,0
1700816245.834600,3,east_waypt_survey,station_3,0
1700816246.084982,3,east_waypt_survey,station_3,0
1700816246.085055,3,east_waypt_survey,station_3,0
1700816246.335341,3,east_waypt_survey,station_3,0
1700816246.335544,3,east_waypt_survey,station_3,0
1700816246.586082,3,east_waypt_survey,station_3,0
1700816246.586177,3,east_waypt_survey,station_3,0
1700816246.836506,3,east_waypt_survey,station_3,0
1700816246.836581,3,east_waypt_survey,station_3,0
1700816247.087039,3,east_waypt_survey,station_3,0
1700816247.087103,3,east_waypt_survey,station_3,0
1700816247.337454,3,east_waypt_survey,station_4,0
1700816247.337666,3,east_waypt_survey,station_4,0
1700816247.588161,3,east_waypt_survey,station_4,0
1700816247.588280,3,east_waypt_survey,station_4,0
1700816247.838605,3,east_waypt_survey,station_4,0
1700816247.838708,3,east_waypt_survey,station_4,0
1700816248.089131,3,east_waypt_survey,station_4,0
1700816248.089214,3,east_waypt_survey,station_4,0
1700816248.339547,3,east_waypt_survey,station_4,0
1700816248.339734,3,east_waypt_survey,station_4,0
1700816248.590209,3,east_waypt_survey,station_4,0
1700816248.590284,3,east_waypt_survey,station_4,0
1700816248.840559,3,east_waypt_survey,station_4,0
1700816248.840637,3,east_waypt_survey,station_4,0
1700816249.090980,3,east_waypt_survey,station_4,0
1700816249.091060,3,east_waypt_survey,station_4,0
1700816249.341401,3,east_waypt_survey,station_4,0
1700816249.341560,3,east_waypt_survey,station_4,0
1700816249.591921,3,east_waypt_survey,station_4,0
1700816249.592031,3,east_waypt_survey,station_4,0
1700816249.842438,3,east_waypt_survey,station_4,0
1700816249.842514,3,east_waypt_survey,station_4,0
1700816250.092923,3,east_waypt_survey,station_4,0
1700816250.092991,3,east_waypt_survey,station_4,0
1700816250.343301,3,east_waypt_survey,station_4,0
1700816250.343526,3,east_waypt_survey,station_4,0
1700816250.593945,3,east_waypt_survey,station_4,0
1700816250.594050,3,east_waypt_survey,station_4,0
1700816250.844348,3,east_waypt_survey,station_4,0
1700816250.844420,3,east_waypt_survey,station_4,0
1700816251.094774,3,east_waypt_survey,station_4,0
1700816251.094867,3,east_waypt_survey,station_4,0
1700816251.345197,3,east_waypt_survey,station_4,0
1700816251.345393,3,east_waypt_survey,station_4,0
1700816251.595807,3,east_waypt_survey,station_4,0
1700816251.595915,3,east_waypt_survey,station_4,0
1700816251.846251,3,east_waypt_survey,station_4,0
1700816251.846359,3,east_waypt_survey,station_4,0
1700816252.096761,3,east_waypt_survey,station_4,0
1700816252.096830,3,east_waypt_survey,station_4,0
1700816252.347169,3,east_waypt_survey,station_4,0
1700816252.347373,3,east_waypt_survey,station_4,0
1700816252.597859,3,east_waypt_survey,station_4,0
1700816252.597931,3,east_waypt_survey,station_4,0
1700816252.848240,3,east_waypt_survey,station_4,0
1700816252.848322,3,east_waypt_survey,station_4,0
1700816253.098848,3,east_waypt_survey,station_4,0
1700816253.098922,3,east_waypt_survey,station_4,0
1700816253.349157,3,east_waypt_survey,station_4,0
1700816253.349230,3,east_waypt_survey,station_4,0
1700816253.599580,3,east_waypt_survey,station_4,0
1700816253.599680,3,east_waypt_survey,station_4,0
1700816253.850124,3,east_waypt_survey,station_4,0
1700816253.850241,3,east_waypt_survey,station_4,0
1700816254.100632,3,east_waypt_survey,station_4,0
1700816254.100702,3,east_waypt_survey,station_4,0
1700816254.351007,3,east_waypt_survey,station_4,0
1700816254.351206,3,east_waypt_survey,station_4,0
1700816254.601660,3,east_waypt_survey,station_4,0
1700816254.601760,3,east_waypt_survey,station_4,0
1700816254.852043,3,east_waypt_survey,station_4,0
1700816254.852146,3,east_waypt_survey,station_4,0
1700816255.102526,3,east_waypt_survey,station_4,0
1700816255.102632,3,east_waypt_survey,station_4,0
1700816255.353000,3,east_waypt_survey,station_4,0
1700816255.353220,3,east_waypt_survey,station_4,0
1700816255.603669,3,east_waypt_survey,station_4,0
1700816255.603764,3,east_waypt_survey,station_4,0
1700816255.854031,3,east_waypt_survey,station_4,0
1700816255.854128,3,east_waypt_survey,station_4,0
1700816256.104605,3,east_waypt_survey,station_4,0
1700816256.104707,3,east_waypt_survey,station_4,0
1700816256.355012,3,east_waypt_survey,station_4,0
1700816256.355226,3,east_waypt_survey,station_4,0
1700816256.605764,3,east_waypt_survey,station_4,0
1700816256.605841,3,east_waypt_survey,station_4,0
1700816256.856136,3,east_waypt_survey,station_4,0
1700816256.856218,3,east_waypt_survey,station_4,0
1700816257.106614,3,east_waypt_survey,station_4,0
1700816257.106693,3,east_waypt_survey,station_4,0
1700816257.357033,3,east_waypt_survey,station_4,0
1700816257.357247,3,east_waypt_survey,station_4,0
1700816257.607695,3,east_waypt_survey,station_4,0
1700816257.607778,3,east_waypt_survey,station_4,0
1700816257.858160,3,east_waypt_survey,station_4,0
1700816257.858255,3,east_waypt_survey,station_4,0
1700816258.108640,3,east_waypt_survey,station_4,0
1700816258.108714,3,east_waypt_survey,station_4,0
1700816258.359026,3,east_waypt_survey,station_4,0
1700816258.359247,3,east_waypt_survey,station_4,0
1700816258.609727,3,east_waypt_survey,station_4,0
1700816258.609793,3,east_waypt_survey,station_4,0
1700816258.860089,3,east_waypt_survey,station_4,0
1700816258.860180,3,east_waypt_survey,station_4,0
1700816259.110558,3,east_waypt_survey,station_4,0
1700816259.110655,3,east_waypt_survey,station_4,0
1700816259.361016,3,east_waypt_survey,station_4,0
1700816259.361258,3,east_waypt_survey,station_4,0
1700816259.611719,3,east_waypt_survey,station_4,0
1700816259.611789,3,east_waypt_survey,station_4,0
1700816259.862053,3,east_waypt_survey,station_4,0
1700816259.862149,3,east_waypt_survey,station_4,0
1700816260.112519,3,east_waypt_survey,station_4,0
1700816260.112607,3,east_waypt_survey,station_4,0
1700816260.363007,3,east_waypt_survey,station_4,0
1700816260.363231,3,east_waypt_survey,station_4,0
1700816260.613792,3,east_waypt_survey,station_4,0
1700816260.613886,3,east_waypt_survey,station_4,0
1700816260.864209,3,east_waypt_survey,station_4,0
1700816260.864310,3,east_waypt_survey,station_4,0
1700816261.114706,3,east_waypt_survey,station_4,0
1700816261.114811,3,east_waypt_survey,station_4,0
1700816261.365203,3,east_waypt_survey,station_4,0
1700816261.365408,3,east_waypt_survey,station_4,0
1700816261.615700,3,east_waypt_survey,station_4,0
1700816261.615743,3,east_waypt_survey,station_4,0
1700816261.866130,3,east_waypt_survey,station_4,0
1700816261.866232,3,east_waypt_survey,station_4,0
1700816262.116685,3,east_waypt_survey,station_4,0
1700816262.116789,3,east_waypt_survey,station_4,0
1700816262.367120,3,east_waypt_survey,station_4,0
1700816262.367281,3,east_waypt_survey,station_4,0
1700816262.617658,3,east_waypt_survey,,0
1700816262.617752,3,east_waypt_survey,,0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,93 @@
//-------- FILE: alpha.bhv -------------
initialize DEPLOY = false
initialize RETURN = false
//----------------------------------------------
Behavior = BHV_Waypoint
{
name = waypt_survey
pwt = 100
condition = RETURN = false
condition = DEPLOY = true
endflag = RETURN = true
configflag = CRUISE_SPD = $[SPEED]
//configflag = OSPOS = $[OSX],$[OSY]
activeflag = INFO=$[OWNSHIP]
activeflag = INFO=$[BHVNAME]
activeflag = INFO=$[BHVTYPE]
cycleflag = CINFO=$[OSX],$[OSY]
wptflag = PREV=$(PX),$(PY)
wptflag = NEXT=$(NX),$(NY)
wptflag = TEST=$(X),$(Y)
wptflag = OSPOS=$(OSX),$(OSY)
wptflag_on_start = true
updates = WPT_UPDATE
perpetual = true
speed_alt = 1.2
use_alt_speed = true
lead = 8
lead_damper = 1
lead_to_start = true
speed = 12 // meters per second
capture_line = true
capture_radius = 5.0
slip_radius = 15.0
efficiency_measure = all
// points = pts={107.5,-53.5:112,-43.8:112,-46.1:111.7,-49.3:108.3,-52.7:107.7,-53.3}
polygon = 60,-40 : 60,-160 : 150,-160 : 180,-100 : 150,-40
order = normal
//repeat = 100000
repeat = 3
visual_hints = nextpt_color=yellow
visual_hints = nextpt_vertex_size=8
visual_hints = nextpt_lcolor=gray70
visual_hints = vertex_color=dodger_blue, edge_color=white
visual_hints = vertex_size=5, edge_size=1
}
//----------------------------------------------
Behavior=BHV_Waypoint
{
name = waypt_return
pwt = 100
condition = RETURN = true
condition = DEPLOY = true
perpetual = true
updates = RETURN_UPDATE
endflag = RETURN = false
endflag = DEPLOY = false
endflag = MISSION = complete
speed = 2.0
capture_radius = 2.0
slip_radius = 8.0
points = 0,-20
}
//----------------------------------------------
Behavior=BHV_ConstantSpeed
{
name = const_speed
pwt = 200
condition = SPD=true
condition = DEPLOY = true
perpetual = true
updates = SPEED_UPDATE
endflag = SPD = false
speed = 0.5
duration = 10
duration_reset = CONST_SPD_RESET=true
}

View File

@@ -0,0 +1,218 @@
//-------------------------------------------------
// NAME: M. Benjamin, MIT CSAIL
// FILE: alpha.moos
//-------------------------------------------------
ServerHost = localhost
ServerPort = 9000
Community = alpha
MOOSTimeWarp = 1
// Forest Lake
LatOrigin = 43.825300
LongOrigin = -70.330400
// MIT Sailing Pavilion (use this one)
// LatOrigin = 42.358456
// LongOrigin = -71.087589
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
Run = MOOSDB @ NewConsole = false
Run = pLogger @ NewConsole = false
Run = uSimMarineV22 @ NewConsole = false
Run = pMarinePIDV22 @ NewConsole = false
Run = pHelmIvP @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
Run = uProcessWatch @ NewConsole = false
Run = pNodeReporter @ NewConsole = false
Run = pRealm @ NewConsole = false
}
//------------------------------------------
// pLogger config block
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
Log = REPORT @ 0 NOSYNC
Log = BHV_SETTINGS @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
//------------------------------------------
// uProcessWatch config block
ProcessConfig = uProcessWatch
{
AppTick = 4
CommsTick = 4
watch_all = true
nowatch = uPokeDB*
nowatch = uQueryDB*
nowatch = uXMS*
nowatch = uMAC*
}
//------------------------------------------
// uSimMarineV22 config block
ProcessConfig = uSimMarineV22
{
AppTick = 4
CommsTick = 4
start_pos = x=0, y=-20, heading=180, speed=0
prefix = NAV
turn_rate = 40
thrust_map = 0:0, 20:1, 40:2, 60:3, 80:4, 100:5
//thrust_reflect = true
}
//------------------------------------------
// pHelmIvP config block
ProcessConfig = pHelmIvP
{
AppTick = 4
CommsTick = 4
behaviors = alpha.bhv
domain = course:0:359:360
domain = speed:0:4:41
}
//------------------------------------------
// pMarinePID config block
ProcessConfig = pMarinePIDV22
{
AppTick = 20
CommsTick = 20
verbose = true
depth_control = false
// SIM_INSTABILITY = 20
// Yaw PID controller
yaw_pid_kp = 1.2
yaw_pid_kd = 0.0
yaw_pid_ki = 0.3
yaw_pid_integral_limit = 0.07
// Speed PID controller
speed_pid_kp = 1.0
speed_pid_kd = 0.0
speed_pid_ki = 0.0
speed_pid_integral_limit = 0.07
//MAXIMUMS
maxrudder = 100
maxthrust = 100
// A non-zero SPEED_FACTOR overrides use of SPEED_PID
// Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR
speed_factor = 20
}
//------------------------------------------
// pMarineViewer config block
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
button_one = DEPLOY # DEPLOY=true
button_one = MOOS_MANUAL_OVERRIDE=false # RETURN=false
button_two = RETURN # RETURN=true
button_three = SLOWER # WPT_UPDATE=speed=1.5
button_four = FASTER # WPT_UPDATE=speed=3.5
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
}
//------------------------------------------
// pNodeReporter config block
ProcessConfig = pNodeReporter
{
AppTick = 2
CommsTick = 2
platform_type = kayak
platform_color = yellow
platform_length = 4
}

37
missions/s1_alpha/clean.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
#--------------------------------------------------------------
# Script: clean.sh
# Author: Michael Benjamin
# Date: June 2020
#----------------------------------------------------------
# Part 1: Declare global var defaults
#----------------------------------------------------------
VERBOSE=""
#-------------------------------------------------------
# Part 2: Check for and handle command-line arguments
#-------------------------------------------------------
for ARGI; do
if [ "${ARGI}" = "--help" -o "${ARGI}" = "-h" ] ; then
echo "clean.sh [SWITCHES] "
echo " --verbose "
echo " --help, -h "
exit 0;
elif [ "${ARGI}" = "--verbose" -o "${ARGI}" = "-v" ] ; then
VERBOSE="-v"
else
echo "clean.sh: Bad Arg:" $ARGI
exit 1
fi
done
#-------------------------------------------------------
# Part 2: Do the cleaning!
#-------------------------------------------------------
if [ "${VERBOSE}" = "-v" ]; then
echo "Cleaning: $PWD"
fi
rm -rf $VERBOSE MOOSLog_* XLOG_* LOG_*
rm -f $VERBOSE *~ *.moos++
rm -f $VERBOSE targ_*
rm -f $VERBOSE .LastOpenedMOOSLogDirectory

39
missions/s1_alpha/launch.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/bin/bash -e
#----------------------------------------------------------
# Script: launch.sh
# Author: Michael Benjamin
# LastEd: May 20th 2019
#----------------------------------------------------------
# Part 1: Set Exit actions and declare global var defaults
#----------------------------------------------------------
TIME_WARP=1
COMMUNITY="alpha"
GUI="yes"
#----------------------------------------------------------
# Part 2: Check for and handle command-line arguments
#----------------------------------------------------------
for ARGI; do
if [ "${ARGI}" = "--help" -o "${ARGI}" = "-h" ] ; then
echo "launch.sh [SWITCHES] [time_warp] "
echo " --help, -h Show this help message "
exit 0;
elif [ "${ARGI}" = "--nogui" ] ; then
GUI="no"
elif [ "${ARGI//[^0-9]/}" = "$ARGI" -a "$TIME_WARP" = 1 ]; then
TIME_WARP=$ARGI
else
echo "launch.sh Bad arg:" $ARGI " Exiting with code: 1"
exit 1
fi
done
#----------------------------------------------------------
# Part 3: Launch the processes
#----------------------------------------------------------
echo "Launching $COMMUNITY MOOS Community with WARP:" $TIME_WARP
pAntler $COMMUNITY.moos --MOOSTimeWarp=$TIME_WARP >& /dev/null &
uMAC -t $COMMUNITY.moos
kill -- -$$

5
scripts/README Normal file
View File

@@ -0,0 +1,5 @@
This directory may contain developer utility scripts.
The MyGenMOOSApp script is similar to that found in the moos-ivp/trunk/scripts/
directory. Users are encouraged to tailor this one to their own needs.

43
setting/ControlParam.json Normal file
View File

@@ -0,0 +1,43 @@
{
"speed" :
{
"Kp" : 10.0,
"Ki" : 5.0,
"Kd" : 0.0,
"LimitDelta" : 50,
"MaxOut" : 100,
"MinOut" : 0
},
"heading" :
{
"Kp" : 0.8,
"Ki" : 0.05,
"Kd" : 2.2,
"LimitDelta" : 5,
"MaxOut" : 30,
"MinOut" : -30
},
"depth" :
{
"Kp" : 10.0,
"Ki" : 0.3,
"Kd" : 2.0,
"LimitDelta" : 5,
"MaxOut" : 10,
"MinOut" : -10
},
"pitch" :
{
"Kp" : 0.6,
"Ki" : 0.03,
"Kd" : 1.5,
"LimitDelta" : 5,
"MaxOut" : 30,
"MinOut" : -30
},
"const_thrust" : 0,
"dead_zone" : 10,
"speedCol" : true,
"depthCol" : true,
"HeadingCol" : true
}

6
setting/Origin.json Normal file
View File

@@ -0,0 +1,6 @@
{
"AltOrigin" : 0,
"LatOrigin" : 50.825298309326172,
"LongOrigin" : -90.330398559570312,
"TaskName" : "east_waypt_survey"
}

199
setting/PlanConfigure.json Normal file
View File

@@ -0,0 +1,199 @@
{
"east_waypt_survey" :
{
"boardStamp" : 1699945816.369447,
"clientStamp" : 1699945815.876014,
"closedLoop" : true,
"constSpeed" : -1.0,
"duration" : -1.0,
"maxDepth" : -1.0,
"minDepth" : -1.0,
"origin" :
{
"altitude" : 0.0,
"lat" : 50.825299999999999,
"lon" : -90.330399999999997
},
"perpetual" : false,
"points" :
[
{
"depth" : 10.0,
"east" : 121.51780491942635,
"lat" : 43.824428558349609,
"lon" : -70.328887939453125,
"name" : "station_1",
"north" : -96.635898081838207,
"speed" : 3.0,
"type" : "point"
},
{
"depth" : 8.0,
"east" : 201.91511278899367,
"lat" : 43.824676513671875,
"lon" : -70.327888488769531,
"name" : "station_2",
"north" : -69.083922179977435,
"speed" : 5.0,
"type" : "point"
},
{
"depth" : 6.0,
"east" : 203.75986507534614,
"lat" : 43.823623657226562,
"lon" : -70.327865600585938,
"name" : "station_3",
"north" : -186.06549181810368,
"speed" : 7.0,
"type" : "point"
},
{
"depth" : 4.0,
"east" : 131.33919016412341,
"lat" : 43.823623657226562,
"lon" : -70.328765869140625,
"name" : "station_4",
"north" : -186.06731482554795,
"speed" : 9.0,
"type" : "point"
}
],
"priority" : 10,
"repeat" : 1,
"sourceAddress" : "10.25.0.160",
"sourceName" : "CCU Neptus 0_163",
"taskId" : "1",
"taskName" : "east_waypt_survey"
},
"plan1_toMoos" :
{
"boardStamp" : 1699602762.2845099,
"clientStamp" : 1699602762.7520001,
"closedLoop" : false,
"duration" : -1.0,
"maxDepth" : -1.0,
"minDepth" : -1.0,
"origin" :
{
"altitude" : 0.0,
"lat" : 50.825299999999999,
"lon" : -90.330399999999997
},
"perpetual" : false,
"points" :
[
{
"depth" : 2.0,
"east" : 117.83291847226671,
"lat" : 43.825713999999998,
"lon" : -70.32893,
"name" : "Goto1",
"north" : 46.200319317940647,
"speed" : 2.0,
"type" : "point"
},
{
"depth" : 2.0,
"east" : -17.18366087421261,
"lat" : 43.826782000000001,
"lon" : -70.330609999999993,
"name" : "Goto2",
"north" : 164.87635389378988,
"speed" : 2.0,
"type" : "point"
},
{
"depth" : 2.0,
"east" : -241.19025325837993,
"lat" : 43.825465999999999,
"lon" : -70.333399999999997,
"name" : "Goto3",
"north" : 18.653618776002617,
"speed" : 2.0,
"type" : "point"
},
{
"depth" : 2.0,
"east" : -203.76118848802312,
"lat" : 43.823234999999997,
"lon" : -70.332930000000005,
"name" : "Goto4",
"north" : -229.29782627916489,
"speed" : 2.0,
"type" : "point"
}
],
"priority" : 10,
"repeat" : 1,
"sourceAddress" : "10.25.0.163",
"sourceName" : "CCU JHL 0_163",
"taskId" : "0,106,3,-96,8,-103,13,6,9,32,50,-13,47,-71,61,1",
"taskName" : "plan1_toMoos"
},
"west_waypt_survey" :
{
"boardStamp" : 1698135268.3958621,
"clientStamp" : 1698135268.2057669,
"closedLoop" : true,
"constSpeed" : -1.0,
"duration" : -1.0,
"maxDepth" : -1.0,
"minDepth" : -1.0,
"origin" :
{
"altitude" : 0.0,
"lat" : 43.825298309326172,
"lon" : -70.330398559570312
},
"perpetual" : true,
"points" :
[
{
"depth" : 9.0,
"east" : -91.445572043530944,
"lat" : 43.824195861816406,
"lon" : -70.331535339355469,
"name" : "station_1",
"north" : -122.49101460421512,
"speed" : 4.0,
"type" : "point"
},
{
"depth" : 7.0,
"east" : 5.5235485468483718,
"lat" : 43.824298858642578,
"lon" : -70.330329895019531,
"name" : "station_2",
"north" : -111.04778559533926,
"speed" : 6.0,
"type" : "point"
},
{
"depth" : 5.0,
"east" : 4.2961493948725868,
"lat" : 43.823516845703125,
"lon" : -70.330345153808594,
"name" : "station_3",
"north" : -197.93630920628678,
"speed" : 8.0,
"type" : "track"
},
{
"depth" : 3.0,
"east" : -81.013520711457318,
"lat" : 43.823207855224609,
"lon" : -70.331405639648438,
"name" : "station_4",
"north" : -232.26737690334403,
"speed" : 10.0,
"type" : "track"
}
],
"priority" : 10,
"repeat" : -1,
"sourceAddress" : "10.25.0.160",
"sourceName" : "CCU Neptus 0_163",
"taskId" : "2",
"taskName" : "west_waypt_survey"
}
}

31
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,31 @@
##############################################################################
# FILE: moos-ivp-extend/src/CMakeLists.txt
# DATE: 2010/09/07
# 2020/05/09 minor mods
# DESCRIPTION: CMakeLists.txt file for the moos-ivp-extend source directory
##############################################################################
#============================================================================
# Add the libraries in the current directory to the include path
#============================================================================
FILE(GLOB LOCAL_LIBRARY_DIRS ./lib_*)
INCLUDE_DIRECTORIES(${LOCAL_LIBRARY_DIRS}/* ${LOCAL_LIBRARY_DIRS}/DUNE/)
#============================================================================
# List the subdirectories to build...
#============================================================================
ADD_SUBDIRECTORY(pBoardSupportComm)
ADD_SUBDIRECTORY(pSurfaceSupportComm)
ADD_SUBDIRECTORY(pClientViewer)
ADD_SUBDIRECTORY(pDataManagement)
ADD_SUBDIRECTORY(pTaskManagement)
ADD_SUBDIRECTORY(pTaskSend)
ADD_SUBDIRECTORY(pMotionControler)
ADD_SUBDIRECTORY(pEmulator)
ADD_SUBDIRECTORY(pFaultHandle)
ADD_SUBDIRECTORY(pStateManagement)
##############################################################################
# END of CMakeLists.txt
##############################################################################

View File

@@ -0,0 +1,892 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: BoardSupportComm.cpp */
/* DATE: */
/************************************************************/
#include <iterator>
#include "BoardSupportComm.h"
#include <cmath>
#define TCP_RECEIVE_PORT 8001
#define TCP_SERVER_ADDRESS "127.0.0.1"
#define MOOS_AUV_SIM
// #define MATLAB_AUV_SIM
// #ifdef TRUE_AUV
using namespace std;
BoardSupportComm::BoardSupportComm()
{
estimatedState.currentLon = 0;
estimatedState.currentLat = 0;
estimatedState.currentAltitude = 0;
estimatedState.referenceLon = 0;
estimatedState.referenceLat = 0;
estimatedState.referenceAltitude = 0;
estimatedState.offsetNorth = 0;
estimatedState.offsetEast = 0;
estimatedState.offsetDown = 0;
estimatedState.roll = 0;
estimatedState.pitch = 0;
estimatedState.yaw = 0;
estimatedState.linearVelocityNorth = 0;
estimatedState.linearVelocityEast = 0;
estimatedState.linearVelocityDown = 0;
estimatedState.height = 0;
estimatedState.depth = 0;
embeddedInfo.header = 0xEBA1;
embeddedInfo.count = 0;
embeddedInfo.size = 0;
embeddedInfo.drive_mode = 0xFF;
embeddedInfo.height = 0;
embeddedInfo.depth = 0;
embeddedInfo.yaw = 0;
embeddedInfo.pitch = 0;
embeddedInfo.roll = 0;
embeddedInfo.ins_vx = 0;
embeddedInfo.ins_vy = 0;
embeddedInfo.ins_vz = 0;
embeddedInfo.lon = 0;
embeddedInfo.lat = 0;
embeddedInfo.alt = 0;
embeddedInfo.dvl_vx = 0;
embeddedInfo.dvl_vy = 0;
embeddedInfo.dvl_vz = 0;
embeddedInfo.rpm = 0;
embeddedInfo.light_enable = 0;
embeddedInfo.battery_voltage = 0;
embeddedInfo.battery_level = 0;
embeddedInfo.battery_temp = 0;
embeddedInfo.fault_leakSensor = 0;
embeddedInfo.fault_battery = 0;
embeddedInfo.fault_emergencyBattery = 0;
embeddedInfo.fault_thrust = 0;
embeddedInfo.iridium = 0xFF;
embeddedInfo.throwing_load = 0xFF;
embeddedInfo.dvl_status = 0;
embeddedInfo.footer = 0xEE1A;
executeCommand.header = 0xEBA2; //1:[0,1]
executeCommand.count = 16; //2:[2,3]
executeCommand.size = 21; //3:[4]
executeCommand.drive_mode = 0xFF; //4:[5]
executeCommand.thrust = 0; //5:[6]
executeCommand.yaw = 0; //6:[7,8]
executeCommand.depth = 0; //7:[9,10]
executeCommand.helm_top_angle = 0; //8:[11]
executeCommand.helm_bottom_angle = 0; //9:[12]
executeCommand.helm_left_angle = 0; //10:[13]
executeCommand.helm_right_angle = 0; //11:[14]
executeCommand.light_enable = 0; //12:[15]
executeCommand.dvl_enable = 0; //13:[16]
executeCommand.throwing_load_enable = 0; //14:[17]
executeCommand.crc = 0; //15:[18]
executeCommand.footer = 0xEE2A; //16:[19,20]
executeCommand.manual_mode = false;
tcpSockFD = -1;
tcpConnectRet = -1;
}
//---------------------------------------------------------
// Destructor
BoardSupportComm::~BoardSupportComm()
{
// delete tcpReceiveBuffer;
close(tcpSockFD);
}
//---------------------------------------------------------
// Procedure: OnNewMail
bool BoardSupportComm::OnNewMail(MOOSMSG_LIST &NewMail)
{
// AppCastingMOOSApp::OnNewMail(NewMail);
MOOSMSG_LIST::iterator p;
for(p=NewMail.begin(); p!=NewMail.end(); p++)
{
CMOOSMsg &msg = *p;
string key = msg.GetKey();
string comm = msg.GetCommunity();
double dval = msg.GetDouble();
string sval = msg.GetString();
string msrc = msg.GetSource();
double mtime = msg.GetTime();
bool mdbl = msg.IsDouble();
bool mstr = msg.IsString();
#ifdef MOOS_AUV_SIM
if(key == "NAV_X")
{
//E->N
estimatedState.offsetEast = msg.GetDouble();
}
if(key == "NAV_Y")
{
//N->E
estimatedState.offsetNorth = msg.GetDouble();
}
if(key == "NAV_Z")
{
//U->D
estimatedState.offsetDown = -msg.GetDouble();
}
if(key == "NAV_YAW")
{
double yawTemp = msg.GetDouble();
if (std::abs(yawTemp) <= M_PI)
{
if (yawTemp <= 0)
{
estimatedState.yaw = -yawTemp * 180 / M_PI;
}
else
{
estimatedState.yaw = (2 * M_PI - yawTemp) * 180 / M_PI;
}
}
}
if(key == "NAV_PITCH")
{
estimatedState.pitch = msg.GetDouble();
}
if(key == "NAV_LAT")
{
estimatedState.currentLat = msg.GetDouble();
}
if(key == "NAV_LONG")
{
estimatedState.currentLon = msg.GetDouble();
}
if(key == "NAV_SPEED")
{
estimatedState.linearVelocityNorth = msg.GetDouble() * cos(estimatedState.yaw);
estimatedState.linearVelocityEast = -msg.GetDouble() * sin(estimatedState.yaw);
estimatedState.linearVelocityDown = 0;
}
if(key == "NAV_DEPTH")
{
estimatedState.depth = msg.GetDouble();
}
if(key == "Fault_LeakSensor")
{
embeddedInfo.fault_leakSensor = (uint32_t)msg.GetDouble();
}
if(key == "Fault_Battery")
{
embeddedInfo.fault_battery = (uint8_t)msg.GetDouble();
}
if(key == "Fault_EmergencyBattery")
{
embeddedInfo.fault_emergencyBattery = (uint8_t)(msg.GetDouble());
}
if(key == "Fault_Thrust")
{
embeddedInfo.fault_thrust = (uint8_t)(msg.GetDouble());
}
#endif
if(key == "uManual_enable_cmd")
{
if (msg.GetDouble() == 1.0)
{
executeCommand.drive_mode = 0x02;
executeCommand.manual_mode = true;
}
else
{
executeCommand.drive_mode = 0xFF;
executeCommand.manual_mode = false;
}
}
if(key == "uManual_drive_cmd")
{
if (executeCommand.manual_mode)
{
std::string err;
Json::Value recvCommand;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &recvCommand, &err);
if (!parsingResult)
{
std::cerr << "Failed to parse JSON string." << std::endl;
return false;
}
int thrust = recvCommand["Thrust"].asInt();
if ((thrust < -100) or (thrust > 100))
{
return false;
}
executeCommand.thrust = convertIntToUchar(recvCommand["Thrust"].asInt(), -100, 100);
float heading = recvCommand["Heading"].asFloat();
if ((heading >= 0) && (heading <= 180))
{
executeCommand.yaw = heading * 10;
}
if ((heading < 0) && (heading >= -180))
{
executeCommand.yaw = (360 + heading) * 10;
}
if ((heading > 180) or (heading < -180))
{
executeCommand.yaw = 180 * 10;
}
executeCommand.depth = 0;
executeCommand.helm_top_angle = 0;
executeCommand.helm_bottom_angle = 0;
executeCommand.helm_left_angle = 0;
executeCommand.helm_right_angle = 0;
int serializeResult = serializeMessage(tcpSendBuffer);
if ((serializeResult == 0) && (tcpSockFD != -1))
{
try
{
write(tcpSockFD, tcpSendBuffer, executeCommand.size);
}
catch(const std::exception& e)
{
std::cerr << e.what() << '\n';
}
}
}
}
if(key == "uMotion_control_cmd")
{
if (executeCommand.manual_mode)
{
return false;
}
std::string err;
Json::Value recvCommand;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &recvCommand, &err);
if (!parsingResult)
{
std::cerr << "Failed to parse JSON string." << std::endl;
return false;
}
executeCommand.thrust = convertIntToUchar(recvCommand["thrust"].asInt(), -100, 100);
executeCommand.helm_top_angle = convertIntToUchar(recvCommand["rudder"].asInt(), -30, 30);
executeCommand.helm_bottom_angle = convertIntToUchar(recvCommand["rudder"].asInt(), -30, 30);
executeCommand.helm_left_angle = convertIntToUchar(recvCommand["elevator"].asInt(), -30, 30);
executeCommand.helm_right_angle = convertIntToUchar(recvCommand["elevator"].asInt(), -30, 30);
int serializeResult = serializeMessage(tcpSendBuffer);
// std::cout << "serializeResult: " << serializeResult << std::endl;
// printf("header: %u, %u\n", tcpSendBuffer[0], tcpSendBuffer[1]);
// printf("count: %u\n", tcpSendBuffer[2], tcpSendBuffer[3]);
// printf("size: %u\n", tcpSendBuffer[4]);
// printf("drive_mode: %u\n", tcpSendBuffer[5]);
// printf("thrust: %u\n", tcpSendBuffer[6]);
// printf("yaw: %u, %u\n", tcpSendBuffer[7], tcpSendBuffer[8]);
// printf("depth: %u, %u\n", tcpSendBuffer[9], tcpSendBuffer[10]);
// printf("helm_top_angle: %u\n", tcpSendBuffer[11]);
// printf("helm_bottom_angle: %u\n", tcpSendBuffer[12]);
// printf("helm_left_angle: %u\n", tcpSendBuffer[13]);
// printf("helm_right_angle: %u\n", tcpSendBuffer[14]);
// printf("light_enable: %u\n", tcpSendBuffer[15]);
// printf("dvl_enable: %u\n", tcpSendBuffer[16]);
// printf("throwing_load_enable: %u\n", tcpSendBuffer[17]);
// printf("crc: %u\n", tcpSendBuffer[18]);
// printf("footer: %u, %u\n", tcpSendBuffer[19], tcpSendBuffer[20]);
if ((serializeResult == 0) && (tcpSockFD != -1))
{
try
{
write(tcpSockFD, tcpSendBuffer, executeCommand.size);
}
catch(const std::exception& e)
{
std::cerr << e.what() << '\n';
}
}
}
if(key == "uMission_origin_cmd")
{
std::string err;
Json::Value recvCommand;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &recvCommand, &err);
if (!parsingResult)
{
std::cerr << "Failed to parse JSON string." << std::endl;
return false;
}
estimatedState.referenceAltitude = recvCommand["alt"].asFloat();
estimatedState.referenceLat = recvCommand["lat"].asFloat();
estimatedState.referenceLon = recvCommand["lon"].asFloat();
struct stat info;
if (stat(llaOriginPath.c_str(), &info) == 0)
{
std::ifstream ifs;
ifs.open(llaOriginPath, std::ios::in);
Json::Reader reader;
Json::Value originJsonValue;
reader.parse(ifs, originJsonValue);
ifs.close();
originJsonValue["LongOrigin"] = recvCommand["lon"].asFloat();
originJsonValue["LatOrigin"] = recvCommand["lat"].asFloat();
originJsonValue["AltOrigin"] = recvCommand["alt"].asFloat();
originJsonValue["TaskName"] = recvCommand["task"].asString();
Json::StreamWriterBuilder builder;
std::ofstream ofs;
ofs.open(llaOriginPath, std::ios::out);
ofs << Json::writeString(builder, originJsonValue) << std::endl;
ofs.close();
}
else
{
Json::Value originJsonValue;
originJsonValue["LongOrigin"] = recvCommand["lon"].asFloat();
originJsonValue["LatOrigin"] = recvCommand["lat"].asFloat();
originJsonValue["AltOrigin"] = recvCommand["alt"].asFloat();
originJsonValue["TaskName"] = recvCommand["task"].asString();
Json::StreamWriterBuilder builder;
std::ofstream ofs;
ofs.open(llaOriginPath, std::ios::out);
ofs << Json::writeString(builder, originJsonValue) << std::endl;
ofs.close();
}
}
}
return(true);
}
uint8_t BoardSupportComm::convertIntToUchar(int src, int min, int max)
{
uint8_t dst;
if (src < 0)
{
if (src < min)
{
dst = std::abs(min) + 0B10000000;
}
else
{
dst = std::abs(src) + 0B10000000;
}
}
else
{
if (src > max)
{
dst = std::abs(max);
}
else
{
dst = std::abs(src);
}
}
return dst;
}
bool BoardSupportComm::OnConnectToServer()
{
RegisterVariables();
return(true);
}
std::string BoardSupportComm::convertEmbeddedFormat(Json::Value &embeddedState)
{
#ifdef MOOS_AUV_SIM
embeddedState["driveMode"] = 0xFF;
embeddedState["height"] = 0;
embeddedState["depth"] = 0;
embeddedState["yaw"] = estimatedState.yaw;
embeddedState["pitch"] = 0;
embeddedState["roll"] = 0;
embeddedState["insVX"] = estimatedState.linearVelocityNorth * 0.01;
embeddedState["insVY"] = estimatedState.linearVelocityEast * 0.01;
embeddedState["insVZ"] = estimatedState.linearVelocityDown * 0.01;
embeddedState["currentLon"] = estimatedState.currentLon;
embeddedState["currentLat"] = estimatedState.currentLat;
embeddedState["currentAltitude"] = 0;
embeddedState["dvlVX"] = 0;
embeddedState["dvlVY"] = 0;
embeddedState["dvlVZ"] = 0;
embeddedState["rpm"] = 0;
embeddedState["lightEnable"] = 0;
embeddedState["batteryVoltage"] = 15;
embeddedState["batteryLevel"] = 60;
embeddedState["batteryTemp"] = 25;
// embeddedState["faultLeakSensor"] = 0;
// embeddedState["faultBattery"] = 0;
// embeddedState["faultEmergencyBattery"] = 0;
// embeddedState["faultThrust"] = 0;
embeddedState["faultLeakSensor"] = embeddedInfo.fault_leakSensor;
embeddedState["faultBattery"] = embeddedInfo.fault_battery;
embeddedState["faultEmergencyBattery"] = embeddedInfo.fault_emergencyBattery;
embeddedState["faultThrust"] = embeddedInfo.fault_thrust;
embeddedState["iridium"] = 0xFF;
embeddedState["throwingLoadEnable"] = 0xFF;
embeddedState["dvlStatus"] = 0;
#endif
#ifdef MATLAB_AUV_SIM
embeddedState["driveMode"] = embeddedInfo.drive_mode;
embeddedState["height"] = embeddedInfo.height * 0.01;
embeddedState["depth"] = embeddedInfo.depth * 0.01;
embeddedState["roll"] = embeddedInfo.roll * 0.01 * M_PI / 180; //N->N
embeddedState["pitch"] = embeddedInfo.pitch * 0.01 * M_PI / 180; //E->E
embeddedState["yaw"] = embeddedInfo.yaw * 0.01 * M_PI / 180; //D->D
embeddedState["insVX"] = embeddedInfo.ins_vx * 0.01; //N->N
embeddedState["insVY"] = embeddedInfo.ins_vy * 0.01; //E->E
embeddedState["insVZ"] = embeddedInfo.ins_vz * 0.01; //D->D
embeddedState["currentLon"] = embeddedInfo.lon * 0.000001;
embeddedState["currentLat"] = embeddedInfo.lat * 0.000001;
embeddedState["currentAltitude"] = embeddedInfo.alt * 0.01;
embeddedState["dvlVX"] = embeddedInfo.dvl_vx * 0.01; //N->N
embeddedState["dvlVY"] = embeddedInfo.dvl_vy * 0.01; //E->E
embeddedState["dvlVZ"] = embeddedInfo.dvl_vz * 0.01; //D->D
embeddedState["rpm"] = embeddedInfo.rpm;
embeddedState["lightEnable"] = embeddedInfo.light_enable;
embeddedState["batteryVoltage"] = embeddedInfo.battery_voltage;
embeddedState["batteryLevel"] = embeddedInfo.battery_level;
embeddedState["batteryTemp"] = embeddedInfo.battery_temp * 0.1;
embeddedState["faultLeakSensor"] = embeddedInfo.fault_leakSensor;
embeddedState["faultBattery"] = embeddedInfo.fault_battery;
embeddedState["faultEmergencyBattery"] = embeddedInfo.fault_emergencyBattery;
embeddedState["faultThrust"] = embeddedInfo.fault_thrust;
embeddedState["iridium"] = embeddedInfo.iridium;
embeddedState["throwingLoadEnable"] = embeddedInfo.throwing_load;
embeddedState["dvlStatus"] = embeddedInfo.dvl_status;
#endif
#ifdef TRUE_AUV
embeddedState["driveMode"] = embeddedInfo.drive_mode;
embeddedState["height"] = embeddedInfo.height * 0.01;
embeddedState["depth"] = embeddedInfo.depth * 0.01;
embeddedState["roll"] = embeddedInfo.pitch * 0.01 * M_PI / 180; //E->N
embeddedState["pitch"] = embeddedInfo.roll * 0.01 * M_PI / 180; //N->E
embeddedState["yaw"] = embeddedInfo.yaw * 0.01 * M_PI / 180; //D->D
embeddedState["insVX"] = embeddedInfo.ins_vy * 0.01; //E->N
embeddedState["insVY"] = embeddedInfo.ins_vx * 0.01; //N->E
embeddedState["insVZ"] = -embeddedInfo.ins_vz * 0.01; //U->D
embeddedState["currentLon"] = embeddedInfo.lon * 0.000001;
embeddedState["currentLat"] = embeddedInfo.lat * 0.000001;
embeddedState["currentAltitude"] = embeddedInfo.alt * 0.01;
embeddedState["dvlVX"] = embeddedInfo.dvl_vy * 0.01; //E->N
embeddedState["dvlVY"] = embeddedInfo.dvl_vx * 0.01; //N->E
embeddedState["dvlVZ"] = -embeddedInfo.dvl_vz * 0.01; //U->D
embeddedState["rpm"] = embeddedInfo.rpm;
embeddedState["lightEnable"] = embeddedInfo.light_enable;
embeddedState["batteryVoltage"] = embeddedInfo.battery_voltage;
embeddedState["batteryLevel"] = embeddedInfo.battery_level;
embeddedState["batteryTemp"] = embeddedInfo.battery_temp * 0.1;
embeddedState["faultLeakSensor"] = embeddedInfo.fault_leakSensor;
embeddedState["faultBattery"] = embeddedInfo.fault_battery;
embeddedState["faultEmergencyBattery"] = embeddedInfo.fault_emergencyBattery;
embeddedState["faultThrust"] = embeddedInfo.fault_thrust;
embeddedState["iridium"] = embeddedInfo.iridium;
embeddedState["throwingLoadEnable"] = embeddedInfo.throwing_load;
embeddedState["dvlStatus"] = embeddedInfo.dvl_status;
#endif
double currentLon = embeddedInfo.lon * 0.000001;
double currentLat = embeddedInfo.lat * 0.000001;
double currentAlt = embeddedInfo.alt * 0.01;
std::vector<double> reference = {estimatedState.referenceLon, estimatedState.referenceLat, estimatedState.referenceAltitude};
std::vector<double> current = {currentLon, currentLat, currentAlt};
std::vector<double> ned = {0, 0, 0};
ConvertLLAToNED(reference, current, ned);
embeddedState["north"] = ned.at(0);
embeddedState["east"]= ned.at(1);
embeddedState["referenceLon"]= estimatedState.referenceLon;
embeddedState["referenceLat"]= estimatedState.referenceLat;
embeddedState["referenceAltitude"]= estimatedState.referenceAltitude;
Json::StreamWriterBuilder builder;
std::string embeddedStateString = Json::writeString(builder, embeddedState);
return embeddedStateString;
}
void BoardSupportComm::tcpProcessThread()
{
while(1)
{
bzero(tcpReceiveBuffer, 0);
int lens = read(tcpSockFD, tcpReceiveBuffer, sizeof(tcpReceiveBuffer));
if(lens>0)
{
#ifndef MOOS_AUV_SIM
parseMessage((unsigned char* )tcpReceiveBuffer, lens);
#endif
Json::Value embeddedState;
std::string embeddedStateString = convertEmbeddedFormat(embeddedState);
Notify("uDevice_monitor_fb", embeddedStateString);
#ifndef MOOS_AUV_SIM
Notify("NAV_X", embeddedState["north"].asDouble());
Notify("NAV_Y", embeddedState["east"].asDouble());
Notify("NAV_Z", embeddedState["depth"].asDouble());
Notify("NAV_LAT", embeddedState["currentLat"].asDouble());
Notify("NAV_LONG", embeddedState["currentLon"].asDouble());
Notify("NAV_HEADING", embeddedState["yaw"].asDouble() * 180 / M_PI);
double driveSpeed = std::sqrt(std::pow((double)embeddedState["dvlVX"].asDouble(), 2)
+ std::pow((double)embeddedState["dvlVY"].asDouble(), 2)
+ std::pow((double)embeddedState["dvlVZ"].asDouble(), 2));
Notify("NAV_SPEED", driveSpeed);
Notify("NAV_DEPTH", embeddedState["depth"].asDouble());
Notify("NAV_ROLL", embeddedState["roll"].asDouble() * 180 / M_PI);
Notify("NAV_PITCH", embeddedState["pitch"].asDouble() * 180 / M_PI);
Notify("NAV_YAW", embeddedState["yaw"].asDouble() * 180 / M_PI);
#endif
}
}
}
// bool BoardSupportComm::buildReport()
// {
// m_msgs << "buildReport:" << embeddedStateString << endl;
// return true;
// }
bool BoardSupportComm::Iterate()
{
// AppCastingMOOSApp::Iterate();
if(tcpSockFD == -1)
{
tcpSockFD = socket(AF_INET, SOCK_STREAM, 0);
if(tcpSockFD == -1)
{
return false;
}
}
if(tcpConnectRet == -1)
{
struct sockaddr_in saddr;
//inet_pton(AF_INET, TCP_SERVER_ADDRESS, &saddr.sin_addr.s_addr);
saddr.sin_addr.s_addr = inet_addr(TCP_SERVER_ADDRESS);
saddr.sin_family = AF_INET;
saddr.sin_port = htons(TCP_RECEIVE_PORT);
tcpConnectRet = connect(tcpSockFD, (struct sockaddr *)&saddr, sizeof(saddr));
if(tcpConnectRet == -1)
{
return false;
}
}
if ((tcpSockFD != -1) && (tcpConnectRet != -1))
{
std::thread t1(&BoardSupportComm::tcpProcessThread, this);
t1.detach();
}
#if 0
printf("header: %hx\n", embeddedInfo.header);
printf("count: %hu\n", embeddedInfo.count);
printf("size: %u\n", embeddedInfo.size);
printf("drive_mode: %u\n", embeddedInfo.drive_mode);
printf("height: %hu\n", embeddedInfo.height);
printf("depth: %hu\n", embeddedInfo.depth);
printf("yaw: %hu\n", embeddedInfo.yaw);
printf("pitch: %hd\n", embeddedInfo.pitch);
printf("roll: %hd\n", embeddedInfo.roll);
printf("ins_vx: %hd\n", embeddedInfo.ins_vx);
printf("ins_vy: %hd\n", embeddedInfo.ins_vy);
printf("ins_vz: %hd\n", embeddedInfo.ins_vz);
printf("lon: %d\n", embeddedInfo.lon);
printf("lat: %d\n", embeddedInfo.lat);
printf("alt: %hd\n", embeddedInfo.alt);
printf("dvl_vx: %hd\n", embeddedInfo.dvl_vx);
printf("dvl_vy: %hd\n", embeddedInfo.dvl_vy);
printf("dvl_vz: %hd\n", embeddedInfo.dvl_vz);
printf("rpm: %hd\n", embeddedInfo.rpm);
printf("light_enable: %u\n", embeddedInfo.light_enable);
printf("battery_voltage: %u\n", embeddedInfo.battery_voltage);
printf("battery_level: %u\n", embeddedInfo.battery_level);
printf("battery_temp: %u\n", embeddedInfo.battery_temp);
printf("fault_leakSensor: %hd\n", embeddedInfo.fault_leakSensor);
printf("fault_battery: %u\n", embeddedInfo.fault_battery);
printf("fault_emergencyBattery: %u\n", embeddedInfo.fault_emergencyBattery);
printf("fault_thrust: %u\n", embeddedInfo.fault_thrust);
printf("iridium: %u\n", embeddedInfo.iridium);
printf("throwing_load: %u\n", embeddedInfo.throwing_load);
printf("dvl_status: %u\n", embeddedInfo.dvl_status);
printf("crc: %u\n", embeddedInfo.crc);
printf("footer: %u\n", embeddedInfo.footer);
#endif
#ifdef MOOS_AUV_SIM
executeCommand.header = 0xEBA2; //1:[0,1]
executeCommand.count = 16; //2:[2,3]
executeCommand.size = 21; //3:[4]
executeCommand.drive_mode = 0x02; //4:[5]
executeCommand.thrust = 178; //5:[6],赋值-50
executeCommand.yaw = 45.3 * 10; //6:[7,8],赋值45.3
executeCommand.depth = 298.6 * 10; //7:[9,10],赋值298.6
executeCommand.helm_top_angle = 145; //8:[11],赋值-17
executeCommand.helm_bottom_angle = 154; //9:[12],赋值-26
executeCommand.helm_left_angle = 9; //10:[13],赋值9
executeCommand.helm_right_angle = 158; //11:[14],赋值-30
executeCommand.light_enable = 1; //12:[15],赋值1
executeCommand.dvl_enable = 1; //13:[16],赋值1
executeCommand.throwing_load_enable = 1; //14:[17],赋值1
executeCommand.crc = 0; //15:[18]
executeCommand.footer = 0xEE2A; //16:[19,20]
int serializeResult = serializeMessage(tcpSendBuffer);
if (serializeResult == 0)
{
try
{
write(tcpSockFD, tcpSendBuffer, executeCommand.size);
}
catch(const std::exception& e)
{
std::cerr << e.what() << '\n';
}
}
#endif
//AppCastingMOOSApp::PostReport();
return true;
}
template <typename Type>
inline uint16_t BoardSupportComm::serialize(const Type t, uint8_t* bfr, uint16_t& sumSize)
{
uint16_t size = sizeof(Type);
std::memcpy(bfr, &t, size);
sumSize += size;
return size;
}
int BoardSupportComm::serializeMessage(unsigned char* buffer)
{
uint8_t* ptr = buffer;
uint16_t sumSize = 0;
ptr += serialize(executeCommand.header, ptr, sumSize);
ptr += serialize(executeCommand.count, ptr, sumSize);
ptr += serialize(executeCommand.size, ptr, sumSize);
ptr += serialize(executeCommand.drive_mode, ptr, sumSize);
ptr += serialize(executeCommand.thrust, ptr, sumSize);
ptr += serialize(executeCommand.yaw, ptr, sumSize);
ptr += serialize(executeCommand.depth, ptr, sumSize);
ptr += serialize(executeCommand.helm_top_angle, ptr, sumSize);
ptr += serialize(executeCommand.helm_bottom_angle, ptr, sumSize);
ptr += serialize(executeCommand.helm_left_angle, ptr, sumSize);
ptr += serialize(executeCommand.helm_right_angle, ptr, sumSize);
ptr += serialize(executeCommand.light_enable, ptr, sumSize);
ptr += serialize(executeCommand.dvl_enable, ptr, sumSize);
ptr += serialize(executeCommand.throwing_load_enable, ptr, sumSize);
DUNE::Algorithms::CRC8 crc(0x07);
crc.putArray(buffer+CRC_COMPUTE_START_POS, CRC_COMPUTE_SUM_SIZE);
executeCommand.crc = crc.get();
ptr += serialize(executeCommand.crc, ptr, sumSize);
ptr += serialize(executeCommand.footer, ptr, sumSize);
if (sumSize != (uint16_t)executeCommand.size)
{
return -1;
}
return 0;
}
template <typename Type>
inline uint16_t BoardSupportComm::deserialize(Type& t, const uint8_t* bfr, uint16_t& length)
{
uint16_t size = sizeof(Type);
std::memcpy(&t, bfr, size);
length -= size;
return size;
}
int BoardSupportComm::parseMessage(unsigned char* buffer, int size)
{
const uint8_t* ptr = buffer;
uint16_t size__ = size;
uint16_t header;
ptr += deserialize(embeddedInfo.header, ptr, size__);
ptr += deserialize(embeddedInfo.count, ptr, size__);
ptr += deserialize(embeddedInfo.size, ptr, size__);
ptr += deserialize(embeddedInfo.drive_mode, ptr, size__);
ptr += deserialize(embeddedInfo.height, ptr, size__);
ptr += deserialize(embeddedInfo.depth, ptr, size__);
ptr += deserialize(embeddedInfo.yaw, ptr, size__);
ptr += deserialize(embeddedInfo.pitch, ptr, size__);
ptr += deserialize(embeddedInfo.roll, ptr, size__);
ptr += deserialize(embeddedInfo.ins_vx, ptr, size__);
ptr += deserialize(embeddedInfo.ins_vy, ptr, size__);
ptr += deserialize(embeddedInfo.ins_vz, ptr, size__);
ptr += deserialize(embeddedInfo.lon, ptr, size__);
ptr += deserialize(embeddedInfo.lat, ptr, size__);
ptr += deserialize(embeddedInfo.alt, ptr, size__);
ptr += deserialize(embeddedInfo.dvl_vx, ptr, size__);
ptr += deserialize(embeddedInfo.dvl_vy, ptr, size__);
ptr += deserialize(embeddedInfo.dvl_vz, ptr, size__);
ptr += deserialize(embeddedInfo.rpm, ptr, size__);
ptr += deserialize(embeddedInfo.light_enable, ptr, size__);
ptr += deserialize(embeddedInfo.battery_voltage, ptr, size__);
ptr += deserialize(embeddedInfo.battery_level, ptr, size__);
ptr += deserialize(embeddedInfo.battery_temp, ptr, size__);
ptr += deserialize(embeddedInfo.fault_leakSensor, ptr, size__);
ptr += deserialize(embeddedInfo.fault_battery, ptr, size__);
ptr += deserialize(embeddedInfo.fault_emergencyBattery, ptr, size__);
ptr += deserialize(embeddedInfo.fault_thrust, ptr, size__);
ptr += deserialize(embeddedInfo.iridium, ptr, size__);
ptr += deserialize(embeddedInfo.throwing_load, ptr, size__);
ptr += deserialize(embeddedInfo.dvl_status, ptr, size__);
ptr += deserialize(embeddedInfo.crc, ptr, size__);
ptr += deserialize(embeddedInfo.footer, ptr, size__);
return 0;
}
bool BoardSupportComm::OnStartUp()
{
// AppCastingMOOSApp::OnStartUp();
m_MissionReader.GetValue("llaOriginPath", llaOriginPath);
try
{
struct stat info;
if (stat(llaOriginPath.c_str(), &info) == 0)
{
std::ifstream ifs;
ifs.open(llaOriginPath, std::ios::in);
Json::Reader reader;
Json::Value originJsonValue;
reader.parse(ifs, originJsonValue);
ifs.close();
if (originJsonValue.isMember("LongOrigin") &&
originJsonValue.isMember("LatOrigin") &&
originJsonValue.isMember("AltOrigin"))
{
estimatedState.referenceLon = originJsonValue["LongOrigin"].asFloat();
estimatedState.referenceLat = originJsonValue["LatOrigin"].asFloat();
estimatedState.referenceAltitude = originJsonValue["AltOrigin"].asFloat();
}
else
{
throw -1;
}
}
else
{
throw -1;
}
}
catch(...)
{
m_MissionReader.GetValue("LongOrigin", estimatedState.referenceLon);
m_MissionReader.GetValue("LatOrigin", estimatedState.referenceLat);
m_MissionReader.GetValue("AltOrigin", estimatedState.referenceAltitude);
}
// std::cout << "BoardSupportComm OnStartUp: " << estimatedState.referenceLon << ", "
// << estimatedState.referenceLat << ", "
// << estimatedState.referenceAltitude << std::endl;
RegisterVariables();
return(true);
}
void BoardSupportComm::RegisterVariables()
{
// AppCastingMOOSApp::RegisterVariables();
#ifdef MOOS_AUV_SIM
Register("NAV_X", 0);
Register("NAV_Y", 0);
Register("NAV_Z", 0);
Register("NAV_LAT", 0);
Register("NAV_LONG", 0);
Register("NAV_SPEED", 0);
Register("NAV_DEPTH", 0);
Register("NAV_YAW", 0);
Register("NAV_PITCH", 0);
Register("Fault_LeakSensor", 0);
Register("Fault_Battery", 0);
Register("Fault_EmergencyBattery", 0);
Register("Fault_Thrust", 0);
#endif
Register("uManual_drive_cmd", 0);
Register("uMotion_control_cmd", 0);
Register("uManual_enable_cmd", 0);
Register("uMission_origin_cmd", 0);
}
void BoardSupportComm::ConvertLLAToENU(std::vector<double> init_lla,
std::vector<double> point_lla,
std::vector<double>& point_enu)
{
static GeographicLib::LocalCartesian local_cartesian;
local_cartesian.Reset(init_lla.at(1), init_lla.at(0), init_lla.at(2));
local_cartesian.Forward(point_lla.at(1), point_lla.at(0), point_lla.at(2),
point_enu.at(0), point_enu.at(1), point_enu.at(2));
}
void BoardSupportComm::ConvertENUToLLA(std::vector<double> init_lla,
std::vector<double> point_enu,
std::vector<double> &point_lla)
{
static GeographicLib::LocalCartesian local_cartesian;
local_cartesian.Reset(init_lla.at(1), init_lla.at(0), init_lla.at(2));
local_cartesian.Reverse(point_enu.at(0), point_enu.at(1), point_enu.at(2),
point_lla.at(1), point_lla.at(0), point_lla.at(2));
}
void BoardSupportComm::ConvertLLAToNED(std::vector<double> init_lla,
std::vector<double> point_lla,
std::vector<double>& point_ned)
{
static GeographicLib::LocalCartesian local_cartesian;
local_cartesian.Reset(init_lla.at(1), init_lla.at(0), init_lla.at(2));
double point_e = 0;
double point_n = 0;
double point_u = 0;
local_cartesian.Forward(point_lla.at(1), point_lla.at(0), point_lla.at(2),
point_e, point_n, point_u);
point_ned.at(0) = point_n;
point_ned.at(1) = point_e;
point_ned.at(2) = -point_u;
}
void BoardSupportComm::ConvertNEDToLLA(std::vector<double> init_lla,
std::vector<double> point_ned,
std::vector<double> &point_lla)
{
static GeographicLib::LocalCartesian local_cartesian;
local_cartesian.Reset(init_lla.at(1), init_lla.at(0), init_lla.at(2));
double point_e = point_ned.at(1);
double point_n = point_ned.at(0);
double point_u = -point_ned.at(2);
local_cartesian.Reverse(point_e, point_n, point_u,
point_lla.at(1), point_lla.at(0), point_lla.at(2));
}

View File

@@ -0,0 +1,156 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: BoardSupportComm.h */
/* DATE: */
/************************************************************/
#ifndef BoardSupportComm_HEADER
#define BoardSupportComm_HEADER
#include "MOOS/libMOOS/MOOSLib.h"
#include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include <DUNE/DUNE.hpp>
#include <GeographicLib/LocalCartesian.hpp>
#include <json/json.h>
#include <thread>
#include <chrono>
#define CRC_COMPUTE_START_POS 5
#define CRC_COMPUTE_SUM_SIZE 13
struct AUVEmbedded
{
uint16_t header; //1:[0,1]
uint16_t count; //2:[2,3]
uint8_t size; //3:[4]
uint8_t drive_mode; //4:[5]
uint16_t height; //5:[6,7]
uint16_t depth; //6:[8,9]
uint16_t yaw; //7:[10,11]
int16_t pitch; //8:[12,13]
int16_t roll; //9:[14,15]
int16_t ins_vx; //10:[16,17]
int16_t ins_vy; //11:[18,19]
int16_t ins_vz; //12:[20,21]
int32_t lon; //13:[22,23,24,25]
int32_t lat; //14:[26,27,28,29]
int16_t alt; //15:[30,31]
int16_t dvl_vx; //16:[32,33]
int16_t dvl_vy; //17:[34,35]
int16_t dvl_vz; //18:[36,37]
int16_t rpm; //19:[38,39]
uint8_t light_enable; //20:[40]
uint16_t battery_voltage; //21:[41,42]
uint8_t battery_level; //22:[43]
uint16_t battery_temp; //23:[44,45]
uint32_t fault_leakSensor; //24:[46,47,48,49]
uint8_t fault_battery; //25:[50]
uint8_t fault_emergencyBattery; //26:[51]
uint8_t fault_thrust; //27:[52]
uint8_t iridium; //28:[53]
uint8_t throwing_load; //29:[54]
uint8_t dvl_status; //30:[55]
uint8_t crc; //31:[56]
uint16_t footer; //32:[57,58]
};
struct AUVExecuteCommand
{
uint16_t header; //1:[0,1]
uint16_t count; //2:[2,3]
uint8_t size; //3:[4]
uint8_t drive_mode; //4:[5]
uint8_t thrust; //5:[6]
uint16_t yaw; //6:[7,8]
uint16_t depth; //7:[9,10]
uint8_t helm_top_angle; //8:[11]
uint8_t helm_bottom_angle;//9:[12]
uint8_t helm_left_angle; //10:[13]
uint8_t helm_right_angle;//11:[14]
uint8_t light_enable; //12:[15]
uint8_t dvl_enable; //13:[16]
uint8_t throwing_load_enable; //14:[17]
uint8_t crc; //15:[18]
uint16_t footer; //16:[19,20]
bool manual_mode;
};
struct EstimatedState {
float referenceLon;
float referenceLat;
float referenceAltitude;
float currentLon;
float currentLat;
float currentAltitude;
float offsetNorth;
float offsetEast;
float offsetDown;
float roll;
float pitch;
float yaw;
float linearVelocityNorth;
float linearVelocityEast;
float linearVelocityDown;
float height;
float depth;
};
class BoardSupportComm : public CMOOSApp
// class BoardSupportComm : public AppCastingMOOSApp
{
public:
BoardSupportComm();
~BoardSupportComm();
protected: // Standard MOOSApp functions to overload
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
void RegisterVariables();
// bool buildReport();
private:
struct EstimatedState estimatedState;
void ConvertLLAToENU(std::vector<double> init_lla,
std::vector<double> point_lla,
std::vector<double>& point_enu);
void ConvertENUToLLA(std::vector<double> init_lla,
std::vector<double> point_enu,
std::vector<double> &point_lla);
void ConvertLLAToNED(std::vector<double> init_lla,
std::vector<double> point_lla,
std::vector<double>& point_ned);
void ConvertNEDToLLA(std::vector<double> init_lla,
std::vector<double> point_ned,
std::vector<double> &point_lla);
void tcpProcessThread();
// std::string convertEmbeddedFormat();
std::string convertEmbeddedFormat(Json::Value &embeddedState);
int tcpSockFD;
int tcpConnectRet;
char tcpReceiveBuffer[65535];
unsigned char tcpSendBuffer[65535];
int parseMessage(unsigned char* buffer, int size);
int serializeMessage(unsigned char* buffer);
template <typename Type> inline uint16_t deserialize(Type& t, const uint8_t* bfr, uint16_t& length);
template <typename Type> inline uint16_t serialize(const Type t, uint8_t* bfr, uint16_t& sumSize);
uint8_t convertIntToUchar(int src, int min, int max);
struct AUVEmbedded embeddedInfo;
struct AUVExecuteCommand executeCommand;
int testFlag = 0;
bool testCount = false;
int sockfd = -1;
int connectFlg = -1;
std::string llaOriginPath;
};
#endif

View File

@@ -0,0 +1,115 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: BoardSupportComm_Info.cpp */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#include <cstdlib>
#include <iostream>
#include "BoardSupportComm_Info.h"
#include "ColorParse.h"
#include "ReleaseInfo.h"
using namespace std;
//----------------------------------------------------------------
// Procedure: showSynopsis
void showSynopsis()
{
blk("SYNOPSIS: ");
blk("------------------------------------ ");
blk(" The pBoardSupportComm application is used for ");
blk(" ");
blk(" ");
blk(" ");
blk(" ");
}
//----------------------------------------------------------------
// Procedure: showHelpAndExit
void showHelpAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("Usage: pBoardSupportComm file.moos [OPTIONS] ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("Options: ");
mag(" --alias","=<ProcessName> ");
blk(" Launch pBoardSupportComm with the given process name ");
blk(" rather than pBoardSupportComm. ");
mag(" --example, -e ");
blk(" Display example MOOS configuration block. ");
mag(" --help, -h ");
blk(" Display this help message. ");
mag(" --interface, -i ");
blk(" Display MOOS publications and subscriptions. ");
mag(" --version,-v ");
blk(" Display the release version of pBoardSupportComm. ");
blk(" ");
blk("Note: If argv[2] does not otherwise match a known option, ");
blk(" then it will be interpreted as a run alias. This is ");
blk(" to support pAntler launching conventions. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showExampleConfigAndExit
void showExampleConfigAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pBoardSupportComm Example MOOS Configuration ");
blu("=============================================================== ");
blk(" ");
blk("ProcessConfig = pBoardSupportComm ");
blk("{ ");
blk(" AppTick = 4 ");
blk(" CommsTick = 4 ");
blk(" ");
blk("} ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showInterfaceAndExit
void showInterfaceAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pBoardSupportComm INTERFACE ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("SUBSCRIPTIONS: ");
blk("------------------------------------ ");
blk(" NODE_MESSAGE = src_node=alpha,dest_node=bravo,var_name=FOO, ");
blk(" string_val=BAR ");
blk(" ");
blk("PUBLICATIONS: ");
blk("------------------------------------ ");
blk(" Publications are determined by the node message content. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showReleaseInfoAndExit
void showReleaseInfoAndExit()
{
showReleaseInfo("pBoardSupportComm", "gpl");
exit(0);
}

View File

@@ -0,0 +1,18 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: BoardSupportComm_Info.h */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#ifndef BoardSupportComm_INFO_HEADER
#define BoardSupportComm_INFO_HEADER
void showSynopsis();
void showHelpAndExit();
void showExampleConfigAndExit();
void showInterfaceAndExit();
void showReleaseInfoAndExit();
#endif

View File

@@ -0,0 +1,47 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pBoardSupportComm
# Author(s): Xiaobin Zeng
#--------------------------------------------------------
SET(SRC
BoardSupportComm.cpp
BoardSupportComm_Info.cpp
main.cpp
)
FIND_LIBRARY(DUNE_LIB dune-core /usr/local/lib /usr/local/lib/DUNE)
FIND_PATH(DUNE_INCLUDE DUNE/IMC.hpp /usr/local/include /usr/local/include/DUNE)
include_directories(${DUNE_INCLUDE})
# include(FindProtobuf)
# find_package(Protobuf REQUIRED)
# include_directories(${Protobuf_INCLUDE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
#find_package (jsoncpp REQUIRED)
find_package (GeographicLib REQUIRED)
include_directories(${GeographicLib_INCLUDE_DIRS})
ADD_EXECUTABLE(pBoardSupportComm ${SRC})
include_directories(/usr/include/jsoncpp/)
link_directories(/usr/local/lib/)
TARGET_LINK_LIBRARIES(pBoardSupportComm
${MOOS_LIBRARIES}
${DUNE_LIB}
${GeographicLib_LIBRARIES}
mbutil
m
pthread
jsoncpp
# jsoncpp_lib_static
# protobuf
# protoc
# proto
# ${PROTOBUF_LIBRARY}
)

View File

@@ -0,0 +1,53 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: main.cpp */
/* DATE: */
/************************************************************/
#include <string>
#include "MBUtils.h"
#include "ColorParse.h"
#include "BoardSupportComm.h"
#include "BoardSupportComm_Info.h"
using namespace std;
int main(int argc, char *argv[])
{
string mission_file;
string run_command = argv[0];
for(int i=1; i<argc; i++) {
string argi = argv[i];
if((argi=="-v") || (argi=="--version") || (argi=="-version"))
showReleaseInfoAndExit();
else if((argi=="-e") || (argi=="--example") || (argi=="-example"))
showExampleConfigAndExit();
else if((argi == "-h") || (argi == "--help") || (argi=="-help"))
showHelpAndExit();
else if((argi == "-i") || (argi == "--interface"))
showInterfaceAndExit();
else if(strEnds(argi, ".moos") || strEnds(argi, ".moos++"))
mission_file = argv[i];
else if(strBegins(argi, "--alias="))
run_command = argi.substr(8);
else if(i==2)
run_command = argi;
}
if(mission_file == "")
showHelpAndExit();
cout << termColor("green");
cout << "pBoardSupportComm launching as " << run_command << endl;
cout << termColor() << endl;
BoardSupportComm BoardSupportComm;
BoardSupportComm.Run(run_command.c_str(), mission_file.c_str());
return(0);
}

View File

@@ -0,0 +1,9 @@
//------------------------------------------------
// pBoardSupportComm config block
ProcessConfig = pBoardSupportComm
{
AppTick = 4
CommsTick = 4
}

View File

@@ -0,0 +1,927 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: Behavior.proto
#ifndef GOOGLE_PROTOBUF_INCLUDED_Behavior_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_Behavior_2eproto
#include <limits>
#include <string>
#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h> // IWYU pragma: export
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_Behavior_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
} // namespace internal
PROTOBUF_NAMESPACE_CLOSE
// Internal implementation detail -- do not use these members.
struct TableStruct_Behavior_2eproto {
static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_Behavior_2eproto;
namespace Behavior {
class Coordinate;
struct CoordinateDefaultTypeInternal;
extern CoordinateDefaultTypeInternal _Coordinate_default_instance_;
class WayPointBehavior;
struct WayPointBehaviorDefaultTypeInternal;
extern WayPointBehaviorDefaultTypeInternal _WayPointBehavior_default_instance_;
} // namespace Behavior
PROTOBUF_NAMESPACE_OPEN
template<> ::Behavior::Coordinate* Arena::CreateMaybeMessage<::Behavior::Coordinate>(Arena*);
template<> ::Behavior::WayPointBehavior* Arena::CreateMaybeMessage<::Behavior::WayPointBehavior>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace Behavior {
// ===================================================================
class Coordinate final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Behavior.Coordinate) */ {
public:
inline Coordinate() : Coordinate(nullptr) {}
~Coordinate() override;
explicit PROTOBUF_CONSTEXPR Coordinate(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
Coordinate(const Coordinate& from);
Coordinate(Coordinate&& from) noexcept
: Coordinate() {
*this = ::std::move(from);
}
inline Coordinate& operator=(const Coordinate& from) {
CopyFrom(from);
return *this;
}
inline Coordinate& operator=(Coordinate&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const Coordinate& default_instance() {
return *internal_default_instance();
}
static inline const Coordinate* internal_default_instance() {
return reinterpret_cast<const Coordinate*>(
&_Coordinate_default_instance_);
}
static constexpr int kIndexInFileMessages =
0;
friend void swap(Coordinate& a, Coordinate& b) {
a.Swap(&b);
}
inline void Swap(Coordinate* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(Coordinate* other) {
if (other == this) return;
GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
Coordinate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
return CreateMaybeMessage<Coordinate>(arena);
}
using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
void CopyFrom(const Coordinate& from);
using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
void MergeFrom( const Coordinate& from) {
Coordinate::MergeImpl(*this, from);
}
private:
static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
uint8_t* _InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(Coordinate* other);
private:
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "Behavior.Coordinate";
}
protected:
explicit Coordinate(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned = false);
public:
static const ClassData _class_data_;
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kNameFieldNumber = 1,
kLonFieldNumber = 2,
kLatFieldNumber = 3,
kDepthFieldNumber = 4,
kSpeedFieldNumber = 5,
};
// string name = 1;
void clear_name();
const std::string& name() const;
template <typename ArgT0 = const std::string&, typename... ArgT>
void set_name(ArgT0&& arg0, ArgT... args);
std::string* mutable_name();
PROTOBUF_NODISCARD std::string* release_name();
void set_allocated_name(std::string* name);
private:
const std::string& _internal_name() const;
inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
std::string* _internal_mutable_name();
public:
// float lon = 2;
void clear_lon();
float lon() const;
void set_lon(float value);
private:
float _internal_lon() const;
void _internal_set_lon(float value);
public:
// float lat = 3;
void clear_lat();
float lat() const;
void set_lat(float value);
private:
float _internal_lat() const;
void _internal_set_lat(float value);
public:
// float depth = 4;
void clear_depth();
float depth() const;
void set_depth(float value);
private:
float _internal_depth() const;
void _internal_set_depth(float value);
public:
// float speed = 5;
void clear_speed();
float speed() const;
void set_speed(float value);
private:
float _internal_speed() const;
void _internal_set_speed(float value);
public:
// @@protoc_insertion_point(class_scope:Behavior.Coordinate)
private:
class _Internal;
template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
float lon_;
float lat_;
float depth_;
float speed_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_Behavior_2eproto;
};
// -------------------------------------------------------------------
class WayPointBehavior final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:Behavior.WayPointBehavior) */ {
public:
inline WayPointBehavior() : WayPointBehavior(nullptr) {}
~WayPointBehavior() override;
explicit PROTOBUF_CONSTEXPR WayPointBehavior(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
WayPointBehavior(const WayPointBehavior& from);
WayPointBehavior(WayPointBehavior&& from) noexcept
: WayPointBehavior() {
*this = ::std::move(from);
}
inline WayPointBehavior& operator=(const WayPointBehavior& from) {
CopyFrom(from);
return *this;
}
inline WayPointBehavior& operator=(WayPointBehavior&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const WayPointBehavior& default_instance() {
return *internal_default_instance();
}
static inline const WayPointBehavior* internal_default_instance() {
return reinterpret_cast<const WayPointBehavior*>(
&_WayPointBehavior_default_instance_);
}
static constexpr int kIndexInFileMessages =
1;
friend void swap(WayPointBehavior& a, WayPointBehavior& b) {
a.Swap(&b);
}
inline void Swap(WayPointBehavior* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(WayPointBehavior* other) {
if (other == this) return;
GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
WayPointBehavior* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
return CreateMaybeMessage<WayPointBehavior>(arena);
}
using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
void CopyFrom(const WayPointBehavior& from);
using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
void MergeFrom( const WayPointBehavior& from) {
WayPointBehavior::MergeImpl(*this, from);
}
private:
static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
uint8_t* _InternalSerialize(
uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(WayPointBehavior* other);
private:
friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
return "Behavior.WayPointBehavior";
}
protected:
explicit WayPointBehavior(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned = false);
public:
static const ClassData _class_data_;
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kPointsFieldNumber = 3,
kNameFieldNumber = 1,
kPriorityFieldNumber = 2,
kDurationFieldNumber = 4,
kConstSpeedFieldNumber = 6,
kClosedLoopFieldNumber = 5,
kPerpetualFieldNumber = 8,
kRepeateFieldNumber = 7,
kMinDepthFieldNumber = 9,
kMaxDepthFieldNumber = 10,
};
// repeated .Behavior.Coordinate points = 3;
int points_size() const;
private:
int _internal_points_size() const;
public:
void clear_points();
::Behavior::Coordinate* mutable_points(int index);
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Behavior::Coordinate >*
mutable_points();
private:
const ::Behavior::Coordinate& _internal_points(int index) const;
::Behavior::Coordinate* _internal_add_points();
public:
const ::Behavior::Coordinate& points(int index) const;
::Behavior::Coordinate* add_points();
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Behavior::Coordinate >&
points() const;
// string name = 1;
void clear_name();
const std::string& name() const;
template <typename ArgT0 = const std::string&, typename... ArgT>
void set_name(ArgT0&& arg0, ArgT... args);
std::string* mutable_name();
PROTOBUF_NODISCARD std::string* release_name();
void set_allocated_name(std::string* name);
private:
const std::string& _internal_name() const;
inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
std::string* _internal_mutable_name();
public:
// int32 priority = 2;
void clear_priority();
int32_t priority() const;
void set_priority(int32_t value);
private:
int32_t _internal_priority() const;
void _internal_set_priority(int32_t value);
public:
// float duration = 4;
void clear_duration();
float duration() const;
void set_duration(float value);
private:
float _internal_duration() const;
void _internal_set_duration(float value);
public:
// float constSpeed = 6;
void clear_constspeed();
float constspeed() const;
void set_constspeed(float value);
private:
float _internal_constspeed() const;
void _internal_set_constspeed(float value);
public:
// bool closedLoop = 5;
void clear_closedloop();
bool closedloop() const;
void set_closedloop(bool value);
private:
bool _internal_closedloop() const;
void _internal_set_closedloop(bool value);
public:
// bool perpetual = 8;
void clear_perpetual();
bool perpetual() const;
void set_perpetual(bool value);
private:
bool _internal_perpetual() const;
void _internal_set_perpetual(bool value);
public:
// int32 repeate = 7;
void clear_repeate();
int32_t repeate() const;
void set_repeate(int32_t value);
private:
int32_t _internal_repeate() const;
void _internal_set_repeate(int32_t value);
public:
// float minDepth = 9;
void clear_mindepth();
float mindepth() const;
void set_mindepth(float value);
private:
float _internal_mindepth() const;
void _internal_set_mindepth(float value);
public:
// float maxDepth = 10;
void clear_maxdepth();
float maxdepth() const;
void set_maxdepth(float value);
private:
float _internal_maxdepth() const;
void _internal_set_maxdepth(float value);
public:
// @@protoc_insertion_point(class_scope:Behavior.WayPointBehavior)
private:
class _Internal;
template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Behavior::Coordinate > points_;
::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
int32_t priority_;
float duration_;
float constspeed_;
bool closedloop_;
bool perpetual_;
int32_t repeate_;
float mindepth_;
float maxdepth_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
};
union { Impl_ _impl_; };
friend struct ::TableStruct_Behavior_2eproto;
};
// ===================================================================
// ===================================================================
#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif // __GNUC__
// Coordinate
// string name = 1;
inline void Coordinate::clear_name() {
_impl_.name_.ClearToEmpty();
}
inline const std::string& Coordinate::name() const {
// @@protoc_insertion_point(field_get:Behavior.Coordinate.name)
return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Coordinate::set_name(ArgT0&& arg0, ArgT... args) {
_impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
// @@protoc_insertion_point(field_set:Behavior.Coordinate.name)
}
inline std::string* Coordinate::mutable_name() {
std::string* _s = _internal_mutable_name();
// @@protoc_insertion_point(field_mutable:Behavior.Coordinate.name)
return _s;
}
inline const std::string& Coordinate::_internal_name() const {
return _impl_.name_.Get();
}
inline void Coordinate::_internal_set_name(const std::string& value) {
_impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* Coordinate::_internal_mutable_name() {
return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* Coordinate::release_name() {
// @@protoc_insertion_point(field_release:Behavior.Coordinate.name)
return _impl_.name_.Release();
}
inline void Coordinate::set_allocated_name(std::string* name) {
if (name != nullptr) {
} else {
}
_impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (_impl_.name_.IsDefault()) {
_impl_.name_.Set("", GetArenaForAllocation());
}
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
// @@protoc_insertion_point(field_set_allocated:Behavior.Coordinate.name)
}
// float lon = 2;
inline void Coordinate::clear_lon() {
_impl_.lon_ = 0;
}
inline float Coordinate::_internal_lon() const {
return _impl_.lon_;
}
inline float Coordinate::lon() const {
// @@protoc_insertion_point(field_get:Behavior.Coordinate.lon)
return _internal_lon();
}
inline void Coordinate::_internal_set_lon(float value) {
_impl_.lon_ = value;
}
inline void Coordinate::set_lon(float value) {
_internal_set_lon(value);
// @@protoc_insertion_point(field_set:Behavior.Coordinate.lon)
}
// float lat = 3;
inline void Coordinate::clear_lat() {
_impl_.lat_ = 0;
}
inline float Coordinate::_internal_lat() const {
return _impl_.lat_;
}
inline float Coordinate::lat() const {
// @@protoc_insertion_point(field_get:Behavior.Coordinate.lat)
return _internal_lat();
}
inline void Coordinate::_internal_set_lat(float value) {
_impl_.lat_ = value;
}
inline void Coordinate::set_lat(float value) {
_internal_set_lat(value);
// @@protoc_insertion_point(field_set:Behavior.Coordinate.lat)
}
// float depth = 4;
inline void Coordinate::clear_depth() {
_impl_.depth_ = 0;
}
inline float Coordinate::_internal_depth() const {
return _impl_.depth_;
}
inline float Coordinate::depth() const {
// @@protoc_insertion_point(field_get:Behavior.Coordinate.depth)
return _internal_depth();
}
inline void Coordinate::_internal_set_depth(float value) {
_impl_.depth_ = value;
}
inline void Coordinate::set_depth(float value) {
_internal_set_depth(value);
// @@protoc_insertion_point(field_set:Behavior.Coordinate.depth)
}
// float speed = 5;
inline void Coordinate::clear_speed() {
_impl_.speed_ = 0;
}
inline float Coordinate::_internal_speed() const {
return _impl_.speed_;
}
inline float Coordinate::speed() const {
// @@protoc_insertion_point(field_get:Behavior.Coordinate.speed)
return _internal_speed();
}
inline void Coordinate::_internal_set_speed(float value) {
_impl_.speed_ = value;
}
inline void Coordinate::set_speed(float value) {
_internal_set_speed(value);
// @@protoc_insertion_point(field_set:Behavior.Coordinate.speed)
}
// -------------------------------------------------------------------
// WayPointBehavior
// string name = 1;
inline void WayPointBehavior::clear_name() {
_impl_.name_.ClearToEmpty();
}
inline const std::string& WayPointBehavior::name() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.name)
return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void WayPointBehavior::set_name(ArgT0&& arg0, ArgT... args) {
_impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.name)
}
inline std::string* WayPointBehavior::mutable_name() {
std::string* _s = _internal_mutable_name();
// @@protoc_insertion_point(field_mutable:Behavior.WayPointBehavior.name)
return _s;
}
inline const std::string& WayPointBehavior::_internal_name() const {
return _impl_.name_.Get();
}
inline void WayPointBehavior::_internal_set_name(const std::string& value) {
_impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* WayPointBehavior::_internal_mutable_name() {
return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* WayPointBehavior::release_name() {
// @@protoc_insertion_point(field_release:Behavior.WayPointBehavior.name)
return _impl_.name_.Release();
}
inline void WayPointBehavior::set_allocated_name(std::string* name) {
if (name != nullptr) {
} else {
}
_impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
if (_impl_.name_.IsDefault()) {
_impl_.name_.Set("", GetArenaForAllocation());
}
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
// @@protoc_insertion_point(field_set_allocated:Behavior.WayPointBehavior.name)
}
// int32 priority = 2;
inline void WayPointBehavior::clear_priority() {
_impl_.priority_ = 0;
}
inline int32_t WayPointBehavior::_internal_priority() const {
return _impl_.priority_;
}
inline int32_t WayPointBehavior::priority() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.priority)
return _internal_priority();
}
inline void WayPointBehavior::_internal_set_priority(int32_t value) {
_impl_.priority_ = value;
}
inline void WayPointBehavior::set_priority(int32_t value) {
_internal_set_priority(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.priority)
}
// repeated .Behavior.Coordinate points = 3;
inline int WayPointBehavior::_internal_points_size() const {
return _impl_.points_.size();
}
inline int WayPointBehavior::points_size() const {
return _internal_points_size();
}
inline void WayPointBehavior::clear_points() {
_impl_.points_.Clear();
}
inline ::Behavior::Coordinate* WayPointBehavior::mutable_points(int index) {
// @@protoc_insertion_point(field_mutable:Behavior.WayPointBehavior.points)
return _impl_.points_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Behavior::Coordinate >*
WayPointBehavior::mutable_points() {
// @@protoc_insertion_point(field_mutable_list:Behavior.WayPointBehavior.points)
return &_impl_.points_;
}
inline const ::Behavior::Coordinate& WayPointBehavior::_internal_points(int index) const {
return _impl_.points_.Get(index);
}
inline const ::Behavior::Coordinate& WayPointBehavior::points(int index) const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.points)
return _internal_points(index);
}
inline ::Behavior::Coordinate* WayPointBehavior::_internal_add_points() {
return _impl_.points_.Add();
}
inline ::Behavior::Coordinate* WayPointBehavior::add_points() {
::Behavior::Coordinate* _add = _internal_add_points();
// @@protoc_insertion_point(field_add:Behavior.WayPointBehavior.points)
return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::Behavior::Coordinate >&
WayPointBehavior::points() const {
// @@protoc_insertion_point(field_list:Behavior.WayPointBehavior.points)
return _impl_.points_;
}
// float duration = 4;
inline void WayPointBehavior::clear_duration() {
_impl_.duration_ = 0;
}
inline float WayPointBehavior::_internal_duration() const {
return _impl_.duration_;
}
inline float WayPointBehavior::duration() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.duration)
return _internal_duration();
}
inline void WayPointBehavior::_internal_set_duration(float value) {
_impl_.duration_ = value;
}
inline void WayPointBehavior::set_duration(float value) {
_internal_set_duration(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.duration)
}
// bool closedLoop = 5;
inline void WayPointBehavior::clear_closedloop() {
_impl_.closedloop_ = false;
}
inline bool WayPointBehavior::_internal_closedloop() const {
return _impl_.closedloop_;
}
inline bool WayPointBehavior::closedloop() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.closedLoop)
return _internal_closedloop();
}
inline void WayPointBehavior::_internal_set_closedloop(bool value) {
_impl_.closedloop_ = value;
}
inline void WayPointBehavior::set_closedloop(bool value) {
_internal_set_closedloop(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.closedLoop)
}
// float constSpeed = 6;
inline void WayPointBehavior::clear_constspeed() {
_impl_.constspeed_ = 0;
}
inline float WayPointBehavior::_internal_constspeed() const {
return _impl_.constspeed_;
}
inline float WayPointBehavior::constspeed() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.constSpeed)
return _internal_constspeed();
}
inline void WayPointBehavior::_internal_set_constspeed(float value) {
_impl_.constspeed_ = value;
}
inline void WayPointBehavior::set_constspeed(float value) {
_internal_set_constspeed(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.constSpeed)
}
// int32 repeate = 7;
inline void WayPointBehavior::clear_repeate() {
_impl_.repeate_ = 0;
}
inline int32_t WayPointBehavior::_internal_repeate() const {
return _impl_.repeate_;
}
inline int32_t WayPointBehavior::repeate() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.repeate)
return _internal_repeate();
}
inline void WayPointBehavior::_internal_set_repeate(int32_t value) {
_impl_.repeate_ = value;
}
inline void WayPointBehavior::set_repeate(int32_t value) {
_internal_set_repeate(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.repeate)
}
// bool perpetual = 8;
inline void WayPointBehavior::clear_perpetual() {
_impl_.perpetual_ = false;
}
inline bool WayPointBehavior::_internal_perpetual() const {
return _impl_.perpetual_;
}
inline bool WayPointBehavior::perpetual() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.perpetual)
return _internal_perpetual();
}
inline void WayPointBehavior::_internal_set_perpetual(bool value) {
_impl_.perpetual_ = value;
}
inline void WayPointBehavior::set_perpetual(bool value) {
_internal_set_perpetual(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.perpetual)
}
// float minDepth = 9;
inline void WayPointBehavior::clear_mindepth() {
_impl_.mindepth_ = 0;
}
inline float WayPointBehavior::_internal_mindepth() const {
return _impl_.mindepth_;
}
inline float WayPointBehavior::mindepth() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.minDepth)
return _internal_mindepth();
}
inline void WayPointBehavior::_internal_set_mindepth(float value) {
_impl_.mindepth_ = value;
}
inline void WayPointBehavior::set_mindepth(float value) {
_internal_set_mindepth(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.minDepth)
}
// float maxDepth = 10;
inline void WayPointBehavior::clear_maxdepth() {
_impl_.maxdepth_ = 0;
}
inline float WayPointBehavior::_internal_maxdepth() const {
return _impl_.maxdepth_;
}
inline float WayPointBehavior::maxdepth() const {
// @@protoc_insertion_point(field_get:Behavior.WayPointBehavior.maxDepth)
return _internal_maxdepth();
}
inline void WayPointBehavior::_internal_set_maxdepth(float value) {
_impl_.maxdepth_ = value;
}
inline void WayPointBehavior::set_maxdepth(float value) {
_internal_set_maxdepth(value);
// @@protoc_insertion_point(field_set:Behavior.WayPointBehavior.maxDepth)
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
// -------------------------------------------------------------------
// @@protoc_insertion_point(namespace_scope)
} // namespace Behavior
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_Behavior_2eproto

View File

@@ -0,0 +1,50 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pClientViewer
# Author(s): Xiaobin Zeng
#--------------------------------------------------------
SET(SRC
ClientViewer.cpp
ClientViewer_Info.cpp
main.cpp
)
SET(CMAKE_CXX_STANDARD 11)
FIND_LIBRARY(DUNE_LIB dune-core /usr/local/lib /usr/local/lib/DUNE)
FIND_PATH(DUNE_INCLUDE DUNE/IMC.hpp /usr/local/include /usr/local/include/DUNE)
include_directories(${DUNE_INCLUDE})
# include(FindProtobuf)
# find_package(Protobuf REQUIRED)
# include_directories(${Protobuf_INCLUDE_DIR})
# protobuf_generate_cpp(PROTO_SRC PROTO_HEADER Behavior.proto)
# add_library(proto ${PROTO_HEADER} ${PROTO_SRC})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
#find_package (jsoncpp NO_MODULE REQUIRED)
include_directories(/usr/include/jsoncpp/)
link_directories(/usr/local/lib/)
ADD_EXECUTABLE(pClientViewer ${SRC})
TARGET_LINK_LIBRARIES(pClientViewer
${MOOS_LIBRARIES}
${CMAKE_DL_LIBS}
${SYSTEM_LIBS}
${DUNE_LIB}
mbutil
m
pthread
jsoncpp
# jsoncpp_lib_static
# protobuf
# protoc
# proto
# ${PROTOBUF_LIBRARY}
)

View File

@@ -0,0 +1,873 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: ClientViewer.cpp */
/* DATE: */
/************************************************************/
#include <iterator>
#include "ClientViewer.h"
//#include "Behavior.pb.h"
#include <json/json.h>
using namespace std;
#define UDP_RECEIVE_PORT 6001
#define TCP_SEND_PORT 8000
#define TCP_FILE_RECEIVE_PORT 8001
//#define TCP_SERVER_ADDRESS "10.25.0.230" //树莓派
#define TCP_SERVER_ADDRESS "127.0.0.1"
// #define TCP_SERVER_ADDRESS "10.25.0.163"
// #define TCP_SERVER_ADDRESS "10.25.0.160"
//---------------------------------------------------------
// Constructor
ClientViewer::ClientViewer()
{
udpReceiveBuffer = new uint8_t[65535];
tcpReceiveBuffer = new uint8_t[65535];
}
//---------------------------------------------------------
// Destructor
ClientViewer::~ClientViewer()
{
// udpCommEvent.Stop();
// tcpCommEvent.Stop();
delete udpReceiveBuffer;
delete tcpReceiveBuffer;
// if (sock_tcp_send)
// {
// delete sock_tcp_send;
// sock_tcp_send = NULL;
// }
// if (sock_udp_receive)
// {
// delete sock_udp_receive;
// sock_udp_receive = NULL;
// }
}
//---------------------------------------------------------
// Procedure: OnNewMail
bool ClientViewer::OnNewMail(MOOSMSG_LIST &NewMail)
{
MOOSMSG_LIST::iterator p;
for(p=NewMail.begin(); p!=NewMail.end(); p++)
{
CMOOSMsg &msg = *p;
string key = msg.GetKey();
string comm = msg.GetCommunity();
double dval = msg.GetDouble();
string sval = msg.GetString();
string msrc = msg.GetSource();
double mtime = msg.GetTime();
bool mdbl = msg.IsDouble();
bool mstr = msg.IsString();
std::cout << key << " : " << sval << std::endl;
if(key == "Command")
{
if (sval == "SetPlan1") //PlanDB
{
std::string systemName = "CCU Neptus 0_163";
std::string plan_1_Spec = SetPlan1(systemName, MOOS::Time());
DUNE::IMC::PlanDB msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanDB::TypeEnum::DBT_REQUEST;
msg.op = DUNE::IMC::PlanDB::OperationEnum::DBOP_SET;
msg.plan_id.assign("BHV_Waypoint");
msg.info = plan_1_Spec;
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "SetPlan2") //PlanDB
{
std::string systemName = "CCU Neptus 0_163";
std::string plan_2_Spec = SetPlan2(systemName, MOOS::Time());
//std::cout << plan_2_Spec << std::endl;
DUNE::IMC::PlanDB msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanDB::TypeEnum::DBT_REQUEST;
msg.op = DUNE::IMC::PlanDB::OperationEnum::DBOP_SET;
msg.plan_id.assign("BHV_Waypoint");
msg.info = plan_2_Spec;
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "ModifyPlan1") //PlanDB
{
std::string systemName = "CCU Neptus 0_163";
std::string plan_1_Spec = ModifyPlan1(systemName, MOOS::Time());
DUNE::IMC::PlanDB msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanDB::TypeEnum::DBT_REQUEST;
msg.op = DUNE::IMC::PlanDB::OperationEnum::DBOP_SET;
msg.plan_id.assign("BHV_Waypoint");
msg.info = plan_1_Spec;
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "GetPlanList") //PlanDB
{
DUNE::IMC::PlanDB msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanDB::TypeEnum::DBT_REQUEST;
msg.op = DUNE::IMC::PlanDB::OperationEnum::DBOP_GET_STATE;
msg.plan_id.assign("Test");
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "SetThrust") //SetEntityParameters
{
double timeStamp = MOOS::Time();
DUNE::IMC::SetEntityParameters msg;
msg.setTimeStamp(timeStamp);
msg.name = "Thrust";
DUNE::IMC::EntityParameter subMsg;
subMsg.setTimeStamp(timeStamp);
SetEntityStatus(subMsg, "Pwm", generateEntityValue("30", "int"));
msg.params.push_back(subMsg);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "SetIndicatorLight") //SetEntityParameters
{
double timeStamp = MOOS::Time();
DUNE::IMC::SetEntityParameters msg;
msg.setTimeStamp(timeStamp);
msg.name = "IndicatorLight";
DUNE::IMC::EntityParameter subMsg;
subMsg.setTimeStamp(timeStamp);
SetEntityStatus(subMsg, "Status", generateEntityValue("1", "int"));
msg.params.push_back(subMsg);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "StartPlan1") //PlanControl
{
DUNE::IMC::PlanControl msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanControl::TypeEnum::PC_REQUEST;
msg.op = DUNE::IMC::PlanControl::OperationEnum::PC_START;
msg.plan_id = "east_waypt_survey";
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "StartPlan2") //PlanControl
{
DUNE::IMC::PlanControl msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanControl::TypeEnum::PC_REQUEST;
msg.op = DUNE::IMC::PlanControl::OperationEnum::PC_START;
msg.plan_id = "west_waypt_survey";
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "StopPlan1") //PlanControl
{
DUNE::IMC::PlanControl msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanControl::TypeEnum::PC_REQUEST;
msg.op = DUNE::IMC::PlanControl::OperationEnum::PC_STOP;
msg.plan_id = "east_waypt_survey";
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "StopPlan2") //PlanControl
{
DUNE::IMC::PlanControl msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::PlanControl::TypeEnum::PC_REQUEST;
msg.op = DUNE::IMC::PlanControl::OperationEnum::PC_STOP;
msg.plan_id = "west_waypt_survey";
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "RemoteActions") //PlanControl
{
DUNE::IMC::RemoteActions msg;
msg.setTimeStamp();
Json::Value executeCommand;
executeCommand["Thrust"] = -100;
executeCommand["Heading"] = -27.5;
Json::StreamWriterBuilder builder;
msg.actions = Json::writeString(builder, executeCommand);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "VehicleCommand") //PlanControl
{
DUNE::IMC::VehicleCommand msg;
msg.setTimeStamp();
msg.type = DUNE::IMC::VehicleCommand::TypeEnum::VC_REQUEST;
msg.command = 1;
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "GetLogBook") //PlanControl
{
DUNE::IMC::LogBookControl msg;
msg.setTimeStamp();
msg.command = DUNE::IMC::LogBookControl::CommandEnum::LBC_GET;
DUNE::IMC::LogBookEntry msgLogBookEntry;
msgLogBookEntry.type = DUNE::IMC::LogBookEntry::TypeEnum::LBET_INFO;
msgLogBookEntry.context = "LIST";
msg.msg.push_back(msgLogBookEntry);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "RetrLogBook1") //PlanControl
{
DUNE::IMC::LogBookControl msg;
msg.setTimeStamp();
msg.command = DUNE::IMC::LogBookControl::CommandEnum::LBC_GET;
DUNE::IMC::LogBookEntry msgLogBookEntry;
msgLogBookEntry.type = DUNE::IMC::LogBookEntry::TypeEnum::LBET_INFO;
msgLogBookEntry.context = "RETR";
Json::Value retrFile;
retrFile["lauv-150/2023-11-16/103058"]["auv"]["file"] = "auvData.mdat";
Json::StreamWriterBuilder builder;
msgLogBookEntry.text = Json::writeString(builder, retrFile);
msg.msg.push_back(msgLogBookEntry);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "RetrLogBook2") //PlanControl
{
DUNE::IMC::LogBookControl msg;
msg.setTimeStamp();
msg.command = DUNE::IMC::LogBookControl::CommandEnum::LBC_GET;
DUNE::IMC::LogBookEntry msgLogBookEntry;
msgLogBookEntry.type = DUNE::IMC::LogBookEntry::TypeEnum::LBET_INFO;
msgLogBookEntry.context = "RETR";
Json::Value retrFile;
retrFile["lauv-150/2023-11-16/103058"]["command"]["file"] = "clientCommand.txt";
Json::StreamWriterBuilder builder;
msgLogBookEntry.text = Json::writeString(builder, retrFile);
msg.msg.push_back(msgLogBookEntry);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "RetrLogBook3") //PlanControl
{
DUNE::IMC::LogBookControl msg;
msg.setTimeStamp();
msg.command = DUNE::IMC::LogBookControl::CommandEnum::LBC_GET;
DUNE::IMC::LogBookEntry msgLogBookEntry;
msgLogBookEntry.type = DUNE::IMC::LogBookEntry::TypeEnum::LBET_INFO;
msgLogBookEntry.context = "RETR";
Json::Value retrFile;
retrFile["lauv-150/2023-11-16/103058"]["mission"]["file"] = "missionHistory.txt";
Json::StreamWriterBuilder builder;
msgLogBookEntry.text = Json::writeString(builder, retrFile);
msg.msg.push_back(msgLogBookEntry);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
if (sval == "DeleLogBook") //PlanControl
{
DUNE::IMC::LogBookControl msg;
msg.setTimeStamp();
msg.command = DUNE::IMC::LogBookControl::CommandEnum::LBC_CLEAR;
DUNE::IMC::LogBookEntry msgLogBookEntry;
msgLogBookEntry.type = DUNE::IMC::LogBookEntry::TypeEnum::LBET_INFO;
msgLogBookEntry.context = "DELE";
Json::Value retrFile;
retrFile["lauv-150/2023-11-16/103058"]["auv"]["file"] = "auvData.mdat";
retrFile["lauv-150/2023-11-16/103058"]["command"]["file"] = "clientCommand.txt";
retrFile["lauv-150/2023-11-16/105131"]["mission"]["file"] = "missionHistory.txt";
Json::StreamWriterBuilder builder;
msgLogBookEntry.text = Json::writeString(builder, retrFile);
msg.msg.push_back(msgLogBookEntry);
tcpSendToServer(&msg, TCP_SERVER_ADDRESS, TCP_SEND_PORT);
}
}
}
return(true);
}
//---------------------------------------------------------
// Procedure: OnConnectToServer
bool ClientViewer::OnConnectToServer()
{
RegisterVariables();
return(true);
}
bool ClientViewer::Iterate()
{
DUNE::IMC::Message * receiveUDPMessage;
while ((receiveUDPMessage = imcPollUDP()) != NULL)
{
processMessage(receiveUDPMessage);
free(receiveUDPMessage);
}
DUNE::IMC::Message * receiveTCPMessage;
while ((receiveTCPMessage = imcPollTCP()) != NULL)
{
processMessage(receiveTCPMessage);
free(receiveTCPMessage);
}
return(true);
}
// bool processMessageCallback(DUNE::IMC::Message * message)
// {
// int type = message->getId();
// if (type == DUNE::IMC::Announce::getIdStatic())
// {
// DUNE::IMC::Announce * msg = dynamic_cast<DUNE::IMC::Announce *>(message);
// // printf("server receive %s: %lf, %lf, %lf, %lf\n", \
// // msg->getName(), msg->getTimeStamp(), msg->lat, msg->lon, msg->height);
// printf("server receive %s: %lf, %lf, %lf, %lf\n", \
// msg->getName(), msg->getTimeStamp(), msg->lat*180/M_PI, msg->lon*180/M_PI, msg->height);
// }
// if (type == DUNE::IMC::PlanDB::getIdStatic())
// {
// DUNE::IMC::PlanDB * msg = dynamic_cast<DUNE::IMC::PlanDB *>(message);
// printf("server receive %s: %lf, %d, %d\n", msg->getName(), msg->getTimeStamp(), msg->type, msg->op);
// printf("%s\n", msg->info.c_str());
// }
// if (type == DUNE::IMC::PlanControlState::getIdStatic())
// {
// DUNE::IMC::PlanControlState * msg = dynamic_cast<DUNE::IMC::PlanControlState *>(message);
// printf("server receive %s: %lf, %s, %s, %u\n", \
// msg->getName(), msg->getTimeStamp(), msg->plan_id.c_str(), msg->man_id.c_str(), msg->state);
// }
// if (type == DUNE::IMC::MsgList::getIdStatic())
// {
// DUNE::IMC::MsgList * msgList = dynamic_cast<DUNE::IMC::MsgList *>(message);
// printf("server receive %s: %lf\n", msgList->getName(), msgList->getTimeStamp());
// DUNE::IMC::MessageList<DUNE::IMC::Message>::const_iterator iter1 = msgList->msgs.begin();
// for (; iter1 != msgList->msgs.end(); ++iter1)
// {
// DUNE::IMC::EntityParameters *entityParameter = static_cast<DUNE::IMC::EntityParameters *>(*iter1);
// DUNE::IMC::MessageList<DUNE::IMC::EntityParameter>::const_iterator iter2 = entityParameter->params.begin();
// for (; iter2 != entityParameter->params.end(); ++iter2)
// {
// DUNE::IMC::EntityParameter *subEntityParameter = static_cast<DUNE::IMC::EntityParameter *>(*iter2);
// std::cout << entityParameter->name << ": " << subEntityParameter->name << ", " << subEntityParameter->value << std::endl;
// }
// }
// }
// if (type == DUNE::IMC::EstimatedState::getIdStatic())
// {
// DUNE::IMC::EstimatedState * msg = dynamic_cast<DUNE::IMC::EstimatedState *>(message);
// // printf("server receive %s: %lf, (%f, %f, %f), (%f, %f, %f)\n",
// // msg->getName(), msg->getTimeStamp(),
// // msg->lat, msg->lon, msg->depth,
// // msg->phi, msg->theta, msg->psi);
// printf("server receive %s: %lf, (%f, %f, %f), (%f, %f, %f)\n",
// msg->getName(), msg->getTimeStamp(),
// msg->lat*180/M_PI, msg->lon*180/M_PI, msg->depth*180/M_PI,
// msg->phi*180/M_PI, msg->theta*180/M_PI, msg->psi*180/M_PI);
// }
// if (type == DUNE::IMC::VehicleState::getIdStatic())
// {
// DUNE::IMC::VehicleState * msg = dynamic_cast<DUNE::IMC::VehicleState *>(message);
// printf("server receive %s: %lf, %u\n",
// msg->getName(), msg->getTimeStamp(), msg->op_mode);
// }
// if (type == DUNE::IMC::LogBookControl::getIdStatic())
// {
// DUNE::IMC::LogBookControl * msg = dynamic_cast<DUNE::IMC::LogBookControl *>(message);
// printf("server receive %s: %lf, %u\n",
// msg->getName(), msg->getTimeStamp(), msg->command);
// DUNE::IMC::MessageList<DUNE::IMC::LogBookEntry>::const_iterator iter = msg->msg.begin();
// for (; iter != msg->msg.end(); ++iter)
// {
// DUNE::IMC::LogBookEntry *msgLogBookEntry = static_cast<DUNE::IMC::LogBookEntry *>(*iter);
// std::cout << msgLogBookEntry->type << ", " << msgLogBookEntry->text << std::endl;
// }
// }
// return true;
// }
//---------------------------------------------------------
// Procedure: OnStartUp()
// happens before connection is open
bool ClientViewer::OnStartUp()
{
initLon = -70.330400;
initLat = 43.825300;
initAlt = 0;
// udpCommEvent.SetPeriod(1);
// udpCommEvent.SetCallback(processMessageCallback,NULL);
// udpCommEvent.Start();
// tcpCommEvent.SetPeriod(1);
// tcpCommEvent.SetCallback(processMessageCallback,NULL);
// tcpCommEvent.Start();
sock_udp_receive.bind(UDP_RECEIVE_PORT, DUNE::Network::Address::Any, false);
m_poll_0.add(sock_udp_receive);
try
{
sock_tcp_send.connect(TCP_SERVER_ADDRESS, TCP_SEND_PORT);
sock_tcp_send.setKeepAlive(true);
m_poll_1.add(sock_tcp_send);
}
catch(const std::exception& e)
{
std::cerr << e.what() << '\n';
}
char local_ip2[INET_ADDRSTRLEN] = {0};
get_local_ip_using_create_socket(local_ip2);
ethernetIP = local_ip2;
RegisterVariables();
return(true);
}
std::string ClientViewer::SetPlan1(std::string sourceName, double stamp)
{
struct WayPointBehavior behavior;
behavior.source = sourceName;
behavior.priority = -1;
behavior.points.clear();
behavior.name = "east_waypt_survey";
behavior.priority = 10;
struct Landmark station_1 = {"station_1", -70.328891,43.824429, 10, 3, -1, -1, "point"};
struct Landmark station_2 = {"station_2", -70.327885,43.824676, 8, 5, -1, -1, "point"};
struct Landmark station_3 = {"station_3", -70.327867,43.823622, 6, 7, -1, -1, "point"};
struct Landmark station_4 = {"station_4", -70.328765,43.823622, 4, 9, -1, -1, "point"};
behavior.points.push_back(station_1);
behavior.points.push_back(station_2);
behavior.points.push_back(station_3);
behavior.points.push_back(station_4);
behavior.duration = -1;
behavior.constSpeed = -1;
behavior.repeat = 1;
behavior.closedLoop = true;
behavior.perpetual = false;
behavior.minDepth = -1;
behavior.maxDepth = -1;
Json::Value behaviorConfig;
behaviorConfig["taskName"] = behavior.name;
behaviorConfig["taskId"] = "1";
behaviorConfig["sourceName"] = behavior.source;
behaviorConfig["sourceAddress"] = ethernetIP;
behaviorConfig["clientStamp"] = stamp;
behaviorConfig["boardStamp"] = -1;
behaviorConfig["priority"] = behavior.priority;
behaviorConfig["duration"] = behavior.duration;
behaviorConfig["closedLoop"] = behavior.closedLoop;
behaviorConfig["constSpeed"] = behavior.constSpeed;
behaviorConfig["repeat"] = behavior.repeat;
behaviorConfig["perpetual"] = behavior.perpetual;
behaviorConfig["minDepth"] = behavior.minDepth;
behaviorConfig["maxDepth"] = behavior.maxDepth;
behaviorConfig["origin"]["lon"] = initLon;
behaviorConfig["origin"]["lat"] = initLat;
behaviorConfig["origin"]["altitude"] = initAlt;
Json::Value station;
station["name"] = station_1.name;
station["lon"] = station_1.lon;
station["lat"] = station_1.lat;
station["depth"] = station_1.depth;
station["speed"] = station_1.speed;
station["north"] = station_1.north;
station["east"] = station_1.east;
station["type"] = station_1.type;
behaviorConfig["points"].append(station);
station["name"] = station_2.name;
station["lon"] = station_2.lon;
station["lat"] = station_2.lat;
station["depth"] = station_2.depth;
station["speed"] = station_2.speed;
station["north"] = station_2.north;
station["east"] = station_2.east;
station["type"] = station_2.type;
behaviorConfig["points"].append(station);
station["name"] = station_3.name;
station["lon"] = station_3.lon;
station["lat"] = station_3.lat;
station["depth"] = station_3.depth;
station["speed"] = station_3.speed;
station["north"] = station_3.north;
station["east"] = station_3.east;
station["type"] = station_3.type;
behaviorConfig["points"].append(station);
station["name"] = station_4.name;
station["lon"] = station_4.lon;
station["lat"] = station_4.lat;
station["depth"] = station_4.depth;
station["speed"] = station_4.speed;
station["north"] = station_4.north;
station["east"] = station_4.east;
station["type"] = station_4.type;
behaviorConfig["points"].append(station);
Json::StreamWriterBuilder builder;
std::string behaviorSpecString = Json::writeString(builder, behaviorConfig);
return behaviorSpecString;
}
std::string ClientViewer::SetPlan2(std::string sourceName, double stamp)
{
struct WayPointBehavior behavior;
behavior.source = sourceName;
behavior.priority = -1;
behavior.points.clear();
behavior.name = "west_waypt_survey";
behavior.priority = 10;
struct Landmark station_1 = {"station_1", -70.331532,43.824194, 9, 4, -1, -1, "track"};
struct Landmark station_2 = {"station_2", -70.330328,43.824299, 7, 6, -1, -1, "track"};
struct Landmark station_3 = {"station_3", -70.330346,43.823518, 5, 8, -1, -1, "track"};
struct Landmark station_4 = {"station_4", -70.331406,43.823206, 3, 10, -1, -1, "track"};
behavior.points.push_back(station_1);
behavior.points.push_back(station_2);
behavior.points.push_back(station_3);
behavior.points.push_back(station_4);
behavior.duration = -1;
behavior.constSpeed = -1;
behavior.repeat = -1;
behavior.closedLoop = true;
behavior.perpetual = true;
behavior.minDepth = -1;
behavior.maxDepth = -1;
Json::Value behaviorConfig;
behaviorConfig["taskName"] = behavior.name;
behaviorConfig["taskId"] = "2";
behaviorConfig["sourceName"] = behavior.source;
behaviorConfig["sourceAddress"] = ethernetIP;
behaviorConfig["clientStamp"] = stamp;
behaviorConfig["boardStamp"] = -1;
behaviorConfig["priority"] = behavior.priority;
behaviorConfig["duration"] = behavior.duration;
behaviorConfig["closedLoop"] = behavior.closedLoop;
behaviorConfig["constSpeed"] = behavior.constSpeed;
behaviorConfig["repeat"] = behavior.repeat;
behaviorConfig["perpetual"] = behavior.perpetual;
behaviorConfig["minDepth"] = behavior.minDepth;
behaviorConfig["maxDepth"] = behavior.maxDepth;
behaviorConfig["origin"]["lon"] = initLon;
behaviorConfig["origin"]["lat"] = initLat;
behaviorConfig["origin"]["altitude"] = initAlt;
Json::Value station;
station["name"] = station_1.name;
station["lon"] = station_1.lon;
station["lat"] = station_1.lat;
station["depth"] = station_1.depth;
station["speed"] = station_1.speed;
station["north"] = station_1.north;
station["east"] = station_1.east;
station["type"] = station_1.type;
behaviorConfig["points"].append(station);
station["name"] = station_2.name;
station["lon"] = station_2.lon;
station["lat"] = station_2.lat;
station["depth"] = station_2.depth;
station["speed"] = station_2.speed;
station["north"] = station_2.north;
station["east"] = station_2.east;
station["type"] = station_2.type;
behaviorConfig["points"].append(station);
station["name"] = station_3.name;
station["lon"] = station_3.lon;
station["lat"] = station_3.lat;
station["depth"] = station_3.depth;
station["speed"] = station_3.speed;
station["north"] = station_3.north;
station["east"] = station_3.east;
station["type"] = station_3.type;
behaviorConfig["points"].append(station);
station["name"] = station_4.name;
station["lon"] = station_4.lon;
station["lat"] = station_4.lat;
station["depth"] = station_4.depth;
station["speed"] = station_4.speed;
station["north"] = station_4.north;
station["east"] = station_4.east;
station["type"] = station_4.type;
behaviorConfig["points"].append(station);
Json::StreamWriterBuilder builder;
std::string behaviorSpecString = Json::writeString(builder, behaviorConfig);
return behaviorSpecString;
}
std::string ClientViewer::ModifyPlan1(std::string sourceName, double stamp)
{
struct WayPointBehavior behavior;
behavior.source = sourceName;
behavior.priority = -1;
behavior.points.clear();
behavior.name = "east_waypt_survey";
behavior.priority = 10;
struct Landmark station_1 = {"station_1", -70.328891,43.824429, 9, 2, -1, -1, "track"};
struct Landmark station_2 = {"station_2", -70.327885,43.824676, 7, 4, -1, -1, "point"};
struct Landmark station_3 = {"station_3", -70.327867,43.823622, 5, 6, -1, -1, "track"};
struct Landmark station_4 = {"station_4", -70.328765,43.823622, 3, 8, -1, -1, "point"};
behavior.points.push_back(station_1);
behavior.points.push_back(station_2);
behavior.points.push_back(station_3);
behavior.points.push_back(station_4);
behavior.duration = -1;
behavior.constSpeed = -1;
behavior.repeat = 3;
behavior.closedLoop = true;
behavior.perpetual = false;
behavior.minDepth = -1;
behavior.maxDepth = -1;
Json::Value behaviorConfig;
behaviorConfig["taskName"] = behavior.name;
behaviorConfig["taskId"] = "1";
behaviorConfig["sourceName"] = behavior.source;
behaviorConfig["sourceAddress"] = ethernetIP;
behaviorConfig["clientStamp"] = stamp;
behaviorConfig["boardStamp"] = -1;
behaviorConfig["priority"] = behavior.priority;
behaviorConfig["duration"] = behavior.duration;
behaviorConfig["closedLoop"] = behavior.closedLoop;
behaviorConfig["constSpeed"] = behavior.constSpeed;
behaviorConfig["repeat"] = behavior.repeat;
behaviorConfig["perpetual"] = behavior.perpetual;
behaviorConfig["minDepth"] = behavior.minDepth;
behaviorConfig["maxDepth"] = behavior.maxDepth;
behaviorConfig["origin"]["lon"] = initLon;
behaviorConfig["origin"]["lat"] = initLat;
behaviorConfig["origin"]["altitude"] = initAlt;
Json::Value station;
station["name"] = station_1.name;
station["lon"] = station_1.lon;
station["lat"] = station_1.lat;
station["depth"] = station_1.depth;
station["speed"] = station_1.speed;
station["north"] = station_1.north;
station["east"] = station_1.east;
station["type"] = station_1.type;
behaviorConfig["points"].append(station);
station["name"] = station_2.name;
station["lon"] = station_2.lon;
station["lat"] = station_2.lat;
station["depth"] = station_2.depth;
station["speed"] = station_2.speed;
station["north"] = station_2.north;
station["east"] = station_2.east;
station["type"] = station_2.type;
behaviorConfig["points"].append(station);
station["name"] = station_3.name;
station["lon"] = station_3.lon;
station["lat"] = station_3.lat;
station["depth"] = station_3.depth;
station["speed"] = station_3.speed;
station["north"] = station_3.north;
station["east"] = station_3.east;
station["type"] = station_3.type;
behaviorConfig["points"].append(station);
station["name"] = station_4.name;
station["lon"] = station_4.lon;
station["lat"] = station_4.lat;
station["depth"] = station_4.depth;
station["speed"] = station_4.speed;
station["north"] = station_4.north;
station["east"] = station_4.east;
station["type"] = station_4.type;
behaviorConfig["points"].append(station);
Json::StreamWriterBuilder builder;
std::string behaviorSpecString = Json::writeString(builder, behaviorConfig);
return behaviorSpecString;
}
DUNE::IMC::Message * ClientViewer::imcPollUDP()
{
if (m_poll_0.poll(0))
{
DUNE::Network::Address addr;
uint16_t rv = sock_udp_receive.read(udpReceiveBuffer, 65535, &addr);
DUNE::IMC::Message * msg = DUNE::IMC::Packet::deserialize(udpReceiveBuffer, rv);
return msg;
}
return NULL;
}
DUNE::IMC::Message * ClientViewer::imcPollTCP()
{
if (m_poll_1.poll(0))
{
uint16_t rv = sock_tcp_send.read(tcpReceiveBuffer, 65535);
DUNE::IMC::Message * msg = DUNE::IMC::Packet::deserialize(tcpReceiveBuffer, rv);
return msg;
}
return NULL;
}
bool ClientViewer::tcpSendToServer(DUNE::IMC::Message * msg, std::string addr, int port)
{
DUNE::Utils::ByteBuffer bb;
try {
DUNE::IMC::Packet::serialize(msg, bb);
return sock_tcp_send.write(bb.getBuffer(), msg->getSerializationSize());
}
catch (std::runtime_error& e)
{
MOOSTrace ("ERROR sending %s to %s:%d: %s\n", msg->getName(), addr.c_str(), port, e.what());
return false;
}
return true;
}
void ClientViewer::processMessage(DUNE::IMC::Message * message) {
int type = message->getId();
if (type == DUNE::IMC::Announce::getIdStatic())
{
DUNE::IMC::Announce * msg = dynamic_cast<DUNE::IMC::Announce *>(message);
printf("server receive %s: %lf, %lf, %lf, %lf\n", \
msg->getName(), msg->getTimeStamp(), msg->lat*180/M_PI, msg->lon*180/M_PI, msg->height);
}
if (type == DUNE::IMC::PlanDB::getIdStatic())
{
DUNE::IMC::PlanDB * msg = dynamic_cast<DUNE::IMC::PlanDB *>(message);
printf("server receive %s: %lf, %d, %d\n", msg->getName(), msg->getTimeStamp(), msg->type, msg->op);
printf("%s\n", msg->info.c_str());
}
if (type == DUNE::IMC::PlanControlState::getIdStatic())
{
DUNE::IMC::PlanControlState * msg = dynamic_cast<DUNE::IMC::PlanControlState *>(message);
printf("server receive %s: %lf, %s, %s, %u\n", \
msg->getName(), msg->getTimeStamp(), msg->plan_id.c_str(), msg->man_id.c_str(), msg->state);
}
if (type == DUNE::IMC::MsgList::getIdStatic())
{
DUNE::IMC::MsgList * msgList = dynamic_cast<DUNE::IMC::MsgList *>(message);
printf("server receive %s: %lf\n", msgList->getName(), msgList->getTimeStamp());
DUNE::IMC::MessageList<DUNE::IMC::Message>::const_iterator iter1 = msgList->msgs.begin();
for (; iter1 != msgList->msgs.end(); ++iter1)
{
DUNE::IMC::EntityParameters *entityParameter = static_cast<DUNE::IMC::EntityParameters *>(*iter1);
DUNE::IMC::MessageList<DUNE::IMC::EntityParameter>::const_iterator iter2 = entityParameter->params.begin();
for (; iter2 != entityParameter->params.end(); ++iter2)
{
DUNE::IMC::EntityParameter *subEntityParameter = static_cast<DUNE::IMC::EntityParameter *>(*iter2);
std::cout << entityParameter->name << ": " << subEntityParameter->name << ", " << subEntityParameter->value << std::endl;
}
}
}
if (type == DUNE::IMC::EstimatedState::getIdStatic())
{
DUNE::IMC::EstimatedState * msg = dynamic_cast<DUNE::IMC::EstimatedState *>(message);
printf("server receive %s: %lf, (%f, %f, %f), (%f, %f, %f)\n",
msg->getName(), msg->getTimeStamp(),
msg->lat*180/M_PI, msg->lon*180/M_PI, msg->depth*180/M_PI,
msg->phi*180/M_PI, msg->theta*180/M_PI, msg->psi*180/M_PI);
}
if (type == DUNE::IMC::VehicleState::getIdStatic())
{
DUNE::IMC::VehicleState * msg = dynamic_cast<DUNE::IMC::VehicleState *>(message);
printf("server receive %s: %lf, %u\n",
msg->getName(), msg->getTimeStamp(), msg->op_mode);
}
if (type == DUNE::IMC::LogBookControl::getIdStatic())
{
DUNE::IMC::LogBookControl * msg = dynamic_cast<DUNE::IMC::LogBookControl *>(message);
printf("server receive %s: %lf, %u\n",
msg->getName(), msg->getTimeStamp(), msg->command);
DUNE::IMC::MessageList<DUNE::IMC::LogBookEntry>::const_iterator iter = msg->msg.begin();
for (; iter != msg->msg.end(); ++iter)
{
DUNE::IMC::LogBookEntry *msgLogBookEntry = static_cast<DUNE::IMC::LogBookEntry *>(*iter);
std::cout << msgLogBookEntry->type << ", " << msgLogBookEntry->context << ", " << msgLogBookEntry->text << std::endl;
}
}
}
//---------------------------------------------------------
// Procedure: RegisterVariables
void ClientViewer::RegisterVariables()
{
Register("Command", 0);
Register("Key", 0);
Register("Value", 0);
}
int ClientViewer::SetEntityStatus(DUNE::IMC::EntityParameter& subMsg, std::string name, std::string value)
{
int result = -1;
subMsg.name = name;
subMsg.value = value;
result = 0;
return result;
}
std::string ClientViewer::generateEntityName(std::string parentName, std::string childName)
{
Json::Value outputJsonValue;
outputJsonValue["parent"] = parentName;
outputJsonValue["child"] = childName;
Json::StreamWriterBuilder builder;
std::string outputJsonString = Json::writeString(builder, outputJsonValue);
return outputJsonString;
}
std::string ClientViewer::generateEntityValue(std::string value, std::string type)
{
Json::Value outputJsonValue;
outputJsonValue["value"] = value;
outputJsonValue["type"] = type;
Json::StreamWriterBuilder builder;
std::string outputJsonString = Json::writeString(builder, outputJsonValue);
return outputJsonString;
}
int ClientViewer::get_local_ip_using_create_socket(char* str_ip)
{
int status = -1;
int af = AF_INET;
int sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in remote_addr;
struct sockaddr_in local_addr;
char *local_ip = NULL;
socklen_t len = 0;
remote_addr.sin_family = AF_INET;
remote_addr.sin_port = htons(53);
remote_addr.sin_addr.s_addr = inet_addr("1.1.1.1");
len = sizeof(struct sockaddr_in);
status = connect(sock_fd, (struct sockaddr*)&remote_addr, len);
if(status != 0 ){
printf("connect err \n");
}
len = sizeof(struct sockaddr_in);
getsockname(sock_fd, (struct sockaddr*)&local_addr, &len);
local_ip = inet_ntoa(local_addr.sin_addr);
if(local_ip)
{
strcpy(str_ip, local_ip);
status = 0;
}
return status;
}

View File

@@ -0,0 +1,101 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: ClientViewer.h */
/* DATE: */
/************************************************************/
#ifndef ClientViewer_HEADER
#define ClientViewer_HEADER
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include "MOOS/libMOOS/MOOSLib.h"
#include "MOOS/libMOOS/Utils/MOOSThread.h"
#include "MOOS/libMOOS/Utils/PeriodicEvent.h"
#include <DUNE/DUNE.hpp>
// #include "UDPCommunicationEvent.h"
// #include "TCPCommunicationEvent.h"
struct Landmark {
std::string name;
float lon;
float lat;
float depth;
float speed;
float north;
float east;
std::string type;
};
struct WayPointBehavior
{
std::string name;
std::string source;
int priority;
std::vector<Landmark> points;
float duration;
bool closedLoop;
float constSpeed;
int repeat;
bool perpetual;
float minDepth;
float maxDepth;
};
class ClientViewer : public CMOOSApp
{
public:
ClientViewer();
~ClientViewer();
protected: // Standard MOOSApp functions to overload
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
void RegisterVariables();
void processMessage(DUNE::IMC::Message * message);
private:
DUNE::IMC::Message * imcPollTCP();
DUNE::IMC::Message * imcPollUDP();
DUNE::Network::TCPSocket sock_tcp_send;
DUNE::Network::UDPSocket sock_udp_receive;
bool tcpSendToServer(DUNE::IMC::Message * msg, std::string addr, int port);
int get_local_ip_using_create_socket(char* str_ip);
std::string SetPlan1(std::string sourceName, double stamp);
std::string SetPlan2(std::string sourceName, double stamp);
std::string ModifyPlan1(std::string sourceName, double stamp);
int SetEntityStatus(DUNE::IMC::EntityParameter& subMsg, std::string name, std::string value);
std::string generateEntityName(std::string parentName, std::string childName);
std::string generateEntityValue(std::string value, std::string type);
DUNE::IO::Poll m_poll_0;
DUNE::IO::Poll m_poll_1;
DUNE::IO::Poll m_poll_2;
uint8_t* udpReceiveBuffer;
uint8_t* tcpReceiveBuffer;
std::string SetPlan1();
std::string SetPlan2();
std::string ethernetIP;
float initLon;
float initLat;
float initAlt;
CMOOSThread udpThread;
// UDPCommunicationEvent udpCommEvent;
// TCPCommunicationEvent tcpCommEvent;
};
#endif

View File

@@ -0,0 +1,115 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: ClientViewer_Info.cpp */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#include <cstdlib>
#include <iostream>
#include "ClientViewer_Info.h"
#include "ColorParse.h"
#include "ReleaseInfo.h"
using namespace std;
//----------------------------------------------------------------
// Procedure: showSynopsis
void showSynopsis()
{
blk("SYNOPSIS: ");
blk("------------------------------------ ");
blk(" The pClientViewer application is used for ");
blk(" ");
blk(" ");
blk(" ");
blk(" ");
}
//----------------------------------------------------------------
// Procedure: showHelpAndExit
void showHelpAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("Usage: pClientViewer file.moos [OPTIONS] ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("Options: ");
mag(" --alias","=<ProcessName> ");
blk(" Launch pClientViewer with the given process name ");
blk(" rather than pClientViewer. ");
mag(" --example, -e ");
blk(" Display example MOOS configuration block. ");
mag(" --help, -h ");
blk(" Display this help message. ");
mag(" --interface, -i ");
blk(" Display MOOS publications and subscriptions. ");
mag(" --version,-v ");
blk(" Display the release version of pClientViewer. ");
blk(" ");
blk("Note: If argv[2] does not otherwise match a known option, ");
blk(" then it will be interpreted as a run alias. This is ");
blk(" to support pAntler launching conventions. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showExampleConfigAndExit
void showExampleConfigAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pClientViewer Example MOOS Configuration ");
blu("=============================================================== ");
blk(" ");
blk("ProcessConfig = pClientViewer ");
blk("{ ");
blk(" AppTick = 4 ");
blk(" CommsTick = 4 ");
blk(" ");
blk("} ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showInterfaceAndExit
void showInterfaceAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pClientViewer INTERFACE ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("SUBSCRIPTIONS: ");
blk("------------------------------------ ");
blk(" NODE_MESSAGE = src_node=alpha,dest_node=bravo,var_name=FOO, ");
blk(" string_val=BAR ");
blk(" ");
blk("PUBLICATIONS: ");
blk("------------------------------------ ");
blk(" Publications are determined by the node message content. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showReleaseInfoAndExit
void showReleaseInfoAndExit()
{
showReleaseInfo("pClientViewer", "gpl");
exit(0);
}

View File

@@ -0,0 +1,18 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: ClientViewer_Info.h */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#ifndef ClientViewer_INFO_HEADER
#define ClientViewer_INFO_HEADER
void showSynopsis();
void showHelpAndExit();
void showExampleConfigAndExit();
void showInterfaceAndExit();
void showReleaseInfoAndExit();
#endif

View File

@@ -0,0 +1,52 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: main.cpp */
/* DATE: */
/************************************************************/
#include <string>
#include "MBUtils.h"
#include "ColorParse.h"
#include "ClientViewer.h"
#include "ClientViewer_Info.h"
using namespace std;
int main(int argc, char *argv[])
{
string mission_file;
string run_command = argv[0];
for(int i=1; i<argc; i++) {
string argi = argv[i];
if((argi=="-v") || (argi=="--version") || (argi=="-version"))
showReleaseInfoAndExit();
else if((argi=="-e") || (argi=="--example") || (argi=="-example"))
showExampleConfigAndExit();
else if((argi == "-h") || (argi == "--help") || (argi=="-help"))
showHelpAndExit();
else if((argi == "-i") || (argi == "--interface"))
showInterfaceAndExit();
else if(strEnds(argi, ".moos") || strEnds(argi, ".moos++"))
mission_file = argv[i];
else if(strBegins(argi, "--alias="))
run_command = argi.substr(8);
else if(i==2)
run_command = argi;
}
if(mission_file == "")
showHelpAndExit();
cout << termColor("green");
cout << "pClientViewer launching as " << run_command << endl;
cout << termColor() << endl;
ClientViewer ClientViewer;
ClientViewer.Run(run_command.c_str(), mission_file.c_str());
return(0);
}

View File

@@ -0,0 +1,9 @@
//------------------------------------------------
// pClientViewer config block
ProcessConfig = pClientViewer
{
AppTick = 4
CommsTick = 4
}

View File

@@ -0,0 +1,38 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pDataManagement
# Author(s): Xiaobin Zeng
#--------------------------------------------------------
SET(SRC
DataManagement.cpp
DataManagement_Info.cpp
main.cpp
)
FIND_LIBRARY(DUNE_LIB dune-core /usr/local/lib /usr/local/lib/DUNE)
FIND_PATH(DUNE_INCLUDE DUNE/IMC.hpp /usr/local/include /usr/local/include/DUNE)
include_directories(${DUNE_INCLUDE})
# include(FindProtobuf)
# find_package(Protobuf REQUIRED)
# include_directories(${Protobuf_INCLUDE_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
#find_package (jsoncpp NO_MODULE REQUIRED)
include_directories(/usr/include/jsoncpp/)
link_directories(/usr/local/lib/)
ADD_EXECUTABLE(pDataManagement ${SRC})
TARGET_LINK_LIBRARIES(pDataManagement
${MOOS_LIBRARIES}
${CMAKE_DL_LIBS}
${SYSTEM_LIBS}
${DUNE_LIB}
mbutil
m
pthread
jsoncpp
)

View File

@@ -0,0 +1,640 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: DataManagement.cpp */
/* DATE: */
/************************************************************/
#include <iterator>
#include <sys/stat.h>
#include "MBUtils.h"
#include "DataManagement.h"
#include <json/json.h>
using namespace std;
//---------------------------------------------------------
// Constructor
DataManagement::DataManagement()
{
motionControlInfo.desiredHeading = 0;
motionControlInfo.desiredSpeed = 0;
motionControlInfo.desiredDepth = 0;
nDoublePrecision = 5;
//AUV状态信息:0~99
logVarList["uMotion_pose_log"] = 0;
//任务历史信息:100~199
logVarList["uMission_task_log"] = 100;
//客户端操作记录:200~299
logVarList["uClient_plandbSet_log"] = 200;
logVarList["uClient_plandbGet_log"] = 201;
logVarList["uClient_parameterSet_log"] = 202;
logVarList["uClient_planControl_log"] = 203;
logVarList["uClient_manualEnable_log"] = 204;
logVarList["uClient_manualDrive_log"] = 205;
//错误日志:300~399
logVarList["uFH_errorMsg_log"] = 300;
//运控信息:400~499
logVarList["uMotion_desired_log"] = 400;
}
//---------------------------------------------------------
// Destructor
DataManagement::~DataManagement()
{
if(auvDataStream.is_open())
{
auvDataStream.close();
}
if(missionHistoryStream.is_open())
{
missionHistoryStream.close();
}
if(clientCommandStream.is_open())
{
clientCommandStream.close();
}
if(faultLogStream.is_open())
{
faultLogStream.close();
}
if(motionControlStream.is_open())
{
motionControlStream.close();
}
}
//---------------------------------------------------------
// Procedure: OnNewMail
bool DataManagement::OnNewMail(MOOSMSG_LIST &NewMail)
{
AppCastingMOOSApp::OnNewMail(NewMail);
DoAsyncLog(NewMail);
MOOSMSG_LIST::iterator p;
for(p=NewMail.begin(); p!=NewMail.end(); p++)
{
CMOOSMsg &msg = *p;
string key = msg.GetKey();
string comm = msg.GetCommunity();
double dval = msg.GetDouble();
string sval = msg.GetString();
string msrc = msg.GetSource();
double mtime = msg.GetTime();
bool mdbl = msg.IsDouble();
bool mstr = msg.IsString();
if(key == "uDevice_monitor_fb")
{
std::string err;
Json::Value estimatedStateData;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &estimatedStateData, &err);
if (!parsingResult)
{
std::cerr << "Failed to parse JSON string." << std::endl;
return false;
}
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ","
<< estimatedStateData["driveMode"].asUInt() << ","
<< estimatedStateData["referenceLon"].asFloat() << ","
<< estimatedStateData["referenceLat"].asFloat() << ","
<< estimatedStateData["referenceAltitude"].asFloat() << ","
<< estimatedStateData["currentLon"].asFloat() << ","
<< estimatedStateData["currentLat"].asFloat() << ","
<< estimatedStateData["currentAltitude"].asFloat() << ","
<< estimatedStateData["north"].asFloat() << ","
<< estimatedStateData["east"].asFloat() << ","
<< estimatedStateData["depth"].asFloat() << ","
<< estimatedStateData["roll"].asFloat() << ","
<< estimatedStateData["pitch"].asFloat() << ","
<< estimatedStateData["yaw"].asFloat() << ","
<< estimatedStateData["insVX"].asFloat() << ","
<< estimatedStateData["insVY"].asFloat() << ","
<< estimatedStateData["insVZ"].asFloat() << ","
<< estimatedStateData["dvlVX"].asFloat() << ","
<< estimatedStateData["dvlVY"].asFloat() << ","
<< estimatedStateData["dvlVZ"].asFloat() << ","
<< estimatedStateData["height"].asFloat() << ","
<< estimatedStateData["rpm"].asInt() << ","
<< estimatedStateData["lightEnable"].asUInt() << ","
<< estimatedStateData["throwingLoadEnable"].asUInt() << ","
<< estimatedStateData["dvlStatus"].asUInt() << ","
<< estimatedStateData["iridium"].asUInt() << ","
<< estimatedStateData["batteryVoltage"].asUInt() << ","
<< estimatedStateData["batteryLevel"].asUInt() << ","
<< estimatedStateData["batteryTemp"].asFloat();
Notify("uMotion_pose_log", ss.str());
}
if(key == "uMission_task_fb")
{
std::string err;
Json::Value missionStatusObject;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &missionStatusObject, &err);
try
{
if (!parsingResult)
{
throw (std::string("parse error"));
}
if (missionStatusObject["state"].asInt() == RUN)
{
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ","
<< missionStatusObject["state"].asInt() << ","
<< missionStatusObject["taskName"].asString() << ","
<< missionStatusObject["destName"].asString() << ","
<< missionStatusObject["errorCode"].asUInt();
Notify("uMission_task_log", ss.str());
}
}
catch(std::string s)
{
std::cout << s << std::endl;
}
}
if((key == "uFH_errorMsg1_fb") || (key == "uFH_errorMsg2_fb") || (key == "uFH_errorMsg3_fb"))
{
std::string err;
Json::Value errorStatus;
std::istringstream iss(msg.GetString());
Json::CharReaderBuilder builder;
bool parsingResult = Json::parseFromStream(builder, iss, &errorStatus, &err);
// std::cout << "uFH_errorMsg: " << msg.GetString() << std::endl;
try
{
if (!parsingResult)
{
throw (std::string("parse error"));
}
if (errorStatus["FaultMsgs"].empty())
{
throw (std::string("faultMsgs empty"));
}
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ",";
ss << errorStatus["FaultLevel"].asInt() << ",";
std::string prefix = ss.str();
Json::Value faultMsgsObject = errorStatus["FaultMsgs"];
std::vector<std::string> typeList = faultMsgsObject.getMemberNames();
int typeSize = typeList.size();
std::vector<std::string> contentList;
for(int i=0; i< typeSize; i++)
{
ss.str("");
std::string faultType = typeList.at(i);
ss << faultType << ",";
Json::Value faultIDArray = faultMsgsObject[faultType]["FaultID"];
if (!faultIDArray.isArray())
{
throw (std::string(faultType + " FaultID is not array"));
}
ss << "[";
for(int j=0; j< faultIDArray.size(); j++)
{
if (j == faultIDArray.size() - 1)
{
ss << faultIDArray[j].asInt();
}
else
{
ss << faultIDArray[j].asInt() << ",";
}
}
ss << "],";
ss << faultMsgsObject[faultType]["FirstRecvTime"].asString() << ",";
ss << faultMsgsObject[faultType]["Source"].asString();
contentList.push_back(prefix + ss.str());
}
int contentSize = contentList.size();
ss.str("");
for (int i = 0; i < contentSize; i++)
{
if (i == contentSize - 1)
{
ss << contentList.at(i);
}
else
{
ss << contentList.at(i) << std::endl;
}
}
Notify("uFH_errorMsg_log", ss.str());
}
catch(std::string s)
{
std::cout << s << std::endl;
}
}
if(key == "DESIRED_HEADING")
{
motionControlInfo.desiredHeading = msg.GetDouble();
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ",";
ss << motionControlInfo.desiredHeading << ","
<< motionControlInfo.desiredSpeed << ","
<< motionControlInfo.desiredDepth;
Notify("uMotion_desired_log", ss.str());
}
if(key == "DESIRED_SPEED")
{
motionControlInfo.desiredSpeed = msg.GetDouble();
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ",";
ss << motionControlInfo.desiredHeading << ","
<< motionControlInfo.desiredSpeed << ","
<< motionControlInfo.desiredDepth;
Notify("uMotion_desired_log", ss.str());
}
if(key == "DESIRED_DEPTH")
{
motionControlInfo.desiredDepth = msg.GetDouble();
std::stringstream ss;
ss << std::fixed << std::setprecision(6) << MOOS::Time() << ",";
ss << motionControlInfo.desiredHeading << ","
<< motionControlInfo.desiredSpeed << ","
<< motionControlInfo.desiredDepth;
Notify("uMotion_desired_log", ss.str());
}
}
return(true);
}
bool DataManagement::DoAsyncLog(MOOSMSG_LIST &NewMail)
{
MOOSMSG_LIST::iterator q;
std::stringstream sStream;
int saveFileIndex = -1;
for(q = NewMail.begin();q!=NewMail.end();q++)
{
CMOOSMsg & rMsg = *q;
if(logVarList.find(rMsg.m_sKey)!=logVarList.end())
{
std::map<std::string, int>::iterator q = logVarList.find(rMsg.m_sKey);
saveFileIndex = q->second;
std::stringstream sEntry;
sEntry.setf(ios::left);
sEntry.setf(ios::fixed);
if(rMsg.IsDataType(MOOS_STRING) || rMsg.IsDataType(MOOS_DOUBLE))
{
sEntry << rMsg.GetAsString(12,nDoublePrecision) << ' ';
}
if ((saveFileIndex >= 0) && (saveFileIndex < 100))
{
if(auvDataStream.is_open())
{
auvDataStream << sEntry.str() << std::endl;
}
}
if ((saveFileIndex >= 100) && (saveFileIndex < 200))
{
if(missionHistoryStream.is_open())
{
missionHistoryStream << sEntry.str() << std::endl;
}
}
if ((saveFileIndex >= 200) && (saveFileIndex < 300))
{
if(clientCommandStream.is_open())
{
clientCommandStream << sEntry.str() << std::endl;
}
}
if ((saveFileIndex >= 300) && (saveFileIndex < 400))
{
if(faultLogStream.is_open())
{
faultLogStream << sEntry.str() << std::endl;
}
}
if ((saveFileIndex >= 400) && (saveFileIndex < 500))
{
if(motionControlStream.is_open())
{
motionControlStream << sEntry.str() << std::endl;
}
}
contentFromStream = sEntry.str();
}
}
return true;
}
//---------------------------------------------------------
// Procedure: OnConnectToServer
bool DataManagement::OnConnectToServer()
{
RegisterVariables();
return(true);
}
//---------------------------------------------------------
// Procedure: Iterate()
// happens AppTick times per second
bool DataManagement::Iterate()
{
AppCastingMOOSApp::Iterate();
auvDataStream.flush();
missionHistoryStream.flush();
clientCommandStream.flush();
faultLogStream.flush();
motionControlStream.flush();
AppCastingMOOSApp::PostReport();
return(true);
}
//---------------------------------------------------------
// Procedure: OnStartUp()
// happens before connection is open
bool DataManagement::OnStartUp()
{
AppCastingMOOSApp::OnStartUp();
list<string> sParams;
m_MissionReader.EnableVerbatimQuoting(false);
if(m_MissionReader.GetConfiguration(GetAppName(), sParams)) {
list<string>::iterator p;
for(p=sParams.begin(); p!=sParams.end(); p++) {
string line = *p;
string param = tolower(biteStringX(line, '='));
string value = line;
if(param == "foo") {
//handled
}
else if(param == "bar") {
//handled
}
}
}
std::string saveLogDir;
m_MissionReader.GetValue("LogDir", saveLogDir);
std::string vehicleName;
m_MissionReader.GetValue("VehicleName", vehicleName);
bool logEnable = false;
m_MissionReader.GetValue("LogEnable", logEnable);
std::string auvDataFile;
m_MissionReader.GetValue("AuvDataLog", auvDataFile);
std::string missionHistoryFile;
m_MissionReader.GetValue("MissionHistoryLog", missionHistoryFile);
std::string clientCommandFile;
m_MissionReader.GetValue("ClientCommandLog", clientCommandFile);
std::string faultLogFile;
m_MissionReader.GetValue("FaultLog", faultLogFile);
std::string motionControlFile;
m_MissionReader.GetValue("MotionControlLog", motionControlFile);
if (logEnable)
{
if (access(saveLogDir.c_str(), F_OK) == -1 )
{
mode_t mode = 0775;
mkdir(saveLogDir.c_str(), mode);
}
saveLogDir += "/" + vehicleName;
if (access(saveLogDir.c_str(), F_OK) == -1 )
{
mode_t mode = 0775;
mkdir(saveLogDir.c_str(), mode);
}
std::string subDir;
std::string localTime;
GenerateFileName(subDir, localTime);
saveLogDir += "/" + subDir;
if (access(saveLogDir.c_str(), F_OK) == -1 )
{
mode_t mode = 0775;
mkdir(saveLogDir.c_str(), mode);
}
saveLogDir += "/" + localTime;
if (access(saveLogDir.c_str(), F_OK) == -1 )
{
mode_t mode = 0775;
mkdir(saveLogDir.c_str(), mode);
}
std::string auvDataSavePath = saveLogDir + "/" + auvDataFile;
std::string missionHistorySavePath = saveLogDir + "/" + missionHistoryFile;
std::string clientCommandSavePath = saveLogDir + "/" + clientCommandFile;
std::string faultLogSavePath = saveLogDir + "/" + faultLogFile;
std::string motionControlSavePath = saveLogDir + "/" + motionControlFile;
if(!OpenFile(auvDataStream, auvDataSavePath))
return MOOSFail("Failed to Open auvData file");
if(!OpenFile(missionHistoryStream, missionHistorySavePath))
return MOOSFail("Failed to Open missionHistory file");
if(!OpenFile(clientCommandStream, clientCommandSavePath))
return MOOSFail("Failed to Open clientCommand file");
if(!OpenFile(faultLogStream, faultLogSavePath))
return MOOSFail("Failed to Open faultLog file");
if(!OpenFile(motionControlStream, motionControlSavePath))
return MOOSFail("Failed to Open faultLog file");
DoAuvDataLogBanner(auvDataStream);
DoMissionHistoryBanner(missionHistoryStream);
DoFaultHandleBanner(faultLogStream);
DoMotionControlBanner(motionControlStream);
}
RegisterVariables();
return(true);
}
//---------------------------------------------------------
// Procedure: RegisterVariables
void DataManagement::RegisterVariables()
{
AppCastingMOOSApp::RegisterVariables();
Register("uDevice_monitor_fb", 0);
Register("uMission_task_fb", 0);
Register("uMission_task_log", 0);
Register("uMotion_pose_log", 0);
Register("uClient_plandbSet_log", 0);
Register("uClient_plandbGet_log", 0);
Register("uClient_parameterSet_log", 0);
Register("uClient_planControl_log", 0);
Register("uClient_manualEnable_log", 0);
Register("uClient_manualDrive_log", 0);
Register("uFH_errorMsg1_fb", 0);
Register("uFH_errorMsg2_fb", 0);
Register("uFH_errorMsg3_fb", 0);
Register("uFH_errorMsg_log", 0);
Register("DESIRED_HEADING", 0);
Register("DESIRED_SPEED", 0);
Register("DESIRED_DEPTH", 0);
Register("uMotion_desired_log", 0);
}
bool DataManagement::buildReport()
{
m_msgs << contentFromStream << endl;
return true;
}
double DataManagement::getTimeStamp()
{
struct timeval tv;
gettimeofday(&tv,NULL);
double stamp = double(tv.tv_sec*1000000 + tv.tv_usec) / 1000000;
return stamp;
}
void DataManagement::DoAuvDataLogBanner(std::ofstream &os)
{
os << "stamp" << ",";
os << "mode" << ",";
os << "refLon" << ",";
os << "refLat" << ",";
os << "refAlt" << ",";
os << "curLon" << ",";
os << "curLat" << ",";
os << "curAlt" << ",";
os << "north" << ",";
os << "east" << ",";
os << "depth" << ",";
os << "roll" << ",";
os << "pitch" << ",";
os << "yaw" << ",";
os << "insVX" << ",";
os << "insVY" << ",";
os << "insVZ" << ",";
os << "dvlVX" << ",";
os << "dvlVY" << ",";
os << "dvlVZ" << ",";
os << "height" << ",";
os << "thrust" << ",";
os << "light" << ",";
os << "load" << ",";
os << "dvl" << ",";
os << "iridium" << ",";
os << "batteryVol" << ",";
os << "batteryLev" << ",";
os << "batteryTemp" << std::endl;
}
void DataManagement::DoMissionHistoryBanner(std::ofstream &os)
{
os << "stamp" << ",";
os << "state" << ",";
os << "taskName" << ",";
os << "destName" << ",";
os << "errorCode" << std::endl;
}
void DataManagement::DoFaultHandleBanner(std::ofstream &os)
{
os << "stamp" << ",";
os << "level" << ",";
os << "type" << ",";
os << "id" << ",";
os << "first" << ",";
os << "source" << std::endl;
}
void DataManagement::DoMotionControlBanner(std::ofstream &os)
{
os << "stamp" << ",";
os << "desired_heading" << ",";
os << "desired_speed" << ",";
os << "desired_depth" << std::endl;
}
bool DataManagement::OpenFile(std::ofstream & of,const std::string & sName)
{
of.open(sName.c_str());
if(!of.is_open())
{
return false;
}
return true;
}
void DataManagement::GenerateFileName(std::string &fileDir, std::string &fileName)
{
time_t now = time(0);
tm *gmtm = localtime(&now);
int year = 1900 + gmtm->tm_year;
int monthTemp = gmtm->tm_mon+1;
std::string month;
if (monthTemp < 10)
{
month = "0" + std::to_string(monthTemp);
}
else
{
month = std::to_string(monthTemp);
}
int dayTemp = gmtm->tm_mday;
std::string day;
if (dayTemp < 10)
{
day = "0" + std::to_string(dayTemp);
}
else
{
day = std::to_string(dayTemp);
}
int hourTemp = gmtm->tm_hour;
std::string hour;
if (hourTemp < 10)
{
hour = "0" + std::to_string(hourTemp);
}
else
{
hour = std::to_string(hourTemp);
}
int minuteTemp = gmtm->tm_min;
std::string minute;
if (minuteTemp < 10)
{
minute = "0" + std::to_string(minuteTemp);
}
else
{
minute = std::to_string(minuteTemp);
}
int secondTemp = gmtm->tm_sec;
std::string second;
if (secondTemp < 10)
{
second = "0" + std::to_string(secondTemp);
}
else
{
second = std::to_string(secondTemp);
}
std::stringstream ss;
ss << year << "-" << month << "-" << day;
fileDir = ss.str();
ss.str("");
ss << hour << minute << second;
fileName = ss.str();
}

View File

@@ -0,0 +1,59 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: DataManagement.h */
/* DATE: */
/************************************************************/
#ifndef DataManagement_HEADER
#define DataManagement_HEADER
#include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include "MOOS/libMOOS/MOOSLib.h"
struct MotionControlInfo
{
double desiredHeading;
double desiredSpeed;
double desiredDepth;
};
class DataManagement : public AppCastingMOOSApp
//class DataManagement : public CMOOSApp
{
public:
DataManagement();
~DataManagement();
protected: // Standard MOOSApp functions to overload
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
bool DoAsyncLog(MOOSMSG_LIST & NewMail);
protected:
enum MissionStatus{FAULT=0, UNRUN=1, MANUAL=2 ,RUN=3, CONFIG=5};
void RegisterVariables();
bool buildReport();
bool OpenFile(std::ofstream & of,const std::string & sName);
void DoAuvDataLogBanner(std::ofstream &os);
void DoMissionHistoryBanner(std::ofstream &os);
void DoFaultHandleBanner(std::ofstream &os);
void DoMotionControlBanner(std::ofstream &os);
void GenerateFileName(std::string &fileDir, std::string &fileName);
double getTimeStamp();
int nDoublePrecision;
std::ofstream auvDataStream;
std::ofstream missionHistoryStream;
std::ofstream clientCommandStream;
std::ofstream faultLogStream;
std::ofstream motionControlStream;
std::map<std::string, int> logVarList;
std::string contentFromStream;
struct MotionControlInfo motionControlInfo;
};
#endif

View File

@@ -0,0 +1,115 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: DataManagement_Info.cpp */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#include <cstdlib>
#include <iostream>
#include "DataManagement_Info.h"
#include "ColorParse.h"
#include "ReleaseInfo.h"
using namespace std;
//----------------------------------------------------------------
// Procedure: showSynopsis
void showSynopsis()
{
blk("SYNOPSIS: ");
blk("------------------------------------ ");
blk(" The pDataManagement application is used for ");
blk(" ");
blk(" ");
blk(" ");
blk(" ");
}
//----------------------------------------------------------------
// Procedure: showHelpAndExit
void showHelpAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("Usage: pDataManagement file.moos [OPTIONS] ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("Options: ");
mag(" --alias","=<ProcessName> ");
blk(" Launch pDataManagement with the given process name ");
blk(" rather than pDataManagement. ");
mag(" --example, -e ");
blk(" Display example MOOS configuration block. ");
mag(" --help, -h ");
blk(" Display this help message. ");
mag(" --interface, -i ");
blk(" Display MOOS publications and subscriptions. ");
mag(" --version,-v ");
blk(" Display the release version of pDataManagement. ");
blk(" ");
blk("Note: If argv[2] does not otherwise match a known option, ");
blk(" then it will be interpreted as a run alias. This is ");
blk(" to support pAntler launching conventions. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showExampleConfigAndExit
void showExampleConfigAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pDataManagement Example MOOS Configuration ");
blu("=============================================================== ");
blk(" ");
blk("ProcessConfig = pDataManagement ");
blk("{ ");
blk(" AppTick = 4 ");
blk(" CommsTick = 4 ");
blk(" ");
blk("} ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showInterfaceAndExit
void showInterfaceAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pDataManagement INTERFACE ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("SUBSCRIPTIONS: ");
blk("------------------------------------ ");
blk(" NODE_MESSAGE = src_node=alpha,dest_node=bravo,var_name=FOO, ");
blk(" string_val=BAR ");
blk(" ");
blk("PUBLICATIONS: ");
blk("------------------------------------ ");
blk(" Publications are determined by the node message content. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showReleaseInfoAndExit
void showReleaseInfoAndExit()
{
showReleaseInfo("pDataManagement", "gpl");
exit(0);
}

View File

@@ -0,0 +1,18 @@
/****************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT Cambridge MA */
/* FILE: DataManagement_Info.h */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#ifndef DataManagement_INFO_HEADER
#define DataManagement_INFO_HEADER
void showSynopsis();
void showHelpAndExit();
void showExampleConfigAndExit();
void showInterfaceAndExit();
void showReleaseInfoAndExit();
#endif

View File

@@ -0,0 +1,58 @@
/************************************************************/
/* NAME: Xiaobin Zeng */
/* ORGN: MIT */
/* FILE: main.cpp */
/* DATE: */
/************************************************************/
#include <string>
#include "MBUtils.h"
#include "ColorParse.h"
#include "DataManagement.h"
#include "DataManagement_Info.h"
// #include <ros/ros.h>
// #include <rosbag/bag.h>
using namespace std;
int main(int argc, char *argv[])
{
string mission_file;
string run_command = argv[0];
for(int i=1; i<argc; i++) {
string argi = argv[i];
if((argi=="-v") || (argi=="--version") || (argi=="-version"))
showReleaseInfoAndExit();
else if((argi=="-e") || (argi=="--example") || (argi=="-example"))
showExampleConfigAndExit();
else if((argi == "-h") || (argi == "--help") || (argi=="-help"))
showHelpAndExit();
else if((argi == "-i") || (argi == "--interface"))
showInterfaceAndExit();
else if(strEnds(argi, ".moos") || strEnds(argi, ".moos++"))
mission_file = argv[i];
else if(strBegins(argi, "--alias="))
run_command = argi.substr(8);
else if(i==2)
run_command = argi;
}
if(mission_file == "")
showHelpAndExit();
cout << termColor("green");
cout << "pDataManagement launching as " << run_command << endl;
cout << termColor() << endl;
// ros::init(argc, argv, "log2rosbag");
// ros::NodeHandle nh;
DataManagement DataManagement;
DataManagement.Run(run_command.c_str(), mission_file.c_str());
return(0);
}

View File

@@ -0,0 +1,9 @@
//------------------------------------------------
// pDataManagement config block
ProcessConfig = pDataManagement
{
AppTick = 4
CommsTick = 4
}

View File

@@ -0,0 +1 @@
LastOpenedLoggingDirectory=./MOOSLog_24_10_2023_____11_46_34

View File

@@ -0,0 +1,21 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pTaskManger
# Author(s): zjk
#--------------------------------------------------------
# set(INCLUDE_IVP /home/zjk/Software/moos-ivp/include/ivp)
FILE(GLOB SRC *.cpp *.hpp)
ADD_EXECUTABLE(pEmulator ${SRC})
#需要把被依赖的库放到依赖库的后面
TARGET_LINK_LIBRARIES(pEmulator
${MOOS_LIBRARIES}
${MOOSGeodesy_LIBRARIES}
contacts
geometry
apputil
mbutil
m
pthread
)

416
src/pEmulator/Emulator.cpp Normal file
View File

@@ -0,0 +1,416 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-12 09:52:27
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-21 15:28:32
* @FilePath: /moos-ivp-pi/src/pEmulator/Emulator.cpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
// #define DEBUG
#include"Emulator.hpp"
#include <exception>
#include"ACTable.h"
bool _ListenCB(void * pParam)
{
Emulator* pMe = (Emulator* )pParam;
return pMe->receiveUdpDate();
}
bool _ListenBSC(void* pParam)
{
_150server* pMe = (_150server*)pParam;
return pMe->listenInfo();
}
bool _Connect(void* pParam)
{
Emulator* pMe = (Emulator* )pParam;
return pMe->_150Connect();
}
bool Emulator::OnNewMail(MOOSMSG_LIST &NewMail)
{
AppCastingMOOSApp::OnNewMail(NewMail);
MOOSMSG_LIST::iterator p;
for(p=NewMail.begin(); p!=NewMail.end(); p++)
{
CMOOSMsg &msg = *p;
string key = msg.m_sKey;
string sval = msg.m_sVal;
double dval = msg.m_dfVal;
double dfT;
msg.IsSkewed(m_curr_time, &dfT);
// if(key == "DESIRED_RUDDER")
// {
// sendBuf[0] = dval;
// remus100.rudder = dval;
// }
// else if(key == "DESIRED_ELEVATOR")
// {
// sendBuf[1] = dval;
// remus100.elevator = dval;
// }
// else if(key == "DESIRED_THRUST")
// {
// sendBuf[2] = dval;
// remus100.thrust = dval;
// }
// else
if(key == "DESIRED_DEPTH")
sendBuf[3] = dval;
else if(key == "DESIRED_HEADING")
sendBuf[4] = dval;
else if(key == "DESIRED_SPEED")
sendBuf[5] = dval;
// reportRunWarning("UnKown var:" + key);
}
return true;
}
bool Emulator::Iterate()
{
AppCastingMOOSApp::Iterate();
if(_150ServerThread.IsThreadRunning())
{ // 这里需要转换数据
if(p_150server_1._150cmd.helm_top_angle > 128)
sendBuf[0] = -(p_150server_1._150cmd.helm_top_angle - 128);
else
sendBuf[0] = p_150server_1._150cmd.helm_top_angle;
if(p_150server_1._150cmd.helm_right_angle > 128)
sendBuf[1] = -(p_150server_1._150cmd.helm_right_angle - 128);
else
sendBuf[1] = p_150server_1._150cmd.helm_right_angle;
sendBuf[2] = (uint8_t)p_150server_1._150cmd.thrust * 1525 / 100;
set150Info();
p_150server_1.postInfo();
isConnect = " 150 Server...";
}
else
isConnect = "No 150 Connect...";
udp->iSendMessageTo((void*)sendBuf, sendBufSize, matalb_port, matlab_host);
//postNodeRecordUpdate(prefix, record);
AppCastingMOOSApp::PostReport();
return true;
}
bool Emulator::OnConnectToServer()
{
registerVariables();
return true;
}
bool Emulator::OnStartUp()
{
AppCastingMOOSApp::OnStartUp();
//TODO: 添加初始状态设置
STRING_LIST sParams;
m_MissionReader.GetConfiguration(GetAppName(), sParams);
STRING_LIST::iterator p;
for(p=sParams.begin(); p!=sParams.end(); p++)
{
bool unhandled = false;
string orig = *p;
string line = *p;
string param = toupper(biteStringX(line, '='));
string value = line;
double dval = atof(value.c_str());
cout << param << endl;
if(param == "MATLAB_HOST")
{
matlab_host = value;
}
else if(param == "MATLAB_PORT")
{
matalb_port = (long int)dval;
}
else if(param == "LOCAL_PORT")
{
local_port = (long int)dval;
}
else if(param == "PREFIX")
{
setNonWhiteVarOnString(prefix, value);
}
else if(param == "START_X")
{
start_x = dval;
}
else if(param == "START_Y")
{
start_y = dval;
}
else if(param == "START_Z")
{
start_z = dval;
}
else if(param == "START_HEADING")
{
start_heading = dval;
}
else
unhandled = true;
if(unhandled)
reportUnhandledConfigWarning(orig);
}
//添加UDP 设置
//TODO添加try
try
{
udp = new XPCUdpSocket(local_port);
udp->vSetBroadcast(true);
udp->vBindSocket();
}
catch(const std::exception& e)
{
std::cerr << e.what() << '\n';
reportRunWarning("Local port Open Field");
}
//初始化数据
receiveBufSize = receiveDateSize*sizeof(double);
receiveBuf = new char[receiveBufSize];
sendBufSize = sendDataSize*sizeof(double);
sendBuf = new double[sendDataSize];
for(int i=0; i<sendDataSize; i++)
sendBuf[i] = 0;
for(int i=0; i<receiveBufSize; i++)
receiveBuf[i] = 0;
// sendBuf[0] = 0.1;
// sendBuf[1] = 0.1;
// sendBuf[2] = 1525;
record.setX(start_x);
record.setY(start_y);
record.setDepth(start_z);
record.setHeading(start_heading);
receiveThread.Initialise(_ListenCB,this);
receiveThread.Start();
_150ConnectThread.Initialise(_Connect, this);
_150ConnectThread.Start();
//启动150 server
//
//
return true;
}
bool Emulator::_150Connect()
{
cout << "Connect ... " << endl;
isConnect = "Connect...";
p_150server_1._150_startServer();
_150ServerThread.Initialise(_ListenBSC,&(this->p_150server_1));
_150ServerThread.Start();
_150ConnectThread.RequestQuit();
isConnect = "Connected and start server";
}
void Emulator::registerVariables()
{
AppCastingMOOSApp::RegisterVariables();
Register("DESIRED_RUDDER",0);
Register("DESIRED_THRUST",0);
Register("DESIRED_ELEVATOR",0);
Register("DESIRED_DEPTH");
Register("DESIRED_HEADING");
Register("DESIRED_SPEED");
}
bool Emulator::buildReport()
{
// for(int i=0; i<sendDataSize; i++)
// {
// m_msgs << sendBuf[i] << "!#";
// }
m_msgs << "MATLAB : " << matlab_host << " : " << matalb_port << endl;
m_msgs << "LOCAL : " << local_port << endl;
m_msgs << "_150 Connect: " << isConnect << endl;
m_msgs << "_150 Cmd Recive: " << p_150server_1._150_recive << endl;
m_msgs << "=============================================" << endl;
double *s = (double*)receiveBuf;
m_msgs << "DESIRED_RUDDER : " << sendBuf[0] << " (deg)" << endl;
m_msgs << "DESIRED_ELEVATOR : " << sendBuf[1] << " (deg)" << endl;
m_msgs << "DESIRED_THRUST : " << sendBuf[2] << " (rpm)" << endl;
m_msgs << "Pose : " << "[ " << doubleToStringX(s[6],1) << " , " << doubleToStringX(s[7],1) << " ]" << endl;
m_msgs << "Depth : " << doubleToStringX(s[8],1) << " (m)" << endl;
m_msgs << "u : " << doubleToStringX(s[0],2) << " (m/s)" << endl;
m_msgs << "v : " << doubleToStringX(s[1],2) << " (m/s)" << endl;
m_msgs << "w : " << doubleToStringX(s[2],2) << " (m/s)" << endl;
m_msgs << "p : " << doubleToStringX(s[3],1) << " (deg/s)" << endl;
m_msgs << "q : " << doubleToStringX(s[4],1) << " (deg/s)" << endl;
m_msgs << "r : " << doubleToStringX(s[5],1) << " (deg/s)" << endl;
m_msgs << "roll : " << doubleToStringX(s[9],1) << " (deg)" << endl;
m_msgs << "pitch : " << doubleToStringX(s[10],1) << " (deg)" << endl;
m_msgs << "yaw : " << doubleToStringX(s[11],1) << " (deg)" << endl;
m_msgs << "Lat : " << doubleToStringX(s[12],5) << " (du)" << endl;
m_msgs << "Lon : " << doubleToStringX(s[13],5) << " (du)" << endl;
m_msgs << "Alt : " << doubleToStringX(s[14],5) << " (m)" << endl;
return(true);
}
void Emulator::postNodeRecordUpdate(std::string, const NodeRecord& record)
{
double nav_x = record.getX();
double nav_y = record.getY();
Notify(prefix+"_X", nav_x, m_curr_time);
Notify(prefix+"_Y", nav_y, m_curr_time);
if(geoOk) {
double nav_lat = record.getLat();
double nav_lon = record.getLon();
Notify(prefix+"_LAT", nav_lat, m_curr_time);
Notify(prefix+"_LONG", nav_lon, m_curr_time);
}
double new_speed = record.getSpeed();
new_speed = snapToStep(new_speed, 0.01);
Notify(prefix+"_HEADING", record.getHeading(), m_curr_time);
Notify(prefix+"_SPEED", new_speed, m_curr_time);
Notify(prefix+"_DEPTH", record.getDepth(), m_curr_time);
// Added by HS 120124 to make it work ok with iHuxley
// Notify("SIMULATION_MODE","TRUE", m_curr_time);
Notify(prefix+"_Z", -record.getDepth(), m_curr_time);
Notify(prefix+"_PITCH", record.getPitch(), m_curr_time);
Notify(prefix+"_YAW", record.getYaw(), m_curr_time);
Notify("TRUE_X", nav_x, m_curr_time);
Notify("TRUE_Y", nav_y, m_curr_time);
double hog = angle360(record.getHeadingOG());
double sog = record.getSpeedOG();
Notify(prefix+"_HEADING_OVER_GROUND", hog, m_curr_time);
Notify(prefix+"_SPEED_OVER_GROUND", sog, m_curr_time);
if(record.isSetAltitude())
Notify(prefix+"_ALTITUDE", record.getAltitude(), m_curr_time);
}
bool Emulator::receiveUdpDate()
{
double u,v,w;
double U;
while(!receiveThread.IsQuitRequested())
{
int iRx = udp->iRecieveMessage(receiveBuf,receiveBufSize);
if(iRx)
{
for(int i=0; i<receiveDateSize; i++)
{
// MOOSTrace(doubleToString(*((double*)receiveBuf+i))+"\n");
double data = *((double*)receiveBuf+i);
switch (i)
{
case 0: //u
u = data;
remus100.u = u*100;
break;
case 1: //v
// record.set
v = data;
remus100.v = v*100;
break;
case 2: //w
// record
w = data;
remus100.w = w*100;
U = sqrt(u*u + v*v + w*w);
record.setSpeed(U);
break;
case 3: //p
remus100.p = data*100;
break;
case 4: //q
remus100.q = data*100;
break;
case 5: //r
remus100.r = data*100;
break;
case 6: //x
remus100.x = data*100;
record.setY(data);
break;
case 7: //y
remus100.y = data*100;
record.setX(data);
break;
case 8: //z
remus100.z = data*100;
record.setDepth(data);
break;
case 9: //phi
remus100.roll = data*100;
break;
case 10: //theta
remus100.pitch = data*100;
record.setPitch(data);
break;
case 11: //psi
remus100.yaw = data*100;
record.setHeading(data);
break;
case 12:
remus100.lat = data;
record.setLat(data);
break;
case 13:
remus100.lon = data;
record.setLon(data);
break;
case 14:
remus100.alt = data;
break;
default:
break;
}
}
}
}
}
void Emulator::set150Info()
{
p_150server_1.embeddedInfoSrc.header = 0xEBA1; //0:[0,1]
p_150server_1.embeddedInfoSrc.count = (uint16_t)m_iteration; //2:[2,3]
p_150server_1.embeddedInfoSrc.size = (uint8_t)51; //3:[4]
p_150server_1.embeddedInfoSrc.drive_mode = (uint8_t)0xFF; //4:[5]
p_150server_1.embeddedInfoSrc.height = (uint16_t)(150-remus100.z); //5:[6,7]
p_150server_1.embeddedInfoSrc.depth = (uint16_t)remus100.z; //6:[8,9]
p_150server_1.embeddedInfoSrc.yaw = (uint16_t)remus100.yaw; //7:[10,11]
p_150server_1.embeddedInfoSrc.pitch = (int16_t)remus100.pitch; //8:[12,13]
p_150server_1.embeddedInfoSrc.roll = (int16_t)remus100.roll; //9:[14,15]
p_150server_1.embeddedInfoSrc.ins_vx = (int16_t)remus100.u; //10:[16,17]
p_150server_1.embeddedInfoSrc.ins_vy = (int16_t)remus100.v; //11:[18,19]
p_150server_1.embeddedInfoSrc.ins_vz = (int16_t)remus100.w; //12:[20,21]
p_150server_1.embeddedInfoSrc.lon = (int32_t)(remus100.lon * 1000000); //13:[22,23,24,25]
p_150server_1.embeddedInfoSrc.lat = (int32_t)(remus100.lat * 1000000) ; //14:[26,27,28,29]
p_150server_1.embeddedInfoSrc.alt = (int16_t)(remus100.alt * 100);//15:[30,31]
p_150server_1.embeddedInfoSrc.dvl_vx = (int16_t)remus100.u; //16:[32,33]
p_150server_1.embeddedInfoSrc.dvl_vy = (int16_t)remus100.v; //17:[34,35]
p_150server_1.embeddedInfoSrc.dvl_vz = (int16_t)remus100.w; //18:[36,37]
p_150server_1.embeddedInfoSrc.rpm = (int16_t)remus100.thrust; //19:[38,39]
p_150server_1.embeddedInfoSrc.lightEnable = (uint8_t)0x01; //20:[40]
p_150server_1.embeddedInfoSrc.battery_voltage = (uint16_t)1024; //21:[41,42]
p_150server_1.embeddedInfoSrc.battery_level = 60; //22:[43]
p_150server_1.embeddedInfoSrc.battery_temp = 21.3 / 0.1; //23:[44,45]
p_150server_1.embeddedInfoSrc.fault_leakSensor = 0x80; //24:[46,47,48,49]
p_150server_1.embeddedInfoSrc.fault_battery = 0x2E; //25:[50]
p_150server_1.embeddedInfoSrc.fault_emergencyBattery = 0xAA; //26:[51]
p_150server_1.embeddedInfoSrc.fault_thrust = 0x76; //27:[52]
p_150server_1.embeddedInfoSrc.iridium = 0xFF; //28:[53]
p_150server_1.embeddedInfoSrc.throwing_load = 0xFF; //29:[54]
p_150server_1.embeddedInfoSrc.dvl_status = 0x00; //30:[55]
p_150server_1.embeddedInfoSrc.crc = 0XFF; //31:[56]
p_150server_1.embeddedInfoSrc.footer = 0XEE1A; //32:[57,58]
}

View File

@@ -0,0 +1,97 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-12 15:57:27
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-10 08:34:14
* @FilePath: /moos-ivp-pi/src/pEmulator/Emulator.hpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#ifndef __EMULATOR_H
#define __EMULATOR_H
#define UNIX
#include"MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include"MOOS/libMOOS/Comms/MulticastNode.h"
#include <iostream>
#include<vector>
#include "VarDataPair.h"
#include "MBUtils.h"
#include "AngleUtils.h"
#include <list>
#include"MOOS/libMOOS/Comms/XPCUdpSocket.h"
#include "NodeRecord.h"
#include "MOOS/libMOOS/Utils/MOOSThread.h"
#include "_150server.hpp"
using namespace std;
typedef struct uuv
{
double u;
double v;
double w;
double p;
double q;
double r;
double x;
double y;
double z;
double roll;
double pitch;
double yaw;
double thrust;
double rudder;
double elevator;
double lon;
double lat;
double alt;
};
class Emulator : public AppCastingMOOSApp
{
public:
Emulator(){};
~Emulator(){delete receiveBuf;delete sendBuf;};
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
void registerVariables();
bool buildReport();
void postNodeRecordUpdate(std::string, const NodeRecord&);
bool receiveUdpDate();
void set150Info();
bool _150Connect();
private:
long int local_port = 8080;
long int matalb_port = 8085;
string matlab_host = "127.0.0.1";
XPCUdpSocket* udp;
unsigned int receiveDateSize = 15;
unsigned int sendDataSize = 6;
unsigned int receiveBufSize;
unsigned int sendBufSize;
char *receiveBuf;
double *sendBuf;
NodeRecord record;
string prefix="NAV";
bool geoOk = false;
//UUV init state
double start_x = 0;
double start_y = 0;
double start_z = 0;
double start_heading = 0;
uuv remus100;
string isConnect = "";
//
CMOOSThread receiveThread;
CMOOSThread _150ServerThread;
CMOOSThread _150ConnectThread;
//150 Server
_150server p_150server_1;
};
#endif

View File

@@ -0,0 +1,206 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-11-07 14:59:47
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-08 09:19:46
* @FilePath: /moos-ivp-pi/src/pEmulator/_150server.cpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#include "_150server.hpp"
uint16_t _150server::serializeFields(AUVEmbedded &embeddedInfo, uint8_t* bfr)
{
memcpy(bfr, &(embeddedInfo.header), sizeof(embeddedInfo.header));
bfr += sizeof(embeddedInfo.header);
memcpy(bfr, &(embeddedInfo.count), sizeof(embeddedInfo.count));
bfr += sizeof(embeddedInfo.count);
memcpy(bfr, &(embeddedInfo.size), sizeof(embeddedInfo.size));
bfr += sizeof(embeddedInfo.size);
memcpy(bfr, &(embeddedInfo.drive_mode), sizeof(embeddedInfo.drive_mode));
bfr += sizeof(embeddedInfo.drive_mode);
memcpy(bfr, &(embeddedInfo.height), sizeof(embeddedInfo.height));
bfr += sizeof(embeddedInfo.height);
memcpy(bfr, &(embeddedInfo.depth), sizeof(embeddedInfo.depth));
bfr += sizeof(embeddedInfo.depth);
memcpy(bfr, &(embeddedInfo.yaw), sizeof(embeddedInfo.yaw));
bfr += sizeof(embeddedInfo.yaw);
memcpy(bfr, &(embeddedInfo.pitch), sizeof(embeddedInfo.pitch));
bfr += sizeof(embeddedInfo.pitch);
memcpy(bfr, &(embeddedInfo.roll), sizeof(embeddedInfo.roll));
bfr += sizeof(embeddedInfo.roll);
memcpy(bfr, &(embeddedInfo.ins_vx), sizeof(embeddedInfo.ins_vx));
bfr += sizeof(embeddedInfo.ins_vx);
memcpy(bfr, &(embeddedInfo.ins_vy), sizeof(embeddedInfo.ins_vy));
bfr += sizeof(embeddedInfo.ins_vy);
memcpy(bfr, &(embeddedInfo.ins_vz), sizeof(embeddedInfo.ins_vz));
bfr += sizeof(embeddedInfo.ins_vz);
memcpy(bfr, &(embeddedInfo.lon), sizeof(embeddedInfo.lon));
bfr += sizeof(embeddedInfo.lon);
memcpy(bfr, &(embeddedInfo.lat), sizeof(embeddedInfo.lat));
bfr += sizeof(embeddedInfo.lat);
memcpy(bfr, &(embeddedInfo.alt), sizeof(embeddedInfo.alt));
bfr += sizeof(embeddedInfo.alt);
memcpy(bfr, &(embeddedInfo.dvl_vx), sizeof(embeddedInfo.dvl_vx));
bfr += sizeof(embeddedInfo.dvl_vx);
memcpy(bfr, &(embeddedInfo.dvl_vy), sizeof(embeddedInfo.dvl_vy));
bfr += sizeof(embeddedInfo.dvl_vy);
memcpy(bfr, &(embeddedInfo.dvl_vz), sizeof(embeddedInfo.dvl_vz));
bfr += sizeof(embeddedInfo.dvl_vz);
memcpy(bfr, &(embeddedInfo.rpm), sizeof(embeddedInfo.rpm));
bfr += sizeof(embeddedInfo.rpm);
memcpy(bfr, &(embeddedInfo.lightEnable), sizeof(embeddedInfo.lightEnable));
bfr += sizeof(embeddedInfo.lightEnable);
memcpy(bfr, &(embeddedInfo.battery_voltage), sizeof(embeddedInfo.battery_voltage));
bfr += sizeof(embeddedInfo.battery_voltage);
memcpy(bfr, &(embeddedInfo.battery_level), sizeof(embeddedInfo.battery_level));
bfr += sizeof(embeddedInfo.battery_level);
memcpy(bfr, &(embeddedInfo.battery_temp), sizeof(embeddedInfo.battery_temp));
bfr += sizeof(embeddedInfo.battery_temp);
memcpy(bfr, &(embeddedInfo.fault_leakSensor), sizeof(embeddedInfo.fault_leakSensor));
bfr += sizeof(embeddedInfo.fault_leakSensor);
memcpy(bfr, &(embeddedInfo.fault_battery), sizeof(embeddedInfo.fault_battery));
bfr += sizeof(embeddedInfo.fault_battery);
memcpy(bfr, &(embeddedInfo.fault_emergencyBattery), sizeof(embeddedInfo.fault_emergencyBattery));
bfr += sizeof(embeddedInfo.fault_emergencyBattery);
memcpy(bfr, &(embeddedInfo.fault_thrust), sizeof(embeddedInfo.fault_thrust));
bfr += sizeof(embeddedInfo.fault_thrust);
memcpy(bfr, &(embeddedInfo.iridium), sizeof(embeddedInfo.iridium));
bfr += sizeof(embeddedInfo.iridium);
memcpy(bfr, &(embeddedInfo.throwing_load), sizeof(embeddedInfo.throwing_load));
bfr += sizeof(embeddedInfo.throwing_load);
memcpy(bfr, &(embeddedInfo.dvl_status), sizeof(embeddedInfo.dvl_status));
bfr += sizeof(embeddedInfo.dvl_status);
memcpy(bfr, &(embeddedInfo.crc), sizeof(embeddedInfo.crc));
bfr += sizeof(embeddedInfo.crc);
memcpy(bfr, &(embeddedInfo.footer), sizeof(embeddedInfo.footer));
bfr += sizeof(embeddedInfo.footer);
}
void _150server::postInfo()
{
bzero(embeddedBuffer, 0);
serializeFields(embeddedInfoSrc, embeddedBuffer);
write(cfd, embeddedBuffer, 59);
};
bool _150server::listenInfo()
{
while (1)
{
int lens = read(cfd, recvbuf, sizeof(recvbuf));
if(lens>0)
{
_150_recive++;
uint16_t* buf16;
printf("header: %u, %u\n", recvbuf[0], recvbuf[1]);
printf("count: %u\n", recvbuf[2], recvbuf[3]);
printf("size: %u\n", recvbuf[4]);
printf("drive_mode: %u\n", recvbuf[5]);
printf("thrust: %u\n", recvbuf[6]);
_150cmd.thrust = (double)recvbuf[6];
printf("yaw: %u, %u\n", recvbuf[7], recvbuf[8]);
memcpy(buf16, &recvbuf[7], 2*sizeof(recvbuf[7]));
_150cmd.yaw = *((double*)buf16);
printf("depth: %u, %u\n", recvbuf[9], recvbuf[10]);
memcpy(buf16, &recvbuf[9], 2*sizeof(recvbuf[9]));
_150cmd.depth = *((double*)buf16);
printf("helm_top_angle: %u\n", recvbuf[11]);
_150cmd.helm_top_angle = (double)recvbuf[11];
printf("helm_bottom_angle: %u\n", recvbuf[12]);
_150cmd.helm_bottom_angle = (double)recvbuf[12];
_150cmd.helm_left_angle = (double)recvbuf[13];
printf("helm_left_angle: %u\n", recvbuf[13]);
_150cmd.helm_right_angle = (double)recvbuf[14];
printf("helm_right_angle: %u\n", recvbuf[14]);
_150cmd.light_enable = (double)recvbuf[15];
printf("light_enable: %u\n", recvbuf[15]);
printf("dvl_enable: %u\n", recvbuf[16]);
_150cmd.dvl_enable = (double)recvbuf[16];
printf("throwing_load_enable: %u\n", recvbuf[17]);
_150cmd.throwing_load_enable = (double)recvbuf[16];
printf("crc: %u\n", recvbuf[18]);
_150cmd.crc = (double)recvbuf[18];
printf("footer: %u, %u\n", recvbuf[19], recvbuf[20]);
memcpy(buf16, &recvbuf[19], 2*sizeof(recvbuf[19]));
_150cmd.footer = *((double*)buf16);
}
}
return true;
}
void _150server::_150_startServer()
{
std::cout << "--------------------" << std::endl;
lfd = socket(AF_INET, SOCK_STREAM, 0);
if(lfd==-1)
{
perror("socket");
exit(-1);
}
//2.绑定
struct sockaddr_in saddr;
saddr.sin_family = PF_INET;
saddr.sin_addr.s_addr = INADDR_ANY; //0.0.0.0
saddr.sin_port = htons(8001);
int ret = bind(lfd, (struct sockaddr *)&saddr, sizeof(saddr));
if(ret == -1)
{
perror("bind");
exit(-1);
}
//3.监听
listen(lfd, 5);
if(ret==-1)
{
perror("listen");
exit(-1);
}
//4.接受客户端连接
struct sockaddr_in caddr;
socklen_t len = sizeof(caddr);
cfd = accept(lfd, (struct sockaddr *)&caddr, &len);
if(cfd==-1)
{
perror("accept");
exit(-1);
}
std::cout << "--------------------" << std::endl;
//输出客户端的信息
char cip[16];
inet_ntop(AF_INET, &caddr.sin_addr.s_addr, cip, sizeof(cip));
unsigned short cport = ntohs(caddr.sin_port);
printf("client ip is %s,port is %d\n", cip, cport);
}

View File

@@ -0,0 +1,96 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-11-07 14:59:36
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-07 17:12:30
* @FilePath: /moos-ivp-pi/src/pEmulator/_150server.hpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#ifndef __150SERVER_H
#define __150SERVER_H
#include <stdio.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <sstream>
#include <iostream>
struct AUVEmbedded
{
uint16_t header; //1:[0,1] hx
uint16_t count; //2:[2,3] hu
uint8_t size; //3:[4] u
uint8_t drive_mode; //4:[5] u
uint16_t height; //5:[6,7] hu
uint16_t depth; //6:[8,9] hu
uint16_t yaw; //7:[10,11] hu
int16_t pitch; //8:[12,13] hd
int16_t roll; //9:[14,15] hd
int16_t ins_vx; //10:[16,17] hd
int16_t ins_vy; //11:[18,19] hd
int16_t ins_vz; //12:[20,21] hd
int32_t lon; //13:[22,23,24,25] d
int32_t lat; //14:[26,27,28,29] d
int16_t alt; //15:[30,31] hd
int16_t dvl_vx; //16:[32,33] hd
int16_t dvl_vy; //17:[34,35] hd
int16_t dvl_vz; //18:[36,37] hd
int16_t rpm; //19:[38,39] hd
uint8_t lightEnable; //20:[40] u
uint16_t battery_voltage; //21:[41,42] hu
uint8_t battery_level; //22:[43] u
uint16_t battery_temp; //23:[44,45] hu
uint32_t fault_leakSensor; //24:[46,47,48,49] u
uint8_t fault_battery; //25:[50] u
uint8_t fault_emergencyBattery; //26:[51] u
uint8_t fault_thrust; //27:[52] u
uint8_t iridium; //28:[53] u
uint8_t throwing_load; //29:[54] u
uint8_t dvl_status; //30:[55] u
uint8_t crc; //31:[56] u
uint16_t footer; //32:[57,58] hu
};
struct AUVCmd
{
uint16_t header = 0xEBA2;
uint16_t count;
uint8_t size;
uint8_t mode = 0XFF;
uint8_t thrust;
uint16_t yaw;
uint16_t depth;
uint8_t helm_top_angle;
uint8_t helm_bottom_angle;
uint8_t helm_left_angle;
uint8_t helm_right_angle;
uint8_t light_enable;
uint8_t dvl_enable = 0XFF;
uint8_t throwing_load_enable = 0XFF;
uint8_t crc;
uint16_t footer = 0XEE2A;
};
class _150server
{
private:
/* data */
int lfd;
int cfd;
public:
_150server(/* args */){};
~_150server(){};
uint16_t serializeFields(AUVEmbedded &embeddedInfo, uint8_t* bfr);
bool listenInfo();
void postInfo();
void _150_startServer();
AUVEmbedded embeddedInfoSrc;
AUVCmd _150cmd;
unsigned char embeddedBuffer[59];
unsigned char recvbuf[65535] = {0};
unsigned int _150_recive = 0;
};
#endif

249
src/pEmulator/a.moos Normal file
View File

@@ -0,0 +1,249 @@
//-------------------------------------------------
// NAME: M. Benjamin, MIT CSAIL
// FILE: alpha.moos
//-------------------------------------------------
ServerHost = localhost
ServerPort = 9000
Community = alpha
MOOSTimeWarp = 1
// Forest Lake
LatOrigin = 43.825300
LongOrigin = -70.330400
// MIT Sailing Pavilion (use this one)
// LatOrigin = 42.358456
// LongOrigin = -71.087589
//------------------------------------------
// Antler configuration block
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
Run = MOOSDB @ NewConsole = false
Run = pMarineViewer @ NewConsole = false
Run = uProcessWatch @ NewConsole = false
Run = pNodeReporter @ NewConsole = false
Run = pEmulator @ NewConsole = true
//Run = pLogger @ NewConsole = false
Run = pMotionControler @ NewConsole = false
Run = pTaskManger @ NewConsole = false
Run = pHelmIvP @ NewConsole = false
}
ProcessConfig = pTaskManger
{
AppTick = 8
CommsTick = 8
planConfigPath = /home/zjk/Desktop/project/moos-ivp-extend/PlanConfigure.json
}
ProcessConfig = pEmulator
{
AppTick = 5
CommsTick = 5
matlab_host = 192.168.0.11
matlab_port = 8085
local_port = 8080
prefix = NAV
start_x = 10
start_y = 9
start_z = 1
start_heading = 30
}
ProcessConfig = pLogger
{
AppTick = 8
CommsTick = 8
AsyncLog = true
// For variables that are published in a bundle on their first post,
// explicitly declare their logging request
//Log = IVPHELM_LIFE_EVENT @ 0 NOSYNC
//Log = REPORT @ 0 NOSYNC
//Log = BHV_SETTINGS @ 0 NOSYNC
Log = OPREGION_RESET @ 0 NOSYNC
LogAuxSrc = true
WildCardLogging = true
WildCardOmitPattern = *_STATUS
WildCardOmitPattern = DB_VARSUMMARY
WildCardOmitPattern = DB_RWSUMMARY
WildCardExclusionLog = true
}
//------------------------------------------
// uProcessWatch config block
ProcessConfig = uProcessWatch
{
AppTick = 4
CommsTick = 4
watch_all = true
nowatch = uPokeDB*
nowatch = uQueryDB*
nowatch = uXMS*
nowatch = uMAC*
}
//------------------------------------------
// uSimMarineV22 config block
//------------------------------------------
// pHelmIvP config block
ProcessConfig = pHelmIvP
{
AppTick = 4
CommsTick = 4
behaviors = alpha.bhv
domain = course:0:359:360
domain = speed:0:10:101
domain = depth:0:100:101
park_on_allstop = false
//park_on_allstop = true
}
//------------------------------------------
// pMarinePID config block
ProcessConfig = pMotionControler
{
AppTick = 10
CommsTick = 10
verbose = true
depth_control = true
// SIM_INSTABILITY = 20
// Yaw PID controller
yaw_pid_kp = 10
yaw_pid_kd = 0.0
yaw_pid_ki = 0.01
yaw_pid_integral_limit = 10
// Speed PID controller
speed_pid_kp = 20.0
speed_pid_kd = 0.0
speed_pid_ki = 1
speed_pid_integral_limit = 100
maxpitch = 15
maxelevator = 30
pitch_pid_kp = 1.5
pitch_pid_kd = 0
pitch_pid_ki = 1.0
pitch_pid_integral_limit = 0
z_to_pitch_pid_kp = 0.12
z_to_pitch_pid_kd = 0
z_to_pitch_pid_ki = 0.004
z_to_pitch_pid_integral_limit = 0.05
//MAXIMUMS MAXRUDDER
maxrudder = 30
maxthrust = 1525
// A non-zero SPEED_FACTOR overrides use of SPEED_PID
// Will set DESIRED_THRUST = DESIRED_SPEED * SPEED_FACTOR
speed_factor = 0
}
//------------------------------------------
// pMarineViewer config block
ProcessConfig = pMarineViewer
{
AppTick = 4
CommsTick = 4
tiff_file = forrest19.tif
//tiff_file = MIT_SP.tif
vehicles_name_mode = names+depth //+shortmode
set_pan_x = -90
set_pan_y = -280
zoom = 0.65
vehicle_shape_scale = 1.5
hash_delta = 50
hash_shade = 0.22
hash_viewable = true
trails_point_size = 1
//op_vertex = x=-83, y=-47, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=-46.4, y=-129.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=94.6, y=-62.2, lwidth=1,lcolor=yellow,looped=true,group=moa
//op_vertex = x=58, y=20, lwidth=1,lcolor=yellow,looped=true,group=moa
// Appcast configuration
appcast_height = 75
appcast_width = 30
appcast_viewable = true
appcast_color_scheme = indigo
nodes_font_size = xlarge
procs_font_size = xlarge
appcast_font_size = large
// datum_viewable = true
// datum_size = 18
// gui_size = small
// left_context[survey-point] = DEPLOY=true
// left_context[survey-point] = MOOS_MANUAL_OVERRIDE=false
// left_context[survey-point] = RETURN=false
right_context[return] = DEPLOY=true
right_context[return] = MOOS_MANUAL_OVERRIDE=false
right_context[return] = RETURN=false
scope = RETURN
scope = WPT_STAT
scope = VIEW_SEGLIST
scope = VIEW_POINT
scope = VIEW_POLYGON
scope = MVIEWER_LCLICK
scope = MVIEWER_RCLICK
//button_one = START # START=true
//button_one = MOOS_MANUAL_OVERRIDE=false
button_one = START # uMission_action_cmd={"taskName":"east_waypt_survey","action":"start"}
button_two = STOP # uMission_action_cmd={"taskName":"east_waypt_survey","action":"stop"}
//button_two = MOOS_MANUAL_OVERRIDE=true
button_three = FaultClear # ClearFalut = true
button_four = SendSecurityZone # SendSaftRules = true
action = MENU_KEY=deploy # DEPLOY = true # RETURN = false
action+ = MENU_KEY=deploy # MOOS_MANUAL_OVERRIDE=false
action = RETURN=true
action = UPDATES_RETURN=speed=1.4
}
//------------------------------------------
// pNodeReporter config block
ProcessConfig = pNodeReporter
{
AppTick = 2
CommsTick = 2
//platform_type = kayak
//更改显示形状为uuv
platform_type = UUV
platform_color = red
platform_length = 4
}

181
src/pEmulator/alpha.bhv Normal file
View File

@@ -0,0 +1,181 @@
//-------- FILE: alpha.bhv -------------
initialize RUN = false
initialize TaskNum=t1
initialize SendTask=false
//--------------模式判断------------------------
set MODE = ACTIVE{
RUN=true
} INACTIVE
set MODE = T1{
MODE=ACTIVE
TaskNum = t1
}
//----------路径点任务----------------------------
Behavior = BHV_Waypoint
{
name = waypt_survey
pwt = 100 //优先权重
condition = MODE==T1
//endflag = START=false
endflag = END_WayPoint=true
configflag = CRUISE_SPD = $[SPEED]
//configflag = OSPOS = $[OSX],$[OSY]
activeflag = INFO=$[OWNSHIP]
activeflag = INFO=$[BHVNAME]
activeflag = INFO=$[BHVTYPE]
//cycleflag = CINFO=$[OSX],$[OSY]
wptflag = CurrentPointComplete=true
wptflag = PREV=$(PX),$(PY)
wptflag = NEXT=$(NX),$(NY)
wptflag = TEST=$(X),$(Y)
wptflag = OSPOS=$(OSX),$(OSY)
//wptflag_on_start = true
updates = WPT_UPDATE
//perpetual = true
templating = spawn
// speed_alt = 1.2
//use_alt_speed = true
lead = 8
lead_damper = 1
lead_to_start = false
speed = 1 // meters per second
capture_line = true
capture_radius = 5.0
slip_radius = 15.0
efficiency_measure = all
polygon = 60,-40
order = normal
//repeat = 3
visual_hints = nextpt_color=yellow
visual_hints = nextpt_vertex_size=8
visual_hints = nextpt_lcolor=gray70
visual_hints = vertex_color=dodger_blue, edge_color=white
visual_hints = vertex_size=5, edge_size=1
}
//--------------定深任务------------------
Behavior=BHV_ConstantDepth
{
name = const_depth
pwt = 100
//condition = DEPLOY = true
condition = MODE==T1
duration = no-time-limit
updates = DEPTH_UPDATE
depth = 0
}
//--------------定向任务--------------------
Behavior=BHV_ConstantHeading
{
name = const_heading
pwt = 100
//condition = START_TURN = true
//condition = DEPLOY = true
condition = MODE==T3
perpetual = true
activeflag = TURN = started
//endflag = TURN = done
//endflag = RETURN = true
//endflag = START_TURN = false
endflag = START=false
heading = 225
complete_thresh = 5
duration = no-time-limit
}
//--------------定速任务--------------------
Behavior=BHV_ConstantSpeed
{
name = const_speed
pwt = 1000
condition = MODE==T1
perpetual = true
updates = SPEED_UPDATE
//endflag = START=false
speed = 5
duration = no-time-limit
//peakwidth = 0.5
//basewidth = 0.5
}
//----------------安全模式-----------------------
//----------------计时器---------------------
Behavior = BHV_Timer
{
name = mtime
condition = MODE==T1
pwt = 100
templating = spawn
//duration_status = MSTATUS
//duration = 10
endflag = TIME_OUT=true
updates = TIMER_UPDATES
//perpetual = true
}
//-------------最大深度限制--------------------------
Behavior = BHV_MaxDepth
{
name = maxdepth
pwt = 200
condition = MODE==ACTIVE
updates = MAXDEEP_UPDATES
max_depth = 20
tolerance = 0
duration = no-time-limit
}
//--------------安全区域设置-----------------------
Behavior = BHV_OpRegion
{
// General Behavior Parameters
// ---------------------------
name = op_region // example
pwt = 300 // default
condition = MODE==TN
updates = OPREGION_UPDATES // example
// Parameters specific to this behavior
// ------------------------------------
max_time = 20 // default (seconds)
max_depth = 25 // default (meters)
min_altitude = 0 // default (meters)
reset_var = OPREGION_RESET // example
trigger_entry_time = 1 // default (seconds)
trigger_exit_time = 0.5 // default (seconds)
polygon = pts={-80,-00:-30,-175:150,-100:95,25}
breached_altitude_flag = TaskFault = AltitudeOut
breached_depth_flag = TaskFault = DepthOut
breached_poly_flag = TaskFault = RegionOut
breached_time_flag = TaskFault = TimeOut
visual_hints = vertex_color = brown // default
visual_hints = vertex_size = 3 // default
visual_hints = edge_color = aqua // default
visual_hints = edge_size = 1 // default
}

63
src/pEmulator/main.cpp Normal file
View File

@@ -0,0 +1,63 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-12 09:52:06
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-10-20 16:52:52
* @FilePath: /moos-ivp-extend/src/pEmulator/main.cpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#include<iostream>
using namespace std;
#include"MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
// #include "VarDataPair.h"
#include"Emulator.hpp"
#include <iostream>
#include<string>
#include "MBUtils.h"
#include "ColorParse.h"
// #include "MBUtils.h"
// #include "ColorParse.h"
int main(int argc, char *argv[])
{
string mission_file;
string run_command = argv[0];
for(int i=1; i<argc; i++) {
string argi = argv[i];
if((argi=="-v") || (argi=="--version") || (argi=="-version"))
// showReleaseInfoAndExit();
cout << " Version : 0.01" << endl;
else if((argi=="-e") || (argi=="--example") || (argi=="-example"))
// showExampleConfigAndExit();
cout << " example : NULL" << endl;
else if((argi=="-h") || (argi == "--help") || (argi=="-help"))
// showHelpAndExit();
cout << " Low leave Control for UUV " << endl;
else if((argi=="-i") || (argi == "--interface"))
// showInterfaceAndExit();
cout << " UUV Motion Control " << endl;
else if(strEnds(argi, ".moos") || strEnds(argi, ".moos++"))
mission_file = argv[i];
else if(strBegins(argi, "--alias="))
run_command = argi.substr(8);
else if(i == 2)
run_command = argi;
}
if(mission_file == "")
// showHelpAndExit();
cout << termColor("green");
cout << "Emulator launching as " << run_command << endl;
cout << termColor() << endl;
Emulator s;
s.Run(run_command.c_str(), mission_file.c_str(), argc, argv);
return(0);
return(0);
}

View File

@@ -0,0 +1,15 @@
ProcessConfig = pEmulator
{
AppTick = 5
CommsTick = 5
//matlab_host = 192.168.0.11
matlab_host = 10.25.0.206
matlab_port = 8085
local_port = 8080
prefix = NAV
start_x = 0
start_y = 0
start_z = 0
start_heading = 30
}

View File

@@ -0,0 +1,32 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pFaultHandle
# Author(s): wade
#--------------------------------------------------------
SET(SRC
FaultHandle.cpp
FaultHandle_Info.cpp
main.cpp
FaultHandle.h
)
# FIND_LIBRARY(/usr/local/lib)
# FIND_PATH(/usr/local/include)
include_directories(/usr/local/include/jsoncpp/)
link_directories(/usr/local/lib/)
ADD_EXECUTABLE(pFaultHandle ${SRC})
TARGET_LINK_LIBRARIES(pFaultHandle
${MOOS_LIBRARIES}
${CMAKE_DL_LIBS}
${SYSTEM_LIBS}
mbutil
pthread
jsoncpp
)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,211 @@
/************************************************************/
/* NAME: wade */
/* ORGN: MIT */
/* FILE: FaultHandle.h */
/* DATE: */
/************************************************************/
#ifndef FaultHandle_HEADER
#define FaultHandle_HEADER
#include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include "MOOS/libMOOS/MOOSLib.h"
//#include "moos.h"
#include <json/json.h>
#include <string>
#include <vector>
#include <map>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <sstream>
//class FaultHandle : public CMOOSApp
class FaultHandle : public AppCastingMOOSApp
{
public:
FaultHandle();
~FaultHandle();
protected: // Standard MOOSApp functions to overload
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
bool buildReport();
void RegisterVariables();
protected:
void handleMailNewDBClients();
void handleMailStatusUpdate(std::string);
bool handleConfigWatchList(std::string);
bool handleConfigWatchItem(std::string);
bool handleConfigExcludeList(std::string);
bool handleConfigExcludeItem(std::string);
protected:
bool addToWatchList(std::string);
void checkForIndividualUpdates();
void postFullSummary();
bool isAlive(std::string);
void procNotedHere(std::string);
void procNotedGone(std::string);
void procNotedExcused(std::string);
void handlePostMapping(std::string);
std::string postVar(std::string);
void populateAntlerList();
bool processIncluded(const std::string& procname);
bool processExcluded(const std::string& procname);
protected:
std::string convertSecondsToString(double);
void errorMsgInit();
void MoosAppStatusMonitor();
void MoosAppOverloadMonitor();
void MissionFaultMonitor();
void MotionControlMonitor();
void DeviceLeakageMonitor();
void BatteryStatusMonitor();
void EmergencyBatteryMonitor();
void ThrustStatusMonitor();
void CPUTempMonitor();
void FaultReset();
bool MoosAppMissing();
bool MoosAppOverload();
protected: // State Variables
bool m_proc_watch_summary_changed;
double m_last_posting_time;
// Clients and Summary stored across iterations
std::string m_db_clients;
std::string m_proc_watch_summary;
std::vector<std::string> m_watch_list;
std::vector<std::string> m_excused_list;
// Mapping from proc name to data
std::map<std::string, bool> m_map_alive;
std::map<std::string, bool> m_map_alive_prev;
std::map<std::string, unsigned int> m_map_noted_gone;
std::map<std::string, unsigned int> m_map_noted_here;
std::map<std::string, double> m_map_now_cpuload;
std::map<std::string, double> m_map_max_cpuload;
std::set<std::string> m_set_db_clients;
std::set<std::string> m_set_watch_clients;
std::set<std::string> m_set_antler_clients;
protected: // Configurations Variables
bool m_watch_all_db;
bool m_watch_all_antler;
double m_allow_retractions;
double m_min_wait;
double m_noted_gone_wait;
// Include List
std::vector<std::string> m_include_list;
std::vector<bool> m_include_list_prefix;
// Exclude List
std::vector<std::string> m_exclude_list;
std::vector<bool> m_exclude_list_prefix;
// A dedicated MOOS var for posting when a proc chgs status
std::map<std::string, std::string> m_map_proc_post;
// A map for changing the MOOS variable posted.
std::map<std::string, std::string> m_map_chgpost;
protected:
int m_Mission_fault_fb;
int m_Motion_fault_fb;
double m_CPU_temperature;
bool m_resetMsg_fb;
uint32_t m_faultBattery;
uint32_t m_faultEmergencyBattery;
uint32_t m_faultLeakSensor;
uint32_t m_faultThrust;
uint32_t m_batteryLevel;
Json::Value Device_monitor;
Json::Value MoosApp_cpuLoad;
Json::Value MoosAppStatus;
Json::Value uFH_ErrorMsg_fb;
Json::Value uFH_errorMsg1_fb;
Json::Value uFH_errorMsg2_fb;
Json::Value uFH_errorMsg3_fb;
Json::Value msg3_faultID_array;
Json::Value msg2_PSfaultID_array;
Json::Value msg2_emergencyPS_array;
Json::Value msg2_thrust_Status_array;
Json::Value msg1_faultID_array;
//--------------------------------------test------------------------------
//std::string ODO_StatusStr;
std::string BSC_StatusStr;
std::string DM_StatusStr;
std::string MC_StatusStr;
std::string SSC_StatusStr;
std::string TM_StatusStr;
std::string pOdometryCPUload;
std::string BSC_CPUloadStr;
std::string DM_CPUloadStr;
std::string MC_CPUloadStr;
std::string SSC_CPUloadStr;
std::string TM_CPUloadStr;
//double ABC;
double BSC_cpuload;
double DM_cpuload;
double MC_cpuload;
double SSC_cpuload;
double TM_cpuload;
//--------------------------------------test------------------------------
protected:
//Contingency variable
// bool uSensor_leakage_fb;
// bool uMission_deepOut_fb;
// bool uMission_timeOut_fb;
// bool uDrive_batteryLow_fb;
// double uSoftWare_appMiss_fb; //AppID
//------------------------------------------------
//subscribe variables
private: // Configuration variables
private: // State variables
};
#endif

View File

@@ -0,0 +1,115 @@
/****************************************************************/
/* NAME: wade */
/* ORGN: MIT Cambridge MA */
/* FILE: FaultHandle_Info.cpp */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#include <cstdlib>
#include <iostream>
#include "FaultHandle_Info.h"
#include "ColorParse.h"
#include "ReleaseInfo.h"
using namespace std;
//----------------------------------------------------------------
// Procedure: showSynopsis
void showSynopsis()
{
blk("SYNOPSIS: ");
blk("------------------------------------ ");
blk(" The pFaultHandle application is used for ");
blk(" ");
blk(" ");
blk(" ");
blk(" ");
}
//----------------------------------------------------------------
// Procedure: showHelpAndExit
void showHelpAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("Usage: pFaultHandle file.moos [OPTIONS] ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("Options: ");
mag(" --alias","=<ProcessName> ");
blk(" Launch pFaultHandle with the given process name ");
blk(" rather than pFaultHandle. ");
mag(" --example, -e ");
blk(" Display example MOOS configuration block. ");
mag(" --help, -h ");
blk(" Display this help message. ");
mag(" --interface, -i ");
blk(" Display MOOS publications and subscriptions. ");
mag(" --version,-v ");
blk(" Display the release version of pFaultHandle. ");
blk(" ");
blk("Note: If argv[2] does not otherwise match a known option, ");
blk(" then it will be interpreted as a run alias. This is ");
blk(" to support pAntler launching conventions. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showExampleConfigAndExit
void showExampleConfigAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pFaultHandle Example MOOS Configuration ");
blu("=============================================================== ");
blk(" ");
blk("ProcessConfig = pFaultHandle ");
blk("{ ");
blk(" AppTick = 4 ");
blk(" CommsTick = 4 ");
blk(" ");
blk("} ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showInterfaceAndExit
void showInterfaceAndExit()
{
blk(" ");
blu("=============================================================== ");
blu("pFaultHandle INTERFACE ");
blu("=============================================================== ");
blk(" ");
showSynopsis();
blk(" ");
blk("SUBSCRIPTIONS: ");
blk("------------------------------------ ");
blk(" NODE_MESSAGE = src_node=alpha,dest_node=bravo,var_name=FOO, ");
blk(" string_val=BAR ");
blk(" ");
blk("PUBLICATIONS: ");
blk("------------------------------------ ");
blk(" Publications are determined by the node message content. ");
blk(" ");
exit(0);
}
//----------------------------------------------------------------
// Procedure: showReleaseInfoAndExit
void showReleaseInfoAndExit()
{
showReleaseInfo("pFaultHandle", "gpl");
exit(0);
}

View File

@@ -0,0 +1,18 @@
/****************************************************************/
/* NAME: wade */
/* ORGN: MIT Cambridge MA */
/* FILE: FaultHandle_Info.h */
/* DATE: Dec 29th 1963 */
/****************************************************************/
#ifndef FaultHandle_INFO_HEADER
#define FaultHandle_INFO_HEADER
void showSynopsis();
void showHelpAndExit();
void showExampleConfigAndExit();
void showInterfaceAndExit();
void showReleaseInfoAndExit();
#endif

52
src/pFaultHandle/main.cpp Normal file
View File

@@ -0,0 +1,52 @@
/************************************************************/
/* NAME: wade */
/* ORGN: MIT */
/* FILE: main.cpp */
/* DATE: */
/************************************************************/
#include <string>
#include "MBUtils.h"
#include "ColorParse.h"
#include "FaultHandle.h"
#include "FaultHandle_Info.h"
using namespace std;
int main(int argc, char *argv[])
{
string mission_file;
string run_command = argv[0];
for(int i=1; i<argc; i++) {
string argi = argv[i];
if((argi=="-v") || (argi=="--version") || (argi=="-version"))
showReleaseInfoAndExit();
else if((argi=="-e") || (argi=="--example") || (argi=="-example"))
showExampleConfigAndExit();
else if((argi == "-h") || (argi == "--help") || (argi=="-help"))
showHelpAndExit();
else if((argi == "-i") || (argi == "--interface"))
showInterfaceAndExit();
else if(strEnds(argi, ".moos") || strEnds(argi, ".moos++"))
mission_file = argv[i];
else if(strBegins(argi, "--alias="))
run_command = argi.substr(8);
else if(i==2)
run_command = argi;
}
if(mission_file == "")
showHelpAndExit();
cout << termColor("green");
cout << "pFaultHandle launching as " << run_command << endl;
cout << termColor() << endl;
FaultHandle FaultHandle;
FaultHandle.Run(run_command.c_str(), mission_file.c_str());
return(0);
}

View File

@@ -0,0 +1,9 @@
//------------------------------------------------
// pFaultHandle config block
ProcessConfig = pFaultHandle
{
AppTick = 4
CommsTick = 4
}

View File

@@ -0,0 +1,22 @@
#--------------------------------------------------------
# The CMakeLists.txt for: pTaskManger
# Author(s): zjk
#--------------------------------------------------------
FILE(GLOB SRC *.cpp *.hpp)
include_directories(/usr/include/jsoncpp/)
link_directories(/usr/local/lib/)
ADD_EXECUTABLE(pMotionControler ${SRC})
#需要把被依赖的库放到依赖库的后面
TARGET_LINK_LIBRARIES(pMotionControler
${MOOS_LIBRARIES}
geometry
mbutil
m
pthread
jsoncpp
)

View File

@@ -0,0 +1,43 @@
{
"speed" :
{
"Kp" : 10.0,
"Ki" : 5.0,
"Kd" : 0.0,
"LimitDelta" : 50,
"MaxOut" : 100,
"MinOut" : 0
},
"heading" :
{
"Kp" : 0.8,
"Ki" : 0.05,
"Kd" : 2.2,
"LimitDelta" : 5,
"MaxOut" : 30,
"MinOut" : -30
},
"depth" :
{
"Kp" : 10.0,
"Ki" : 0.3,
"Kd" : 2.0,
"LimitDelta" : 5,
"MaxOut" : 10,
"MinOut" : -10
},
"pitch" :
{
"Kp" : 0.6,
"Ki" : 0.03,
"Kd" : 1.5,
"LimitDelta" : 5,
"MaxOut" : 30,
"MinOut" : -30
},
"const_thrust" : 0,
"dead_zone" : 10,
"speedCol" : true,
"depthCol" : true,
"HeadingCol" : true
}

View File

@@ -0,0 +1,424 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-16 14:04:53
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-02 15:17:38
* @FilePath: /moos-ivp-pi/src/pMotionControler/Controler.cpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#include"Controler.hpp"
Controler::Controler()
{
// Error_capacity = 10;
initVariable();
}
void Controler::initVariable()
{
ClearValTim(desired_speed);
ClearValTim(desired_heading);
ClearValTim(desired_depth);
ClearValTim(desired_pitch);
ClearValTim(current_speed);
ClearValTim(current_heading);
ClearValTim(current_pitch);
ClearValTim(current_depth);
current_time = 0;
start_time = 0;
ClearValTim(desired_thrust);
ClearValTim(desired_rudder);
ClearValTim(desired_elevator);
iterations = 0;
start_time = 0.0;
tardy_helm_thresh = 2.0;
tardy_nav_thresh = 2.0;
// current_error = 0;
// last_error = 0;
// Error.clear();
}
bool Controler::setDesSpeed(double spd, double tim)
{
desired_speed.value = spd;
desired_speed.time = tim;
return true;
}
bool Controler::setDesDepth(double dph, double tim)
{
desired_depth.value = dph;
desired_depth.time = tim;
return true;
}
bool Controler::setDesPitch(double pth, double tim)
{
desired_pitch.value = pth;
desired_pitch.time = tim;
return true;
}
bool Controler::setDesHeading(double hdg, double tim)
{
if(is_rad)
hdg = radToDegrees(hdg);
desired_heading.value = angle180(hdg);
desired_heading.time = tim;
return true;
}
bool Controler::setCurSpeed(double spd, double tim)
{
current_speed.value = spd;
current_speed.time = tim;
return true;
}
bool Controler::setCurDepth(double dph, double tim)
{
current_depth.value = dph;
current_depth.time = tim;
return true;
}
bool Controler::setCurPitch(double pth, double tim)
{
current_pitch.value = pth;
current_pitch.time = tim;
return true;
}
bool Controler::setCurHeading(double hdg, double tim)
{
current_heading.value = hdg;
current_heading.time = tim;
return true;
}
bool Controler::setDesiredValues()
{
iterations++;
desired_thrust.value = 0;
desired_rudder.value = 0;
desired_elevator.value = 0;
//=============================================================
// Part 1: Ensure all nav and helm messages have been received
// for first time. If not, we simply wait, without declaring an
// override. After all messages have been received at least
// once, staleness is checked below.
//=============================================================
runMsg.push_back("desired_heading-time:" + doubleToString(desired_heading.time));
runMsg.push_back("desired_speed-time:" + doubleToString(desired_speed.time));
runMsg.push_back("current_heading-time:" + doubleToString(current_heading.time));
runMsg.push_back("current_speed-time:" + doubleToString(current_speed.time));
runMsg.push_back("desired_depth-time:" + doubleToString(desired_depth.time));
runMsg.push_back("current_depth-time:" + doubleToString(current_depth.time));
runMsg.push_back("current_pitch-time:" + doubleToString(current_pitch.time));
// runMsg.push_back("current_depth-time:" + doubleToString(current_depth.time));
if(has_speedCtrl)
{
if((desired_heading.time == 0) || (desired_speed.time == 0))
return true;
}
if(has_headCtrl)
{
if((current_heading.time == 0) || (current_speed.time == 0))
return true;
}
if(has_depthCtrl)
{
if(desired_depth.time == 0)
return true;
if((current_depth.time == 0) || (current_pitch.time == 0))
return true;
}
//=============================================================
// Part 2: Critical info staleness (if not in simulation mode)
//=============================================================
//TODO: 验证信息过时操作
if(cheakStalensee)
{
bool is_stale = checkForStaleness();
if(is_stale)
{
has_override = true;
return false;
}
}
//=============================================================
// Part 3: Set the actuator values. Note: If desired thrust is
// zero others desired values will automatically be zero too.
//=============================================================
// m_desired_thrust = setDesiredThrust();
// if(m_desired_thrust > 0)
// m_desired_rudder = setDesiredRudder();
// if(m_desired_thrust > 0 && m_depth_control)
// m_desired_elevator = setDesiredElevator();
return true;
}
//TODO 添加操控权判断
bool Controler::overrived(string sval)
{
if(tolower(sval) == "true")
{
if(has_override == false)
addPosting("HAS_CONTROL", "false");
has_override = true;
}
else if(tolower(sval) == "false")
{
// Upon lifting an override, the timestamps are reset. New values
// for all will need to be received before desired_* outputs will
// be produced. If we do not reset, it's possible we may
// interpret older pubs as being stale but they may have been
// paused also during an override.
if(has_override == true)
{
desired_speed.time = 0;
desired_heading.time = 0;
desired_depth.time = 0;
desired_pitch.time = 0;
current_speed.time = 0;
current_heading.time = 0;
current_pitch.time = 0;
current_depth.time = 0;
}
has_override = false;
addPosting("HAS_CONTROL", "true");
}
return true;
}
bool Controler::checkForStaleness()
{
bool is_stale = false;
// =========================================================
// Part 1: Check for Helm staleness
// =========================================================
double hdg_delta = (current_time - desired_heading.time);
if(hdg_delta > tardy_helm_thresh) {
string staleness = doubleToStringX(hdg_delta,3);
addPosting("PID_STALE", "Stale DesHdg:" + staleness);
is_stale = true;
}
double spd_delta = (current_time - desired_speed.time);
if(spd_delta > tardy_helm_thresh) {
string staleness = doubleToStringX(spd_delta,3);
addPosting("PID_STALE", "Stale DesSpd:" + staleness);
is_stale = true;
}
// =========================================================
// Part 2B: Check for Nav staleness
// =========================================================
double nav_hdg_delta = (current_time - current_heading.time);
if(nav_hdg_delta > tardy_nav_thresh) {
string staleness = doubleToStringX(nav_hdg_delta,3);
addPosting("PID_STALE", "Stale NavHdg:" + staleness);
is_stale = true;
}
double nav_spd_delta = (current_time - current_speed.time);
if(nav_spd_delta > tardy_nav_thresh) {
string staleness = doubleToStringX(nav_spd_delta,3);
addPosting("PID_STALE", "Stale NavSpd:" + staleness);
is_stale = true;
}
// =========================================================
// Part 2C: If depth control, check for Helm Depth staleness
// =========================================================
if(has_depthCtrl) {
double dep_delta = (current_time - desired_depth.time);
if(dep_delta > tardy_helm_thresh) {
string staleness = doubleToStringX(dep_delta,3);
addPosting("PID_STALE", "Stale DesDepth:" + staleness);
is_stale = true;
}
}
// =========================================================
// Part 2D: If depth control, check for Nav Depth staleness
// =========================================================
if(has_depthCtrl) {
double nav_dep_delta = (current_time - current_depth.time);
if(nav_dep_delta > tardy_nav_thresh) {
string staleness = doubleToStringX(nav_dep_delta,3);
addPosting("PID_STALE", "Stale NavDep:" + staleness);
is_stale = true;
}
double nav_pit_delta = (current_time - current_pitch.time);
if(nav_pit_delta > tardy_nav_thresh) {
string staleness = doubleToStringX(nav_pit_delta,3);
addPosting("PID_STALE", "Stale NavPitch:" + staleness);
is_stale = true;
}
}
return(is_stale);
}
// bool Controler::setLimit(double max_thrush, double min_thrush, double max_rudder, double min_rubber, double max_elevator, double min_elevator)
// {
// limit_thrust[0] = min_thrush;
// limit_thrust[1] = max_thrush;
// limit_rudder[0] = min_rubber;
// limit_rudder[1] = max_rudder;
// limit_elevator[0] = min_elevator;
// limit_elevator[1] = max_elevator;
// }
bool Controler::Limit(double &a, double max, double min)
{
a = (a < min) ? min : a;
a = (a > max) ? max : a;
return true;
}
bool Controler::setCtrl(bool speed, bool heading, bool depth)
{
has_speedCtrl = speed;
has_headCtrl = heading;
has_depthCtrl = depth;
return true;
}
void Controler::addPosting(std::string var, std::string sval)
{
VarDataPair pair(var, sval);
postings.push_back(pair);
}
void Controler::addPosting(std::string var, double val)
{
VarDataPair pair(var, val);
postings.push_back(pair);
}
double Controler::getFrequency() const
{
double elapsed = current_time - start_time;
double frequency = 0;
if(elapsed > 0)
frequency = ((double)(iterations)) / elapsed;
return(frequency);
}
bool Controler::ClearValTim(vlaTim &a)
{
if(&a == NULL)
return false;
else
{
a.value = 0;
a.time = 0;
}
}
//TODO: 控制器参数配置函数
list<std::string> Controler::setConfigParams(std::list<std::string>)
{
list<string> unhandled_params;
list<string>::iterator p;
// for(p=param_lines.begin(); p!=param_lines.end(); p++) {
// string orig = *p;
// string line = tolower(orig);
// string param = biteStringX(line, '=');
// if(param == "speed_factor")
// m_config_params.push_front(orig);
// else if(param == "simulation")
// m_config_params.push_front(orig);
// else if(param == "sim_instability")
// m_config_params.push_front(orig);
// else if(param == "tardy_helm_threshold")
// m_config_params.push_front(orig);
// else if(param == "tardy_nav_threshold")
// m_config_params.push_front(orig);
// else if(param == "yaw_pid_kp")
// m_config_params.push_front(orig);
// else if(param == "yaw_pid_kd")
// m_config_params.push_front(orig);
// else if(param == "yaw_pid_ki")
// m_config_params.push_front(orig);
// else if(param == "yaw_pid_integral_limit")
// m_config_params.push_front(orig);
// else if(param == "yaw_pid_ki_limit")
// m_config_params.push_front(orig);
// else if(param == "maxrudder")
// m_config_params.push_front(orig);
// else if(param == "heading_debug")
// m_config_params.push_front(orig);
// else if(param == "speed_pid_kp")
// m_config_params.push_front(orig);
// else if(param == "speed_pid_kd")
// m_config_params.push_front(orig);
// else if(param == "speed_pid_ki")
// m_config_params.push_front(orig);
// else if(param == "speed_pid_integral_limit")
// m_config_params.push_front(orig);
// else if(param == "maxthrust")
// m_config_params.push_front(orig);
// else if(param == "speed_debug")
// m_config_params.push_front(orig);
// else if(param == "depth_control")
// m_config_params.push_front(orig);
// else if(param == "z_to_pitch_pid_kp")
// m_config_params.push_front(orig);
// else if(param == "z_to_pitch_pid_kd")
// m_config_params.push_front(orig);
// else if(param == "z_to_pitch_pid_ki")
// m_config_params.push_front(orig);
// else if(param == "z_to_pitch_pid_integral_limit")
// m_config_params.push_front(orig);
// else if(param == "maxpitch")
// m_config_params.push_front(orig);
// else if(param == "depth_debug")
// m_config_params.push_front(orig);
// else if(param == "pitch_pid_kp")
// m_config_params.push_front(orig);
// else if(param == "pitch_pid_kd")
// m_config_params.push_front(orig);
// else if(param == "pitch_pid_ki")
// m_config_params.push_front(orig);
// else if(param == "pitch_pid_integral_limit")
// m_config_params.push_front(orig);
// else if(param == "maxelevator")
// m_config_params.push_front(orig);
// else
// unhandled_params.push_front(orig);
// }
return(unhandled_params);
}
Json::Value Controler::getConfig(string path)
{
ifstream ifs;
ifs.open(path, ios::in);
Json::Reader taskConfigureReader;
Json::Value inputJsonValue;
taskConfigureReader.parse(ifs, inputJsonValue);
ifs.close();
return inputJsonValue;
}
void Controler::setCheakStalensee(string s)
{
if(s == "true")
cheakStalensee = true;
else
cheakStalensee = false;
}

View File

@@ -0,0 +1,155 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-16 14:05:16
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-02 14:31:16
* @FilePath: /moos-ivp-pi/src/pMotionControler/Controler.hpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#ifndef __COBTROLLER_H
#define __CONTROLLER_H
#include<iostream>
#include<vector>
#include "VarDataPair.h"
#include "MBUtils.h"
#include "AngleUtils.h"
#include <list>
#include "json/json.h"
#include <fstream>
#include <map>
// #include "VarDataPair.h"
using namespace std;
typedef struct
{
double value;
double time;
} vlaTim;
class Controler
{
public:
Controler();
~Controler(){};
virtual int step(){return 0;}
virtual bool setConfigParams(){return false;}
virtual bool overrived(string sval);
virtual bool handleYawSettings(){return false;}
virtual bool handleSpeedSettings(){return false;};
virtual bool handleDepthSettings(){return false;};
virtual bool hasConfigSettings() const{return false;};
// bool setError(double err);
bool setDesSpeed(double spd, double tim);
bool setDesDepth(double dph, double tim);
bool setDesPitch(double pth, double tim);
bool setDesHeading(double hdg, double tim);
bool setCurSpeed(double spd, double tim);
bool setCurDepth(double dph, double tim);
bool setCurPitch(double pth, double tim);
bool setCurHeading(double hdg, double tim);
// bool setCurTime(double tim){current_time = tim;}
void updateTime(double tim){current_time = tim;}
double getCurTime(){return current_time;}
void setStartTime(double tim){start_time = tim;}
void setOverride(bool v){has_override = v;}
void setTardyHelm(double t){ tardy_helm_thresh = t;}
void setTardyNav(double t){ tardy_nav_thresh = t;}
void setCheakStalensee(string s);
void setConstThrust(double v){const_thrust = v;}
void setDeadZone(double v){dead_zone=v;}
void setDepthControl(bool v){has_depthCtrl=v;}
void setSpeedControl(bool v){has_speedCtrl=v;}
void setHeadingControl(bool v){has_headCtrl=v;}
bool setDesiredValues();
// bool setLimit(double max_thrush, double min_thrush, double max_rudder, double min_rubber, double max_elevator, double min_elevator);
bool setCtrl(bool speed, bool heading, bool depth);
bool Limit(double &a, double max, double min);
bool checkForStaleness();
void addPosting(std::string var, std::string sval);
void addPosting(std::string var, double val);
vector<VarDataPair> getPostings() {return(postings);}
void clearPostings() {postings.clear();}
bool ClearValTim(vlaTim &a);
list<std::string> setConfigParams(std::list<std::string>); //使用MOOS风格配置参数函数
Json::Value getConfig(string path);
double getFrequency() const;
bool hasControl(){return(!has_override);}
bool hasSpdCtrl(){return has_speedCtrl;}
bool hasDphCtrl(){return has_depthCtrl;}
bool hasHdgCtrl(){return has_headCtrl;}
double getDesiredRudder() const {return(desired_rudder.value);}
double getDesiredThrust() const {return(desired_thrust.value);}
double getDesiredElevator() const {return(desired_elevator.value);}
// bool setErrorCap(int c){Error_capacity = c;}
inline void initVariable();
list<string> getConfigParams(){return config_params;}
vector<string> getConfigErrors(){return config_errors;}
vector<string> getConfigInfo(){return config_info;}
vector<string> getRunMsg(){return runMsg;}
Json::Value getReport(){return RepList;}
void ClearRunMsg(){runMsg.clear();}
protected:
vlaTim desired_speed;
vlaTim desired_heading;
vlaTim desired_depth;
vlaTim desired_pitch;
vlaTim current_speed;
vlaTim current_heading;
vlaTim current_pitch;
vlaTim current_depth;
double current_time;
double start_time;
vlaTim desired_thrust;
vlaTim desired_rudder;
vlaTim desired_elevator;
double limit_thrust[2];
double limit_rudder[2];
double limit_elevator[2];
double max_rudder;
double max_thrust;
double max_pitch;
double max_elevator;
bool has_speedCtrl = true;
bool has_headCtrl = true;
bool has_depthCtrl = true;
bool has_override = true;
bool cheakStalensee = true;
vector<VarDataPair> postings;
unsigned int iterations;
double tardy_helm_thresh;
double tardy_nav_thresh;
double const_thrust;
double dead_zone;
double is_rad = false;
list<string> config_params;
vector<string> config_errors;
vector<string> config_info;
vector<string> runMsg;
Json::Value RepList;
};
#endif

View File

@@ -0,0 +1,242 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-12 09:52:27
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-07 12:01:57
* @FilePath: /moos-ivp-pi/src/pMotionControler/MotionControler.cpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
// #define DEBUG
#include"MotionControler.hpp"
//TODO增加启用哪个控制器功能
bool MotionControler::OnNewMail(MOOSMSG_LIST &NewMail)
{
AppCastingMOOSApp::OnNewMail(NewMail);
MOOSMSG_LIST::iterator p;
for(p=NewMail.begin(); p!=NewMail.end(); p++)
{
CMOOSMsg &msg = *p;
string key = msg.m_sKey;
string sval = msg.m_sVal;
double dval = msg.m_dfVal;
double dfT;
msg.IsSkewed(m_curr_time, &dfT);
if(fabs(dfT) < ok_skew)
{
if((key == "MOOS_MANUAL_OVERIDE") || (key == "MOOS_MANUAL_OVERRIDE"))
pengine.overrived(sval);
else if(key == "DESIRED_HEADING")
pengine.setDesHeading(dval, MOOSTime());
else if(key == "DESIRED_SPEED")
pengine.setDesSpeed(dval, MOOSTime());
else if(key == "DESIRED_DEPTH")
pengine.setDesDepth(dval, MOOSTime());
else if(key == "NAV_HEADING")
pengine.setCurHeading(angle360(dval), MOOSTime());
else if(key == "NAV_SPEED")
pengine.setCurSpeed(dval, MOOSTime());
else if(key == "NAV_DEPTH")
pengine.setCurDepth(dval, MOOSTime());
else if(key == "NAV_PITCH")
pengine.setCurPitch(dval, MOOSTime());
else if(key == MSG_ReadConfig) //重新读取配置参数可以清除故障码
{
int e = pengine.setParam(configFilePath);
pengine.setOverride(true);
if(e != 0)
faultCode = 10 + e;
else
faultCode = 0;
}
}
}
return true;
}
bool MotionControler::Iterate()
{
bool a;
AppCastingMOOSApp::Iterate();
pengine.updateTime(m_curr_time);
int i = pengine.step();
switch (i)
{
case 0:
RepList["State : "] = "Run";
break;
case 1:
RepList["State : "] = "Ready";
break;
case -1:
RepList["State : "] = "Fault";
faultCode = 1;//信息超时
break;
default:
break;
}
postPengineResults();
postPenginePostings();
postCharStatus();
Notify(MSG_FALUT,faultCode);
AppCastingMOOSApp::PostReport();
return true;
}
bool MotionControler::OnConnectToServer()
{
registerVariables();
return true;
}
bool MotionControler::OnStartUp()
{
AppCastingMOOSApp::OnStartUp();
pengine.setStartTime(MOOSTime());
STRING_LIST sParams;
m_MissionReader.GetConfiguration(GetAppName(), sParams);
//pengine.setConfigParams(sParams);
//bool handled = true;
STRING_LIST::iterator p;
for(p=sParams.begin(); p!=sParams.end(); p++) {
string orig = *p;
string line = (orig); //识别大小写
string param = biteStringX(line, '=');
string value = line;
double dval = atof(value.c_str());
if(param == "config_file")
configFilePath = value;
else if(param == "tardy_helm_thresh")
pengine.setTardyHelm(dval);
else if(param == "tardy_nav_thresh")
pengine.setTardyNav(dval);
else if(param == "cheak_stalensee")
pengine.setCheakStalensee(value);
else if(param == "AppTick")
setFrequency = dval;
else if(param == "delta_freqency")
frequency_delta = dval;
else
reportUnhandledConfigWarning(orig);
}
int e = pengine.setParam(configFilePath);
if(e != 0)
{
faultCode = 10 + e;
return false;
}
return true;
}
void MotionControler::registerVariables()
{
AppCastingMOOSApp::RegisterVariables();
Register("NAV_HEADING", 0);
Register("NAV_SPEED", 0);
Register("NAV_DEPTH", 0);
Register("NAV_PITCH", 0);
Register("DESIRED_HEADING", 0);
Register("DESIRED_SPEED", 0);
Register("DESIRED_DEPTH", 0);
Register("PID_VERBOSE", 0);
Register("SPEED_FACTOR", 0);
Register("MOOS_MANUAL_OVERIDE", 0);
Register("MOOS_MANUAL_OVERRIDE", 0);
Register(MSG_ReadConfig,0);
}
bool MotionControler::buildReport()
{
double frequency = pengine.getFrequency();
double delta_freq = 100.0*(setFrequency - frequency) / setFrequency;
if(abs(delta_freq) > frequency_delta)
faultCode = 2;
m_msgs << "Frequency Delta : " << frequency << endl;
m_msgs << "PID has_control : " << boolToString(pengine.hasControl()) << endl;
m_msgs << "Config File Path : " << configFilePath << endl;
m_msgs << "S : H : D : | " << intToString(pengine.hasSpdCtrl())+ " | "
<< intToString(pengine.hasHdgCtrl())+" | "
<< intToString(pengine.hasDphCtrl())+" |" << endl;
RepList["to BS"] = colVar;
RepList["PID"] = pengine.getReport()["W"];
string rep = Json::writeString(RepJsBuilder, RepList);
m_msgs << rep << endl;
return(true);
}
void MotionControler::postPenginePostings()
{
vector<VarDataPair> m_postings = pengine.getPostings();
for(unsigned int i=0; i<m_postings.size(); i++)
{
VarDataPair pair = m_postings[i];
string var = pair.get_var();
if(pair.is_string() && pair.get_sdata_set())
Notify(var, pair.get_sdata());
else if(!pair.is_string() && pair.get_ddata_set())
Notify(var, pair.get_ddata());
}
pengine.clearPostings();
}
void MotionControler::postPengineResults()
{
bool all_stop = true;
if(pengine.hasControl())
all_stop = false;
if(all_stop)
{
if(allstop_posted)
return;
Notify("DESIRED_RUDDER", 0.0);
Notify("DESIRED_THRUST", 0.0);
// if(pengine.hasDphCtrl())
Notify("DESIRED_ELEVATOR", 0.0);
postColVarToBS(0,0,0);
allstop_posted = true;
}
else
{
int T=0,S=0,R=0;
if(pengine.hasHdgCtrl())
{
Notify("DESIRED_RUDDER", pengine.getDesiredRudder());
R = (int)pengine.getDesiredRudder();
}
if(pengine.hasSpdCtrl())
{
Notify("DESIRED_THRUST", pengine.getDesiredThrust());
T = (int)pengine.getDesiredThrust();
}
if(pengine.hasDphCtrl())
{
Notify("DESIRED_ELEVATOR", pengine.getDesiredElevator());
S = pengine.getDesiredElevator();
}
postColVarToBS(T,S,R);
allstop_posted = false;
}
}
void MotionControler::postCharStatus()
{
if(!verbose)
return;
if(pengine.hasControl())
cout << "$" << flush;
else
cout << "*" << flush;
}
void MotionControler::postColVarToBS(int T, int S, int R)
{
string s_msg;
colVar["mode"] = 2;
colVar["thrust"] = T;
colVar["rudder"] = R;
colVar["elevator"] = S;
s_msg = Json::writeString(RepJsBuilder,colVar);
Notify(MSG_TO_BS, s_msg);
}

View File

@@ -0,0 +1,66 @@
/*
* @Author: zjk 1553836110@qq.com
* @Date: 2023-10-12 15:57:27
* @LastEditors: zjk 1553836110@qq.com
* @LastEditTime: 2023-11-07 11:33:04
* @FilePath: /moos-ivp-pi/src/pMotionControler/MotionControler.hpp
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
#ifndef TESTAPP
#define TESEAPP
#include"MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include <iostream>
#include"pidControl.hpp"
#include<vector>
// #include"MOOS/libMOOS/Comms/XPCUdpSocket.h"
using namespace std;
class MotionControler : public AppCastingMOOSApp
{
public:
MotionControler(){};
~MotionControler(){};
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
void registerVariables();
bool buildReport();
void postPenginePostings();
void postPengineResults();
void postColVarToBS(int T, int S, int R);
void postCharStatus();
const string MSG_FALUT = "uMotion_fault_fb";
const string MSG_ReadConfig = "uMotion_config_cmd";
const string MSG_TO_BS = "uMotion_control_cmd";
private:
bool ignore_nav_yaw;
bool allstop_posted;
bool verbose;
bool override;
double ok_skew = 2;
int faultCode = 0;
double setFrequency;
double frequency_delta;
Json::Value RepList;
Json::StreamWriterBuilder RepJsBuilder;
Json::Value colVar;
pidControl pengine;
string configFilePath;
int e;
};
#endif
//1.读取参数配置错误 faultCode = 10~
//2.信息过时错误 faultCode=1
//3.频率相差过大错误 faultCode=2

Some files were not shown because too many files have changed in this diff Show More