- MMS client: added support to read domain specific journals from server: MmsConnection_getDomainJournals

pull/6/head
Michael Zillgith 9 years ago
parent ab9ad2dcf2
commit 956deaf958

@ -156,6 +156,20 @@ int main(int argc, char** argv) {
printf(" %s\n", name);
}
variableList = MmsConnection_getDomainJournals(con, &error, domainName);
if (variableList != NULL) {
element = variableList;
printf("\nMMS journals for domain %s\n", domainName);
while ((element = LinkedList_getNext(element)) != NULL) {
char* name = (char*) element->data;
printf(" %s\n", name);
}
}
}
if (readVariable) {

@ -269,6 +269,20 @@ MmsConnection_getDomainVariableNames(MmsConnection self, MmsError* mmsError, con
LinkedList /* <char*> */
MmsConnection_getDomainVariableListNames(MmsConnection self, MmsError* mmsError, const char* domainId);
/**
* \brief Get the names of all journals present in a MMS domain of the server
*
* This will result in a domain specific GetNameList request.
*
* \param self MmsConnection instance to operate on
* \param mmsError user provided variable to store error code
* \param domainId the domain name for the domain specific request
*
* \return the domain specific journal names or NULL if the request failed.
*/
LinkedList /* <char*> */
MmsConnection_getDomainJournals(MmsConnection self, MmsError* mmsError, const char* domainId);
/**
* \brief Get the names of all named variable lists associated with this client connection.
*

@ -94,9 +94,10 @@ struct sMmsConnection {
* MMS Object class enumeration type
*/
typedef enum {
MMS_NAMED_VARIABLE,
MMS_NAMED_VARIABLE_LIST,
MMS_DOMAIN_NAMES
MMS_OBJECT_CLASS_NAMED_VARIABLE = 0,
MMS_OBJECT_CLASS_NAMED_VARIABLE_LIST = 2,
MMS_OBJECT_CLASS_JOURNAL = 8,
MMS_OBJECT_CLASS_DOMAIN = 9
} MmsObjectClass;
MmsValue*

@ -1048,7 +1048,7 @@ mmsClient_getNameListSingleRequest(
payload, continueAfter);
else {
if (objectClass == MMS_DOMAIN_NAMES)
if (objectClass == MMS_OBJECT_CLASS_DOMAIN)
mmsClient_createMmsGetNameListRequestVMDspecific(invokeId,
payload, continueAfter);
else
@ -1104,31 +1104,37 @@ mmsClient_getNameList(MmsConnection self, MmsError *mmsError,
LinkedList /* <char*> */
MmsConnection_getVMDVariableNames(MmsConnection self, MmsError* mmsError)
{
return mmsClient_getNameList(self, mmsError, NULL, MMS_NAMED_VARIABLE, false);
return mmsClient_getNameList(self, mmsError, NULL, MMS_OBJECT_CLASS_NAMED_VARIABLE, false);
}
LinkedList /* <char*> */
MmsConnection_getDomainNames(MmsConnection self, MmsError* mmsError)
{
return mmsClient_getNameList(self, mmsError, NULL, MMS_DOMAIN_NAMES, false);
return mmsClient_getNameList(self, mmsError, NULL, MMS_OBJECT_CLASS_DOMAIN, false);
}
LinkedList /* <char*> */
MmsConnection_getDomainVariableNames(MmsConnection self, MmsError* mmsError, const char* domainId)
{
return mmsClient_getNameList(self, mmsError, domainId, MMS_NAMED_VARIABLE, false);
return mmsClient_getNameList(self, mmsError, domainId, MMS_OBJECT_CLASS_NAMED_VARIABLE, false);
}
LinkedList /* <char*> */
MmsConnection_getDomainVariableListNames(MmsConnection self, MmsError* mmsError, const char* domainId)
{
return mmsClient_getNameList(self, mmsError, domainId, MMS_NAMED_VARIABLE_LIST, false);
return mmsClient_getNameList(self, mmsError, domainId, MMS_OBJECT_CLASS_NAMED_VARIABLE_LIST, false);
}
LinkedList /* <char*> */
MmsConnection_getDomainJournals(MmsConnection self, MmsError* mmsError, const char* domainId)
{
return mmsClient_getNameList(self, mmsError, domainId, MMS_OBJECT_CLASS_JOURNAL, false);
}
LinkedList /* <char*> */
MmsConnection_getVariableListNamesAssociationSpecific(MmsConnection self, MmsError* mmsError)
{
return mmsClient_getNameList(self, mmsError, NULL, MMS_NAMED_VARIABLE_LIST, true);
return mmsClient_getNameList(self, mmsError, NULL, MMS_OBJECT_CLASS_NAMED_VARIABLE_LIST, true);
}
MmsValue*

@ -229,12 +229,7 @@ mmsClient_createGetNameListRequestDomainOrVMDSpecific(long invokeId, const char*
request->objectClass.present = ObjectClass_PR_basicObjectClass;
if (objectClass == MMS_NAMED_VARIABLE)
asn_long2INTEGER(&request->objectClass.choice.basicObjectClass,
ObjectClass__basicObjectClass_namedVariable);
else if (objectClass == MMS_NAMED_VARIABLE_LIST)
asn_long2INTEGER(&request->objectClass.choice.basicObjectClass,
ObjectClass__basicObjectClass_namedVariableList);
asn_long2INTEGER(&request->objectClass.choice.basicObjectClass, objectClass);
asn_enc_rval_t rval;

@ -3,7 +3,7 @@ package com.libiec61850.tools;
/*
* StaticModelGenerator.java
*
* Copyright 2013, 2014 Michael Zillgith
* Copyright 2013-2016 Michael Zillgith
*
* This file is part of libIEC61850.
*
@ -68,6 +68,10 @@ public class StaticModelGenerator {
private List<String> rcbVariableNames;
private int currentRcbVariableNumber = 0;
private StringBuffer logControlBlocks;
private List<String> lcbVariableNames;
private int currentLcbVariableNumber;
private StringBuffer gseControlBlocks;
private List<String> gseVariableNames;
private int currentGseVariableNumber = 0;

Loading…
Cancel
Save