use of org.opensmartgridplatform.dto.valueobjects.smartmetering.AssociationLnListElementDto in project open-smart-grid-platform by OSGP.
the class AssociationLnListTypeMappingTest method testAssociationLnListTypeDtoMappingWithNonEmptyLists.
@Test
public void testAssociationLnListTypeDtoMappingWithNonEmptyLists() {
// build test data
final List<AttributeAccessItemDto> listAttributeAccessItemDto = new ArrayList<>();
final AttributeAccessModeTypeDto accessMode = AttributeAccessModeTypeDto.NO_ACCESS;
final List<Integer> listInteger = new ArrayList<>();
final AccessSelectorListDto accessSelectors = new AccessSelectorListDto(listInteger);
listAttributeAccessItemDto.add(new AttributeAccessItemDto(1, accessMode, accessSelectors));
final AttributeAccessDescriptorDto attributeAccessDescriptorDto = new AttributeAccessDescriptorDto(listAttributeAccessItemDto);
final List<MethodAccessItemDto> listMethodAccessItemDto = new ArrayList<>();
final MethodAccessDescriptorDto methodAccessDescriptorDto = new MethodAccessDescriptorDto(listMethodAccessItemDto);
final AssociationLnListElementDto associationLnElementDto = new AssociationLnListElementDto(72, 2, new CosemObisCodeDto(new int[] { 1, 1, 1, 1, 1, 1 }), new AccessRightDto(attributeAccessDescriptorDto, methodAccessDescriptorDto));
final AssociationLnListTypeDto associationLnListTypeDto = new AssociationLnListTypeDtoBuilder().withNonEmptyLists(associationLnElementDto).build();
// actual mapping
final AssociationLnListType associationLnListType = this.configurationMapper.map(associationLnListTypeDto, AssociationLnListType.class);
// check values
assertThat(associationLnListType).isNotNull();
this.checkAssociationLnListElementMapping(associationLnListType.getAssociationLnListElement(), associationLnListTypeDto.getAssociationLnListElement());
}
use of org.opensmartgridplatform.dto.valueobjects.smartmetering.AssociationLnListElementDto in project open-smart-grid-platform by OSGP.
the class GetAssociationLnObjectsCommandExecutor method execute.
@Override
public AssociationLnListTypeDto execute(final DlmsConnectionManager conn, final DlmsDevice device, final Void object, final MessageMetadata messageMetadata) throws ProtocolAdapterException {
final AttributeAddress attributeAddress = new AttributeAddress(CLASS_ID, OBIS_CODE, ATTRIBUTE_ID);
conn.getDlmsMessageListener().setDescription("GetAssociationLnObjects, retrieve attribute: " + JdlmsObjectToStringUtil.describeAttributes(attributeAddress));
LOGGER.debug("Retrieving Association LN objects for class id: {}, obis code: {}, attribute id: {}", CLASS_ID, OBIS_CODE, ATTRIBUTE_ID);
final List<GetResult> getResultList = this.dlmsHelper.getAndCheck(conn, device, "Association LN Objects", attributeAddress);
final DataObject resultData = getResultList.get(0).getResultData();
if (!resultData.isComplex()) {
throw new ProtocolAdapterException("Unexpected type of element");
}
final List<DataObject> associationLnListObjects = resultData.getValue();
final List<AssociationLnListElementDto> elements = this.convertAssociationLnList(associationLnListObjects);
return new AssociationLnListTypeDto(elements);
}
use of org.opensmartgridplatform.dto.valueobjects.smartmetering.AssociationLnListElementDto in project open-smart-grid-platform by OSGP.
the class GetAssociationLnObjectsCommandExecutor method convertAssociationLnList.
private List<AssociationLnListElementDto> convertAssociationLnList(final List<DataObject> resultDataValue) throws ProtocolAdapterException {
final List<AssociationLnListElementDto> elements = new ArrayList<>();
for (final DataObject obisCodeMetaData : resultDataValue) {
final List<DataObject> obisCodeMetaDataList = obisCodeMetaData.getValue();
final short version = obisCodeMetaDataList.get(VERSION_INDEX).getValue();
final AssociationLnListElementDto element = new AssociationLnListElementDto(this.dlmsHelper.readLong(obisCodeMetaDataList.get(CLASS_ID_INDEX), "classId"), version, this.dlmsHelper.readLogicalName(obisCodeMetaDataList.get(OBIS_CODE_INDEX), "AssociationLN Element"), this.convertAccessRights(obisCodeMetaDataList.get(ACCESS_RIGHTS_INDEX)));
elements.add(element);
}
return elements;
}
Aggregations