- 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); 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) { if (readVariable) {

@ -269,6 +269,20 @@ MmsConnection_getDomainVariableNames(MmsConnection self, MmsError* mmsError, con
LinkedList /* <char*> */ LinkedList /* <char*> */
MmsConnection_getDomainVariableListNames(MmsConnection self, MmsError* mmsError, const char* domainId); 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. * \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 * MMS Object class enumeration type
*/ */
typedef enum { typedef enum {
MMS_NAMED_VARIABLE, MMS_OBJECT_CLASS_NAMED_VARIABLE = 0,
MMS_NAMED_VARIABLE_LIST, MMS_OBJECT_CLASS_NAMED_VARIABLE_LIST = 2,
MMS_DOMAIN_NAMES MMS_OBJECT_CLASS_JOURNAL = 8,
MMS_OBJECT_CLASS_DOMAIN = 9
} MmsObjectClass; } MmsObjectClass;
MmsValue* MmsValue*

@ -1048,7 +1048,7 @@ mmsClient_getNameListSingleRequest(
payload, continueAfter); payload, continueAfter);
else { else {
if (objectClass == MMS_DOMAIN_NAMES) if (objectClass == MMS_OBJECT_CLASS_DOMAIN)
mmsClient_createMmsGetNameListRequestVMDspecific(invokeId, mmsClient_createMmsGetNameListRequestVMDspecific(invokeId,
payload, continueAfter); payload, continueAfter);
else else
@ -1104,31 +1104,37 @@ mmsClient_getNameList(MmsConnection self, MmsError *mmsError,
LinkedList /* <char*> */ LinkedList /* <char*> */
MmsConnection_getVMDVariableNames(MmsConnection self, MmsError* mmsError) 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*> */ LinkedList /* <char*> */
MmsConnection_getDomainNames(MmsConnection self, MmsError* mmsError) 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*> */ LinkedList /* <char*> */
MmsConnection_getDomainVariableNames(MmsConnection self, MmsError* mmsError, const char* domainId) 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*> */ LinkedList /* <char*> */
MmsConnection_getDomainVariableListNames(MmsConnection self, MmsError* mmsError, const char* domainId) 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*> */ LinkedList /* <char*> */
MmsConnection_getVariableListNamesAssociationSpecific(MmsConnection self, MmsError* mmsError) 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* MmsValue*

@ -229,12 +229,7 @@ mmsClient_createGetNameListRequestDomainOrVMDSpecific(long invokeId, const char*
request->objectClass.present = ObjectClass_PR_basicObjectClass; request->objectClass.present = ObjectClass_PR_basicObjectClass;
if (objectClass == MMS_NAMED_VARIABLE) asn_long2INTEGER(&request->objectClass.choice.basicObjectClass, objectClass);
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_enc_rval_t rval; asn_enc_rval_t rval;

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

Loading…
Cancel
Save