Added msgPrintControl feature to control the maximum number of IOC shell
message repetitions.
This commit is contained in:
@@ -5,11 +5,13 @@ README.md for details.
|
||||
Stefan Mathis, November 2024
|
||||
*/
|
||||
|
||||
#ifndef __sinqController
|
||||
#define __sinqController
|
||||
#ifndef sinqController_H
|
||||
#define sinqController_H
|
||||
#include "asynMotorController.h"
|
||||
#include "msgPrintControl.h"
|
||||
#include <deque>
|
||||
#include <initHooks.h>
|
||||
#include <unordered_map>
|
||||
|
||||
#define motorMessageIsFromDriverString "MOTOR_MESSAGE_DRIVER"
|
||||
#define motorMessageTextString "MOTOR_MESSAGE_TEXT"
|
||||
@@ -88,13 +90,13 @@ class epicsShareClass sinqController : public asynMotorController {
|
||||
error messages.
|
||||
* @param functionName Name of the caller function. It is recommended
|
||||
to use a macro, e.g. __func__ or __PRETTY_FUNCTION__.
|
||||
* @param lineNumber Source code line where this function is
|
||||
* @param line Source code line where this function is
|
||||
called. It is recommended to use a macro, e.g. __LINE__.
|
||||
* @return asynStatus Returns input status.
|
||||
*/
|
||||
asynStatus paramLibAccessFailed(asynStatus status, const char *parameter,
|
||||
int axisNo, const char *functionName,
|
||||
int lineNumber);
|
||||
int line);
|
||||
|
||||
/**
|
||||
* @brief Error handling in case parsing a command response failed.
|
||||
@@ -109,14 +111,13 @@ class epicsShareClass sinqController : public asynMotorController {
|
||||
* @param axisNo_ Axis where the problem occurred
|
||||
* @param functionName Name of the caller function. It is recommended
|
||||
to use a macro, e.g. __func__ or __PRETTY_FUNCTION__.
|
||||
* @param lineNumber Source code line where this function is
|
||||
* @param line Source code line where this function is
|
||||
called. It is recommended to use a macro, e.g. __LINE__.
|
||||
* @return asynStatus Returns asynError.
|
||||
*/
|
||||
asynStatus errMsgCouldNotParseResponse(const char *command,
|
||||
const char *response, int axisNo,
|
||||
const char *functionName,
|
||||
int lineNumber);
|
||||
const char *functionName, int line);
|
||||
|
||||
/**
|
||||
* @brief Convert an asynStatus into a descriptive string.
|
||||
@@ -213,13 +214,22 @@ class epicsShareClass sinqController : public asynMotorController {
|
||||
return asynSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a reference to the map used to control the maximum number of
|
||||
* message repetitions. See the documentation of printRepetitionWatchdog in
|
||||
* msgPrintControl.h for details.
|
||||
*
|
||||
* @return std::unordered_map<msgPrintControlKey, size_t>&
|
||||
*/
|
||||
msgPrintControl &getMsgPrintControl();
|
||||
|
||||
friend class sinqAxis;
|
||||
|
||||
protected:
|
||||
asynUser *lowLevelPortUser_;
|
||||
|
||||
double movingPollPeriod_;
|
||||
double idlePollPeriod_;
|
||||
msgPrintControl msgPrintControl_;
|
||||
|
||||
// Internal variables used in the communication timeout frequency watchdog
|
||||
time_t comTimeoutWindow_; // Size of the time window
|
||||
@@ -235,7 +245,6 @@ class epicsShareClass sinqController : public asynMotorController {
|
||||
|
||||
#define FIRST_SINQMOTOR_PARAM motorMessageText_
|
||||
int motorMessageText_;
|
||||
int motorTargetPosition_;
|
||||
int motorEnable_;
|
||||
int motorEnableRBV_;
|
||||
int motorCanDisable_;
|
||||
|
||||
Reference in New Issue
Block a user