From fa5507feeff883c8d437412164099ce76c1116c3 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Tue, 21 Jan 2025 12:05:21 +0300 Subject: [PATCH] ... --- .gitignore | 2 ++ cxx/.gitignore | 1 + cxx/CMakeLists.txt | 5 ++- cxx/comm_proto.cpp | 0 cxx/comm_proto.h | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 cxx/comm_proto.cpp diff --git a/.gitignore b/.gitignore index acf5dd9..0c4cda4 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,5 @@ dkms.conf *.out *.app +build +CMakeLists.txt.user* diff --git a/cxx/.gitignore b/cxx/.gitignore index cd23e91..77533e6 100644 --- a/cxx/.gitignore +++ b/cxx/.gitignore @@ -87,3 +87,4 @@ dkms.conf *.app CMakeLists.txt.user +biuld diff --git a/cxx/CMakeLists.txt b/cxx/CMakeLists.txt index be03317..e049c35 100644 --- a/cxx/CMakeLists.txt +++ b/cxx/CMakeLists.txt @@ -8,4 +8,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # (extended LX200 protocol) # -set(COMM_PROTO_LIB_SRC comm_proto.h) +set(COMM_PROTO_LIB_SRC comm_proto.h comm_proto.cpp) + +set(COMM_PROTO_LIB comm_proto) +add_library(${COMM_PROTO_LIB} STATIC ${COMM_PROTO_LIB_SRC}) diff --git a/cxx/comm_proto.cpp b/cxx/comm_proto.cpp new file mode 100644 index 0000000..e69de29 diff --git a/cxx/comm_proto.h b/cxx/comm_proto.h index 2540d7c..d3bc1ea 100644 --- a/cxx/comm_proto.h +++ b/cxx/comm_proto.h @@ -110,6 +110,83 @@ static constexpr std::string_view PROTO_COMMAND_STR_GET_TAG_AZ = "Gz"; static constexpr std::string_view PROTO_COMMAND_STR_GET_POINT_STATE = "pS"; // "side of the pier" static constexpr std::string_view PROTO_COMMAND_STR_GET_EMUL_FWR_REV = "V"; // always returns "G#" +static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_STORE = "hS"; +static constexpr std::string_view PROTO_COMMAND_STR_HOME_SEEK_AND_ALIGN = "hF"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_hS = "hS"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_PARK_KA = "KA"; +static constexpr std::string_view PROTO_COMMAND_STR_UNPARK = "PO"; +static constexpr std::string_view PROTO_COMMAND_STR_QUERY_HOME_STATUS = "h?"; + +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_AZ = "MA"; +static constexpr std::string_view PROTO_COMMAND_STR_MOVE_EAST = "Me"; +static constexpr std::string_view PROTO_COMMAND_STR_MOVE_NORTH = "Mn"; +static constexpr std::string_view PROTO_COMMAND_STR_MOVE_SOUTH = "Ms"; +static constexpr std::string_view PROTO_COMMAND_STR_MOVE_WEST = "Mw"; +static constexpr std::string_view PROTO_COMMAND_STR_CORR_EAST = "Mge"; +static constexpr std::string_view PROTO_COMMAND_STR_CORR_NORTH = "Mgn"; +static constexpr std::string_view PROTO_COMMAND_STR_CORR_SOUTH = "Mgs"; +static constexpr std::string_view PROTO_COMMAND_STR_CORR_WEST = "Mgw"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_TAG = "MS"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_TAG_SIDE = "MSfs"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_TAG_DISREG_FINE_MOVE = "MSnf"; +static constexpr std::string_view PROTO_COMMAND_STR_SWAP_EAST_WEST = "EW"; +static constexpr std::string_view PROTO_COMMAND_STR_SWAP_NORTH_SOUTH = "NS"; +static constexpr std::string_view PROTO_COMMAND_STR_HALT_ALL = "Q"; +static constexpr std::string_view PROTO_COMMAND_STR_HALT_EASTWARD = "Qe"; +static constexpr std::string_view PROTO_COMMAND_STR_HALT_NORTHWARD = "Qn"; +static constexpr std::string_view PROTO_COMMAND_STR_HALT_SOUTHWARD = "Qs"; +static constexpr std::string_view PROTO_COMMAND_STR_HALT_WESTWARD = "Qw"; +static constexpr std::string_view PROTO_COMMAND_STR_FLIP = "FLIP"; // ??????????? +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_PROGRESS_STRING = "D"; +static constexpr std::string_view PROTO_COMMAND_STR_NUDGE = "NUDGE"; + +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_CENTERING_RATE = "RC"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_GUIDING_RATE = "RG"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_FIND_RATE = "RM"; +static constexpr std::string_view PROTO_COMMAND_STR_SLEW_TO_MAX_RATE = "RS"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SLEW_RA_RATE = "RA"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SLEW_DEC_RATE = "RE"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_GUIDING_RATE = "Rg"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_CENTERING_RATE = "Rc"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SLEW_RATE = "Rs"; // multiple of sideral rate +static constexpr std::string_view PROTO_COMMAND_STR_SET_SLEW_ABS_RATE = "RMs"; // in degs/s +static constexpr std::string_view PROTO_COMMAND_STR_GET_SLEW_ABS_RATE = "GMs"; // in degs/s +static constexpr std::string_view PROTO_COMMAND_STR_GET_MIN_SLEW_ABS_RATE = "GMsa"; // in degs/s +static constexpr std::string_view PROTO_COMMAND_STR_GET_MAX_SLEW_ABS_RATE = "GMsb"; // in degs/s +static constexpr std::string_view PROTO_COMMAND_STR_GET_GUIDING_RATE = "Ggui"; // in arcsec/s + + +static constexpr std::string_view PROTO_COMMAND_STR_SET_DEC_BACKLASH = "Bd"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_RA_BACKLASH = "Br"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_TAG_ALT = "Sa"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_BAUD_RATE = "SB"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_LOCAL_DATE = "SC"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_TAG_DEC = "Sd"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_CURR_SITE_LONG = "Sg"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_UTC_OFFSET = "SG"; // = UTC-LOCAL (hours) +static constexpr std::string_view PROTO_COMMAND_STR_SET_HIGHEST_ALT = "Sh"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_CURR_JULDATE = "SJD"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_LOCAL_TIME = "SL"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_LOCAL_DATE_TIME = "SLDT"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_UTC_DATE_TIME = "SUDT"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_MERIDIAN_BEHAV = "SMF"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_LOWEST_ALT = "So"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_TAG_RA = "Sr"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_REFRACT_CORR_STATUS = "SREF"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_ATM_PRES = "SRPRS"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_ATM_TEMP = "SRTMP"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SPEED_CORR_STATUS = "SSC"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SETTLE_TIME = "Sstm"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_TRACK_MERIDIAN_LIMIT = "Slmt"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_SLEW_MERIDIAN_LIMIT = "Slms"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_UNATTEND_FLIP_SETTING = "Suaf"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_CURR_SITE_LAT = "St"; +static constexpr std::string_view PROTO_COMMAND_STR_STOP = "STOP"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_MAX_SLEW_ABS_RATE = "Sw"; // in degs/s +static constexpr std::string_view PROTO_COMMAND_STR_SET_WOL_CONF = "SWOL"; +static constexpr std::string_view PROTO_COMMAND_STR_SET_TAG_AZ = "Sz"; + + enum PROTO_COMMAND_ID : size_t { PROTO_COMMAND_ID_ACK = details::FNV1aHash(PROTO_COMMAND_STR_ACK), PROTO_COMMAND_ID_TRACK_STOP = details::FNV1aHash(PROTO_COMMAND_STR_TRACK_STOP),