This commit is contained in:
Timur A. Fatkhullin 2025-01-21 12:05:21 +03:00
parent 6ec503ff04
commit fa5507feef
5 changed files with 84 additions and 1 deletions

2
.gitignore vendored
View File

@ -86,3 +86,5 @@ dkms.conf
*.out *.out
*.app *.app
build
CMakeLists.txt.user*

1
cxx/.gitignore vendored
View File

@ -87,3 +87,4 @@ dkms.conf
*.app *.app
CMakeLists.txt.user CMakeLists.txt.user
biuld

View File

@ -8,4 +8,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
# (extended LX200 protocol) # (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})

0
cxx/comm_proto.cpp Normal file
View File

View File

@ -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_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_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 { enum PROTO_COMMAND_ID : size_t {
PROTO_COMMAND_ID_ACK = details::FNV1aHash(PROTO_COMMAND_STR_ACK), PROTO_COMMAND_ID_ACK = details::FNV1aHash(PROTO_COMMAND_STR_ACK),
PROTO_COMMAND_ID_TRACK_STOP = details::FNV1aHash(PROTO_COMMAND_STR_TRACK_STOP), PROTO_COMMAND_ID_TRACK_STOP = details::FNV1aHash(PROTO_COMMAND_STR_TRACK_STOP),