1 #if !defined(_PSYAPI_H_) 4 #include "MemoryManager.h" 6 #include "xml_parser.h" 7 #include "DataMessage.h" 8 #include "Subscriptions.h" 11 #define CRANKAPI_FAILED 1 12 #define CRANKAPI_INUSE 2 13 #define CRANKAPI_RUNNING 3 14 #define CRANKAPI_IDLE 4 16 #define POST_FAILED -1 17 #define POST_NOSPEC -2 18 #define POST_OUTOFCONTEXT -3 20 #define QUERY_FAILED 1 21 #define QUERY_TIMEOUT 2 22 #define QUERY_NAME_UNKNOWN 3 23 #define QUERY_COMPONENT_UNKNOWN 4 24 #define QUERY_QUERYFAILED 5 25 #define QUERY_SUCCESS 6 26 #define QUERY_NOT_AVAILABLE 7 27 #define QUERY_NOT_REACHABLE 8 31 #define LOG_COMPONENT 8 33 typedef std::pair<DataMessage*, DataMessage*> TriggerAndMessage;
39 static struct PsyType CTRL_SYSTEM_READY;
40 static struct PsyType CTRL_PROCESS_INITIALISE;
41 static struct PsyType CTRL_PROCESS_GREETING;
42 static struct PsyType CTRL_PROCESS_SHUTDOWN;
43 static struct PsyType CTRL_CONTEXT_CHANGE;
44 static struct PsyType CTRL_SYSTEM_SHUTDOWN;
45 static struct PsyType CTRL_SYSTEM_SHUTTINGDOWN;
46 static struct PsyType CTRL_TRIGGER;
47 static struct PsyType CTRL_QUERY;
48 static struct PsyType CTRL_QUERY_REPLY;
49 static struct PsyType CTRL_PULLCOMPONENTDATA;
50 static struct PsyType CTRL_CREATECUSTOMPAGE;
51 static struct PsyType CTRL_ADDSUBSCRIPTION;
52 static struct PsyType CTRL_RETRIEVESYSTEMIDS;
53 static struct PsyType CTRL_INTERSYSTEM_QUERY;
54 static struct PsyType CTRL_INTERSYSTEM_QUERY_REPLY;
73 static const char* fromPythonAddressOf(
unsigned long long ptr);
331 return space->manager->retrieveAllSystemIDs();
382 bool setPrivateData(
const char* name,
const char* data, uint64 size,
const char* mimetype = NULL) {
383 return space->manager->componentMemory->setPrivateData(currentCompID, name, data, size, mimetype);
394 return space->manager->componentMemory->getPrivateDataSize(currentCompID, name);
406 return space->manager->componentMemory->getPrivateDataCopy(currentCompID, name, size);
419 return space->manager->componentMemory->getPrivateData(currentCompID, name, data, maxSize);
430 return space->manager->componentMemory->deletePrivateData(currentCompID, name);
445 bool createParameter(
const char* name,
const char* val,
const char* defaultValue = NULL) {
446 return space->manager->componentMemory->createParameter(currentCompID, name, val, defaultValue);
459 bool createParameter(
const char* name,
const char* val, uint32 count, uint32 defaultIndex) {
460 return space->manager->componentMemory->createParameter(currentCompID, name, val, count, defaultIndex);
472 bool createParameter(
const char* name, std::vector<std::string> values,
const char* defaultValue = NULL) {
473 return space->manager->componentMemory->createParameter(currentCompID, name, values, defaultValue);
486 bool createParameter(
const char* name, int64* val, uint32 count, uint32 defaultIndex) {
487 return space->manager->componentMemory->createParameter(currentCompID, name, val, count, defaultIndex);
499 bool createParameter(
const char* name, std::vector<std::string> values, int64 defaultValue) {
500 return space->manager->componentMemory->createParameter(currentCompID, name, values, defaultValue);
512 bool createParameter(
const char* name, std::vector<int64> values, int64 defaultValue = 0) {
513 return space->manager->componentMemory->createParameter(currentCompID, name, values, defaultValue);
525 bool createParameter(
const char* name, float64* val, uint32 count, uint32 defaultIndex) {
526 return space->manager->componentMemory->createParameter(currentCompID, name, val, count, defaultIndex);
538 bool createParameter(
const char* name, std::vector<std::string> values, float64 defaultValue) {
539 return space->manager->componentMemory->createParameter(currentCompID, name, values, defaultValue);
551 bool createParameter(
const char* name, std::vector<float64> values, float64 defaultValue = 0) {
552 return space->manager->componentMemory->createParameter(currentCompID, name, values, defaultValue);
566 bool createParameter(
const char* name, int64 val, int64 min = 0, int64 max = 0, int64 interval = 0) {
567 return space->manager->componentMemory->createParameter(currentCompID, name, val, min, max, interval);
581 bool createParameter(
const char* name, float64 val, float64 min = 0, float64 max = 0, float64 interval = 0) {
582 return space->manager->componentMemory->createParameter(currentCompID, name, val, min, max, interval);
593 return space->manager->componentMemory->hasParameter(currentCompID, name);
604 return space->manager->componentMemory->deleteParameter(currentCompID, name);
629 return space->manager->componentMemory->getParameterDataType(currentCompID, name);
640 return space->manager->componentMemory->getParameterValueSize(currentCompID, name);
653 return space->manager->componentMemory->getParameter(currentCompID, name, val, maxSize);
664 return space->manager->componentMemory->getParameterString(currentCompID, name);
677 return space->manager->componentMemory->getParameterAsBool(currentCompID, name);
688 return space->manager->componentMemory->getParameterInt(currentCompID, name);
699 return space->manager->componentMemory->getParameterFloat(currentCompID, name);
711 return space->manager->componentMemory->getParameter(currentCompID, name, val);
723 return space->manager->componentMemory->getParameter(currentCompID, name, val);
735 return space->manager->componentMemory->setParameter(currentCompID, name, val);
747 return space->manager->componentMemory->setParameter(currentCompID, name, val);
759 return space->manager->componentMemory->setParameter(currentCompID, name, val);
770 return space->manager->componentMemory->resetParameter(currentCompID, name);
783 return space->manager->componentMemory->tweakParameter(currentCompID, name, tweak);
808 uint8
retrieve(std::list<DataMessage*> &result,
const char* name, uint32 maxcount = 0, uint32 maxage = 0, uint32 timeout = 5000);
822 uint8
retrieveTimeParam(std::list<DataMessage*> &result,
const char* name, uint64 startTime, uint64 endTime = 0, uint32 maxcount = 0, uint32 maxage = 0, uint32 timeout = 5000);
838 uint8
retrieveStringParam(std::list<DataMessage*> &result,
const char* name,
const char* startString,
const char* endString = NULL, uint32 maxcount = 0, uint32 maxage = 0, uint32 timeout = 5000);
854 uint8
retrieveIntegerParam(std::list<DataMessage*> &result,
const char* name, int64 startInteger, int64 endInteger = INT64_NOVALUE, uint32 maxcount = 0, uint32 maxage = 0, uint32 timeout = 5000);
870 uint8
retrieveFloatParam(std::list<DataMessage*> &result,
const char* name, float64 startFloat, float64 endFloat = FLOAT64_NOVALUE, uint32 maxcount = 0, uint32 maxage = 0, uint32 timeout = 5000);
898 uint8
queryCatalog(
char** result, uint32 &resultsize,
const char* name,
const char* query,
const char* operation = NULL,
const char* data = NULL, uint32 datasize = 0, uint32 timeout = 5000);
955 uint8
queryRemoteCatalog(
DataMessage** resultMsg, uint32& chosenAddress,
const char* componentName, uint32* ipAddresses, uint32 numAddresses, uint16 port,
DataMessage* msg, uint32 timeout = 5000);
986 bool queryReply(uint32
id, uint8 status,
char* data, uint32 size, uint32 count);
1018 bool logPrint(uint8 level,
const char *formatstring, ... );
1023 uint64 startedRunning;
1024 bool shouldContinueRunning;
1025 uint32 currentCrankID;
1026 uint32 currentCompID;
1027 uint32 msgReceivedCount;
1028 uint32 msgInputCount;
1029 uint32 msgSentCount;
1030 uint32 msgPostedCount;
1031 uint64 lastCPUTicks;
1032 uint64 lastWallTime;
1033 uint32 chainCPUTicks;
1034 uint32 chainWallTime;
1037 std::queue<TriggerAndMessage> inputQueue;
1045 char currentTriggerName[MAXKEYNAMELEN+1];
1046 char commandlineBasedir[MAXCOMMANDLINELEN + 1];
1052 uint64 checkLastWaitForMessage();
uint8 retrieve(std::list< DataMessage *> &result, const char *name, uint32 maxcount=0, uint32 maxage=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:711
std::string getCommandlineBasedir()
Definition: PsyAPI.cpp:93
uint64 getPrivateDataSize(const char *name)
Definition: PsyAPI.h:393
uint8 getParameterDataType(const char *name)
Definition: PsyAPI.h:628
bool shouldContinue()
Definition: PsyAPI.cpp:80
std::string getParameterString(const char *name)
Definition: PsyAPI.h:663
bool tweakParameter(const char *name, int32 tweak)
Definition: PsyAPI.h:782
std::string getCurrentTriggerName()
Definition: PsyAPI.cpp:363
bool removePsyProbeCustomView(const char *name)
Definition: PsyAPI.h:364
bool setParameter(const char *name, float64 val)
Definition: PsyAPI.h:758
bool emitSignal(const char *name, DataMessage *msg=NULL)
Definition: PsyAPI.cpp:647
bool setPrivateData(const char *name, const char *data, uint64 size, const char *mimetype=NULL)
Definition: PsyAPI.h:382
bool deletePrivateData(const char *name)
Definition: PsyAPI.h:429
int32 postOutputMessage(const char *postName=NULL, DataMessage *msg=NULL)
Definition: PsyAPI.cpp:514
bool hasCurrentSignalName(const char *name)
Definition: PsyAPI.cpp:173
bool getParameterAsBool(const char *name)
Definition: PsyAPI.h:676
char * getPrivateDataCopy(const char *name, uint64 &size)
Definition: PsyAPI.h:405
Definition: Subscriptions.h:341
bool setParameter(const char *name, int64 val)
Definition: PsyAPI.h:746
bool getParameter(const char *name, int64 &val)
Definition: PsyAPI.h:710
float64 getParameterFloat(const char *name)
Definition: PsyAPI.h:698
std::string getModuleName()
Definition: PsyAPI.cpp:107
Definition: PsySpace.h:63
bool hasParameter(const char *name)
Definition: PsyAPI.h:592
uint8 queryCatalog(char **result, uint32 &resultsize, const char *name, const char *query, const char *operation=NULL, const char *data=NULL, uint32 datasize=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:1064
std::set< std::string > getCurrentPostNames()
Definition: PsyAPI.cpp:213
bool hasCurrentPostName(const char *name)
Definition: PsyAPI.cpp:200
bool createParameter(const char *name, std::vector< std::string > values, float64 defaultValue)
Definition: PsyAPI.h:538
uint8 queryRemoteCatalog(DataMessage **resultMsg, const char *componentName, const char *ipAddress, uint16 port, DataMessage *msg, uint32 timeout=5000)
Definition: PsyAPI.cpp:1008
bool addSubscription(const char *xml)
Definition: PsyAPI.cpp:924
DataMessage * retrieveAllSystemIDs()
Definition: PsyAPI.h:330
bool setParameter(const char *name, const char *val)
Definition: PsyAPI.h:734
uint8 retrieveIntegerParam(std::list< DataMessage *> &result, const char *name, int64 startInteger, int64 endInteger=INT64_NOVALUE, uint32 maxcount=0, uint32 maxage=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:808
uint32 getInputQueueSize()
Definition: PsyAPI.cpp:232
std::string getOtherModuleName(uint32 id)
Definition: PsyAPI.cpp:111
bool setAutoDelete(bool autodel)
Definition: PsyAPI.cpp:484
PsyAPI(PsySpace *space)
Definition: PsyAPI.cpp:22
Definition: Subscriptions.h:125
int64 getParameterInt(const char *name)
Definition: PsyAPI.h:687
bool isRunning()
Definition: PsyAPI.cpp:67
DataMessage * waitForSignal(const char *name, uint32 timeout, uint64 lastReceivedTime=0)
Definition: PsyAPI.cpp:679
DataMessage * waitForNewMessage(uint32 ms)
Definition: PsyAPI.cpp:358
~PsyAPI()
Definition: PsyAPI.cpp:46
bool createParameter(const char *name, const char *val, uint32 count, uint32 defaultIndex)
Definition: PsyAPI.h:459
bool createParameter(const char *name, float64 val, float64 min=0, float64 max=0, float64 interval=0)
Definition: PsyAPI.h:581
bool getPrivateData(const char *name, char *data, uint64 maxSize)
Definition: PsyAPI.h:418
bool createParameter(const char *name, std::vector< std::string > values, int64 defaultValue)
Definition: PsyAPI.h:499
bool resetParameter(const char *name)
Definition: PsyAPI.h:769
uint64 getCurrentMessageReceiveTime()
Definition: PsyAPI.cpp:490
bool getParameter(const char *name, char *val, uint32 maxSize)
Definition: PsyAPI.h:652
uint8 retrieveStringParam(std::list< DataMessage *> &result, const char *name, const char *startString, const char *endString=NULL, uint32 maxcount=0, uint32 maxage=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:773
std::string contextToText(PsyContext context)
Definition: PsyAPI.cpp:245
bool queryReply(uint32 id, uint8 status, char *data, uint32 size, uint32 count)
Definition: PsyAPI.cpp:1143
bool createParameter(const char *name, std::vector< float64 > values, float64 defaultValue=0)
Definition: PsyAPI.h:551
static PsyAPI * fromPython(unsigned long long ptr)
Definition: PsyAPI.cpp:59
std::string getCurrentScriptLanguage()
Definition: PsyAPI.cpp:119
bool deleteParameter(const char *name)
Definition: PsyAPI.h:603
bool setCommandlineBasedir(const char *cmdlineBasedir)
Definition: PsyAPI.cpp:97
bool hasCurrentQueryName(const char *name)
Definition: PsyAPI.cpp:187
bool addPsyProbeCustomView(const char *name, const char *templateURL)
Definition: PsyAPI.cpp:304
std::string getCurrentScriptFilename()
Definition: PsyAPI.cpp:149
bool createParameter(const char *name, const char *val, const char *defaultValue=NULL)
Definition: PsyAPI.h:445
bool createParameter(const char *name, std::vector< std::string > values, const char *defaultValue=NULL)
Definition: PsyAPI.h:472
std::string typeToText(PsyType type)
Definition: PsyAPI.cpp:241
bool createParameter(const char *name, float64 *val, uint32 count, uint32 defaultIndex)
Definition: PsyAPI.h:525
uint8 retrieveFloatParam(std::list< DataMessage *> &result, const char *name, float64 startFloat, float64 endFloat=FLOAT64_NOVALUE, uint32 maxcount=0, uint32 maxage=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:843
bool hasCurrentRetrieveName(const char *name)
Definition: PsyAPI.cpp:160
bool createParameter(const char *name, std::vector< int64 > values, int64 defaultValue=0)
Definition: PsyAPI.h:512
bool getParameter(const char *name, float64 &val)
Definition: PsyAPI.h:722
bool createParameter(const char *name, int64 *val, uint32 count, uint32 defaultIndex)
Definition: PsyAPI.h:486
bool createParameter(const char *name, int64 val, int64 min=0, int64 max=0, int64 interval=0)
Definition: PsyAPI.h:566
Definition: DataMessage.h:95
std::string getCurrentScript()
Definition: PsyAPI.cpp:134
uint32 getParameterValueSize(const char *name)
Definition: PsyAPI.h:639
PsyContext getCurrentTriggerContext()
Definition: PsyAPI.cpp:367
uint8 retrieveTimeParam(std::list< DataMessage *> &result, const char *name, uint64 startTime, uint64 endTime=0, uint32 maxcount=0, uint32 maxage=0, uint32 timeout=5000)
Definition: PsyAPI.cpp:739