@@ -0,0 +1,1312 @@
+package com.digitalpetri.enip.cip.services;%0A%0Aimport com.digitalpetri.enip.cip.CipResponseException;%0Aimport com.digitalpetri.enip.cip.epath.EPath.PaddedEPath;%0Aimport com.digitalpetri.enip.cip.structs.MessageRouterRequest;%0Aimport com.digitalpetri.enip.cip.structs.MessageRouterResponse;%0Aimport io.netty.buffer.ByteBuf;%0A%0Apublic class GetAttributesAllService implements CipService%3CByteBuf%3E %7B%0A%0A    public static final int SERVICE_CODE = 0x01;%0A%0A    private final PaddedEPath requestPath;%0A%0A    public GetAttributesAllService(PaddedEPath requestPath) %7B%0A        this.requestPath = requestPath;%0A    %7D%0A%0A    @Override%0A    public void encodeRequest(ByteBuf buffer) %7B%0A        MessageRouterRequest request = new MessageRouterRequest(%0A                SERVICE_CODE,%0A                requestPath,%0A                byteBuf -%3E %7B%7D%0A        );%0A%0A        MessageRouterRequest.encode(request, buffer);%0A    %7D%0A%0A    @Override%0A    public ByteBuf decodeResponse(ByteBuf buffer) throws CipResponseException, PartialResponseException %7B%0A        MessageRouterResponse response = MessageRouterResponse.decode(buffer);%0A%0A        if (response.getGeneralStatus() == 0x00) %7B%0A            return response.getData();%0A        %7D else %7B%0A            throw new CipResponseException(response.getGeneralStatus(), response.getAdditionalStatus());%0A        %7D%0A    %7D%0A%0A%7D%0A

Implement Get_Attributes_All