public byte[] encode(SpineObject payload) { spine.datamodel.functions.AlarmSpineFunctionReq workPayLoad = (spine.datamodel.functions.AlarmSpineFunctionReq) payload; byte[] data = new byte[1 + 1 + 1 + 1 + 1 + 1 + 4 + 4 + 1]; byte activationBinaryFlag = (workPayLoad.getActivationFlag()) ? (byte) 1 : 0; data[0] = SPINEFunctionConstants.ALARM; data[1] = activationBinaryFlag; data[2] = (byte) (12); data[3] = workPayLoad.getDataType(); data[4] = workPayLoad.getSensor(); data[5] = workPayLoad.getValueType(); // lower Threshold data[6] = (byte) (workPayLoad.getLowerThreshold() >> 24); data[7] = (byte) (workPayLoad.getLowerThreshold() >> 16); data[8] = (byte) (workPayLoad.getLowerThreshold() >> 8); data[9] = (byte) (workPayLoad.getLowerThreshold()); // upper Threshold data[10] = (byte) (workPayLoad.getUpperThreshold() >> 24); data[11] = (byte) (workPayLoad.getUpperThreshold() >> 16); data[12] = (byte) (workPayLoad.getUpperThreshold() >> 8); data[13] = (byte) (workPayLoad.getUpperThreshold()); data[14] = workPayLoad.getAlarmType(); return data; }