22#include <mysql/mysql.h>
27using namespace std::chrono_literals;
28using Clock = std::chrono::system_clock;
32static constexpr size_t MAX_IMAGE_SIZE {
static_cast<size_t>(2048) * 1536 * 3 };
33using FrameData = std::array<uint8_t,MAX_IMAGE_SIZE>;
311 std::string
getZMSetting(
const std::string &setting)
const;
312 bool send(
const std::string &s)
const;
313 bool send(
const std::string &s,
const unsigned char *buffer,
int dataLen)
const;
318 static void tokenize(
const std::string &command, std::vector<std::string> &tokens);
320 static std::string
runCommand(
const std::string& command);
322 const std::string &device,
const std::string &host,
323 const std::string &channel,
const std::string &function,
324 std::string &zmcStatus, std::string &zmaStatus,
325 const std::string &enabled);
int getSubpixelOrder(void)
SharedData * m_sharedData
void initMonitor(bool debug, const std::string &mmapPath, int shmKey)
std::string getIdStr(void)
SharedData32 * m_sharedData32
SharedData26 * m_sharedData26
int getLastWriteIndex(void)
SharedData34 * m_sharedData34
unsigned char * m_sharedImages
std::vector< MONITOR * > m_monitors
static std::string runCommand(const std::string &command)
void zmaControl(MONITOR *monitor, const std::string &mode)
void handleGetAlarmStates(void)
static long long getDiskSpace(const std::string &filename, long long &total, long long &used)
void zmcControl(MONITOR *monitor, const std::string &mode)
void handleGetMonitorStatus(void)
std::string getZMSetting(const std::string &setting) const
void handleGetEventDates(std::vector< std::string > tokens)
std::string m_eventFileFormat
void handleGetEventList(std::vector< std::string > tokens)
static void tokenize(const std::string &command, std::vector< std::string > &tokens)
void handleSetMonitorFunction(std::vector< std::string > tokens)
void handleGetServerStatus(void)
void handleGetMonitorList(void)
bool processRequest(char *buf, int nbytes)
static int getFrame(FrameData &buffer, MONITOR *monitor)
void getMonitorList(void)
std::map< int, MONITOR * > m_monitorMap
void handleGetAnalysisFrame(std::vector< std::string > tokens)
void handleGetEventFrame(std::vector< std::string > tokens)
void handleGetLiveFrame(std::vector< std::string > tokens)
void handleDeleteEvent(std::vector< std::string > tokens)
bool send(const std::string &s) const
void handleRunZMAudit(void)
void sendError(const std::string &error)
ZMServer(int sock, bool debug)
void handleGetFrameList(std::vector< std::string > tokens)
void handleDeleteEventList(std::vector< std::string > tokens)
static void getMonitorStatus(const std::string &id, const std::string &type, const std::string &device, const std::string &host, const std::string &channel, const std::string &function, std::string &zmcStatus, std::string &zmaStatus, const std::string &enabled)
std::string m_analysisFileFormat
void handleGetCameraList(void)
uint32_t last_write_index
uint8_t control_state[256]
uint8_t control_state[256]
uint32_t last_write_index
time_t zmc_heartbeat_time
uint8_t control_state[256]
uint32_t last_write_index
time_t zma_heartbeat_time
char trigger_showtext[256]
TriggerState trigger_state
char trigger_showtext[256]
VERBOSE_PREAMBLE Most debug(nodatabase, notimestamp, noextra)") VERBOSE_MAP(VB_GENERAL
void loadZMConfig(const std::string &configfile)
const std::string FUNCTION_NODECT
std::array< uint8_t, MAX_IMAGE_SIZE > FrameData
const std::string RUNNING
bool checkVersion(int major, int minor, int revision)
const std::string FUNCTION_MONITOR
std::chrono::system_clock Clock
const std::string FUNCTION_MODECT
static constexpr size_t MAX_IMAGE_SIZE
const std::string FUNCTION_RECORD
std::chrono::time_point< Clock > TimePoint
void kickDatabase(bool debug)
const std::string FUNCTION_MOCORD
const std::string FUNCTION_NONE
void connectToDatabase(void)
const std::string RESTART
static constexpr std::chrono::seconds DB_CHECK_TIME