All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.esrf.TangoApi.DeviceAttribute_3DAODefaultImpl Maven / Gradle / Ivy

There is a newer version: 10.0.0
Show newest version
//+======================================================================
// $Source$
//
// Project:   Tango
//
// Description:  java source code for the TANGO client/server API.
//
// $Author: pascal_verdier $
//
// Copyright (C) :      2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,
//						European Synchrotron Radiation Facility
//                      BP 220, Grenoble 38043
//                      FRANCE
//
// This file is part of Tango.
//
// Tango is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// Tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with Tango.  If not, see .
//
// $Revision: 25297 $
//
//-======================================================================


package fr.esrf.TangoApi;

import org.omg.CORBA.TCKind;
import org.omg.CORBA.TypeCode;

import fr.esrf.Tango.AttrQuality;
import fr.esrf.Tango.AttributeDim;
import fr.esrf.Tango.AttributeValue;
import fr.esrf.Tango.AttributeValue_3;
import fr.esrf.Tango.DevError;
import fr.esrf.Tango.DevFailed;
import fr.esrf.Tango.DevState;
import fr.esrf.Tango.DevStateHelper;
import fr.esrf.Tango.DevVarBooleanArrayHelper;
import fr.esrf.Tango.DevVarCharArrayHelper;
import fr.esrf.Tango.DevVarDoubleArrayHelper;
import fr.esrf.Tango.DevVarFloatArrayHelper;
import fr.esrf.Tango.DevVarLong64ArrayHelper;
import fr.esrf.Tango.DevVarLongArrayHelper;
import fr.esrf.Tango.DevVarShortArrayHelper;
import fr.esrf.Tango.DevVarStateArrayHelper;
import fr.esrf.Tango.DevVarStringArrayHelper;
import fr.esrf.Tango.DevVarULong64ArrayHelper;
import fr.esrf.Tango.DevVarULongArrayHelper;
import fr.esrf.Tango.DevVarUShortArrayHelper;
import fr.esrf.Tango.TimeVal;
import fr.esrf.TangoDs.Except;
import fr.esrf.TangoDs.TangoConst;

/**
 * Class Description: This class manage data object for Tango device attribute
 * access. 
*
*
* Usage example:
*
    * DeviceAttribute devattr = dev.read_attribute("Current");
    * if (devattr.hasFailed())
    * { *
      * Except.print_exception(devattr.getErrStack()); *
    * else
    * { *
      * double current = devattr.extractDouble();
      * System.out.println("Current : " + current); *
    *
* * @author verdier * @version $Revision: 25297 $ */ public class DeviceAttribute_3DAODefaultImpl implements IDeviceAttribute_3DAO { AttributeValue_3 attrval = new AttributeValue_3(); // =========================================== /** * Build a DeviceAttribute IDL object * * @param name * Attribute name. */ // =========================================== private void buildAttributeValueObject(final String name) { attrval.name = name; attrval.quality = AttrQuality.ATTR_VALID; attrval.time = new TimeVal(); attrval.r_dim = new AttributeDim(); attrval.w_dim = new AttributeDim(); attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; attrval.w_dim.dim_x = 0; attrval.w_dim.dim_y = 0; try { attrval.value = ApiUtil.get_orb().create_any(); } catch (final DevFailed e) { } final long now = System.currentTimeMillis(); attrval.time.tv_sec = (int) (now / 1000); attrval.time.tv_usec = (int) (now - attrval.time.tv_sec * 1000) * 1000; attrval.time.tv_nsec = 0; attrval.err_list = null; } public DeviceAttribute_3DAODefaultImpl() { } // =========================================== /** * DeviceAttribute class constructor. * * @param attrval * AttributeValue_3 IDL object. */ // =========================================== public void init(final AttributeValue_3 attrval) { this.attrval = attrval; } // =========================================== /** * DeviceAttribute class constructor. * * @param attrval * AttributeValue_4 IDL object. */ // =========================================== public void init(final AttributeValue attrval) { this.attrval.value = attrval.value; this.attrval.name = attrval.name; this.attrval.quality = attrval.quality; this.attrval.time = attrval.time; this.attrval.r_dim = new AttributeDim(); this.attrval.w_dim = new AttributeDim(); this.attrval.r_dim.dim_x = attrval.dim_x; this.attrval.r_dim.dim_y = attrval.dim_y; this.attrval.w_dim.dim_x = 0; this.attrval.w_dim.dim_y = 0; this.attrval.err_list = null; } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. */ // =========================================== public void init(final String name) { buildAttributeValueObject(name); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final int dim_x, final int dim_y) { buildAttributeValueObject(name); attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final boolean value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final DevState value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final boolean[] value, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(value, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final byte value) { buildAttributeValueObject(name); insert_uc(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final byte[] value, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert_uc(value, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final short value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final short[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final int value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final int[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final long value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final long[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final float value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final float[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final double value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final double[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param value * Attribute value. */ // =========================================== public void init(final String name, final String value) { buildAttributeValueObject(name); insert(value); } // =========================================== /** * DeviceAttribute class constructor. * * @param name * Attribute name. * @param values * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void init(final String name, final String[] values, final int dim_x, final int dim_y) { buildAttributeValueObject(name); insert(values, dim_x, dim_y); } // =========================================== // =========================================== public boolean hasFailed() { return attrval.err_list != null && attrval.err_list.length > 0; } // =========================================== /** * Returns the attribute errors list */ // =========================================== public DevError[] getErrStack() { return attrval.err_list; } // =========================================== /** * Set the AttributeValue internal object with input one. * * @param attrval * AttributeValue_3 input object */ // =========================================== public void setAttributeValue(final AttributeValue_3 attrval) { this.attrval = attrval; } // =========================================== /** * Set the AttributeValue internal object with input one. * * @param attrval * AttributeValue input object */ // =========================================== public void setAttributeValue(final AttributeValue attrval) { this.attrval.value = attrval.value; this.attrval.name = attrval.name; this.attrval.quality = attrval.quality; this.attrval.time = attrval.time; this.attrval.r_dim.dim_x = attrval.dim_x; this.attrval.r_dim.dim_y = attrval.dim_y; this.attrval.w_dim.dim_x = 0; this.attrval.w_dim.dim_y = 0; this.attrval.err_list = null; } // =========================================== /** * DeviceAttribute class constructor. * * @param devatt * AttributeValue IDL object. */ // =========================================== // GA: cf. the inteface implemented by this class public void setAttributeValue(final IDeviceAttributeDAO devatt) throws DevFailed { attrval.name = devatt.getName(); attrval.quality = devatt.getQuality(); attrval.time = devatt.getTimeVal(); attrval.r_dim = devatt.getReadAttributeDim(); attrval.w_dim = devatt.getWriteAttributeDim(); attrval.r_dim.dim_x = devatt.getReadAttributeDim().dim_x; attrval.r_dim.dim_y = devatt.getReadAttributeDim().dim_y; if (devatt.getWriteAttributeDim() != null) { attrval.w_dim.dim_x = devatt.getWriteAttributeDim().dim_x; attrval.w_dim.dim_y = devatt.getWriteAttributeDim().dim_y; } else { attrval.w_dim = devatt.getReadAttributeDim();// write as read } attrval.err_list = null; // Get the value from Union object attrval.value = ApiUtil.get_orb().create_any(); // GA // devatt.setValueAsAny(this); ((DeviceAttributeDAODefaultImpl) devatt).setValueAsAny(this); } // =========================================== // Insert methods // =========================================== // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final DevState argin) { final DevState[] values = new DevState[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarStateArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final DevState[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarStateArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final DevState[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarStateArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final boolean argin) { final boolean[] values = new boolean[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarBooleanArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final boolean[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarBooleanArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final boolean[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarBooleanArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_uc(final byte argin) { final byte[] values = new byte[1]; attrval.r_dim.dim_x = 1; values[0] = argin; attrval.r_dim.dim_y = 0; DevVarCharArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_uc(final byte[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarCharArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_uc(final short argin) { final byte[] values = new byte[1]; values[0] = (byte) (argin & 0xFF); attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarCharArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_uc(final short[] argin) { final byte[] values = new byte[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (byte) (argin[i] & 0xFF); } attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarCharArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. * @param dim_x * nb data.in x direction * @param dim_y * nb data.in y direction */ // =========================================== public void insert_uc(final short[] argin, final int dim_x, final int dim_y) { final byte[] values = new byte[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (byte) (argin[i] & 0xFF); } attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarCharArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_uc(final byte[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarCharArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final short argin) { final short[] values = new short[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarShortArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final short[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarShortArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final short[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarShortArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final short argin) { final short[] values = new short[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarUShortArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final int argin) { final short[] values = new short[1]; values[0] = (short) (argin & 0xFFFF); attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarUShortArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final short[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarUShortArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final int[] argin) { final short[] values = new short[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (short) (argin[i] & 0xFFFF); } attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarUShortArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final short[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarUShortArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_us(final int[] argin, final int dim_x, final int dim_y) { final short[] values = new short[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (short) (argin[i] & 0xFFFF); } attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarUShortArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final int argin) { final int[] values = new int[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarLongArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final int[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarLongArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final int[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarLongArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final long argin) { final long[] values = new long[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarLong64ArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final long[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarLong64ArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final long[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarLong64ArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final int argin) { final int[] values = new int[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarULongArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values as unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final long argin) { final int[] values = new int[1]; values[0] = (int) argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarULongArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final int[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarULongArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final long[] argin) { final int[] values = new int[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (int) argin[i]; } attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarULongArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final int[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarULongArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute valuesas unsigned. * * @param argin * Attribute values. */ // =========================================== public void insert_ul(final long[] argin, final int dim_x, final int dim_y) { final int[] values = new int[argin.length]; for (int i = 0; i < argin.length; i++) { values[i] = (int) argin[i]; } attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarULongArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert_u64(final long argin) { final long[] values = new long[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarULong64ArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert_u64(final long[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarULong64ArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert_u64(final long[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarULong64ArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final float argin) { final float[] values = new float[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarFloatArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final float[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarFloatArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final float[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarFloatArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final double argin) { final double[] values = new double[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarDoubleArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final double[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarDoubleArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final double[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarDoubleArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final String argin) { final String[] values = new String[1]; values[0] = argin; attrval.r_dim.dim_x = 1; attrval.r_dim.dim_y = 0; DevVarStringArrayHelper.insert(attrval.value, values); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. */ // =========================================== public void insert(final String[] argin) { attrval.r_dim.dim_x = argin.length; attrval.r_dim.dim_y = 0; DevVarStringArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Insert method for attribute values. * * @param argin * Attribute values. * @param dim_x * array dimention in X * @param dim_y * array dimention in Y */ // =========================================== public void insert(final String[] argin, final int dim_x, final int dim_y) { attrval.r_dim.dim_x = dim_x; attrval.r_dim.dim_y = dim_y; DevVarStringArrayHelper.insert(attrval.value, argin); } // =========================================== /** * Throws exception if err_list not null. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== private void manageExceptions(final String method_name) throws DevFailed { if (attrval.err_list != null) { if (attrval.err_list.length > 0) { throw new WrongData(attrval.err_list); } } if (attrval.quality == AttrQuality.ATTR_INVALID) { Except.throw_wrong_data_exception("AttrQuality_ATTR_INVALID", "Attribute quality factor is INVALID", "DeviceAttribute." + method_name + "()"); } } // =========================================== /** * extract method for an DevState Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public DevState[] extractDevStateArray() throws DevFailed { manageExceptions("extractDevStateArray()"); try { if (isArray()) { return DevVarStateArrayHelper.extract(attrval.value); } else { // It is used for state attribute return new DevState[] { DevStateHelper.extract(attrval.value) }; } } catch (final org.omg.CORBA.BAD_PARAM e) { Except .throw_wrong_data_exception( e.toString(), "Exception catched : " + e.toString() + "\n" + "Maybe the attribute value has not been initialized", "DeviceAttribute.extractDevStateArray()"); } return new DevState[0];// never used } // =========================================== /** * extract method for an DevState. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public DevState extractDevState() throws DevFailed { manageExceptions("extractDevState"); if (isArray()) { // It is used for an attribute of DevState enum. final DevState[] array = extractDevStateArray(); return array[0]; } else { // It is used for state attribute return DevStateHelper.extract(attrval.value); } } // =========================================== /** * extract method for an boolean. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public boolean extractBoolean() throws DevFailed { manageExceptions("extractBoolean()"); return DevVarBooleanArrayHelper.extract(attrval.value)[0]; } // =========================================== /** * extract method for an boolean Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public boolean[] extractBooleanArray() throws DevFailed { manageExceptions("extractBooleanArray()"); return DevVarBooleanArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for an unsigned char. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public short extractUChar() throws DevFailed { manageExceptions("extractUChar"); final short[] array = extractUCharArray(); return array[0]; } // =========================================== /** * extract method for an unsigned char Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public short[] extractUCharArray() throws DevFailed { manageExceptions("extractUCharArray()"); final byte[] argout = DevVarCharArrayHelper.extract(attrval.value); final short[] val = new short[argout.length]; final short mask = 0xFF; for (int i = 0; i < argout.length; i++) { val[i] = (short) (mask & argout[i]); } return val; } // =========================================== /** * extract method for an unsigned char Array as a char array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public byte[] extractCharArray() throws DevFailed { manageExceptions("extractCharArray()"); return DevVarCharArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a short. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public short extractShort() throws DevFailed { manageExceptions("xtractShort()"); final short[] array = extractShortArray(); return array[0]; } // =========================================== /** * extract method for a short Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public short[] extractShortArray() throws DevFailed { manageExceptions("extractShortArray"); return DevVarShortArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for an unsigned short. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public int extractUShort() throws DevFailed { manageExceptions("extractUShort"); final int[] array = extractUShortArray(); return array[0]; } // =========================================== /** * extract method for an unsigned short Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public int[] extractUShortArray() throws DevFailed { manageExceptions("extractUShortArray"); final short[] argout = DevVarUShortArrayHelper.extract(attrval.value); final int[] val = new int[argout.length]; for (int i = 0; i < argout.length; i++) { val[i] = 0xFFFF & argout[i]; } return val; } // =========================================== /** * extract method for a long. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public int extractLong() throws DevFailed { manageExceptions("extractLong"); final int[] array = extractLongArray(); return array[0]; } // =========================================== /** * extract method for a long Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public int[] extractLongArray() throws DevFailed { manageExceptions("extractLongArray"); return DevVarLongArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a unsigned long. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long extractULong() throws DevFailed { manageExceptions("extractULong"); final int[] array = DevVarULongArrayHelper.extract(attrval.value); long mask = 0x7fffffff; mask += (long) 1 << 31; return mask & array[0]; } // =========================================== /** * extract method for a unsigned long.array * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long[] extractULongArray() throws DevFailed { manageExceptions("extractULong"); final int[] array = DevVarULongArrayHelper.extract(attrval.value); long mask = 0x7fffffff; mask += (long) 1 << 31; final long[] result = new long[array.length]; for (int i = 0; i < array.length; i++) { result[i] = mask & array[i]; } return result; } // =========================================== /** * extract method for a long. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long extractLong64() throws DevFailed { manageExceptions("extractLong64"); return extractLong64Array()[0]; } // =========================================== /** * extract method for a long Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long[] extractLong64Array() throws DevFailed { manageExceptions("extractLong64Array"); return DevVarLong64ArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a long. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long extractULong64() throws DevFailed { manageExceptions("extractULong64"); return extractULong64Array()[0]; } // =========================================== /** * extract method for a long Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public long[] extractULong64Array() throws DevFailed { manageExceptions("extractULong64Array"); return DevVarULong64ArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a float. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public float extractFloat() throws DevFailed { manageExceptions("extractFloat"); final float[] array = extractFloatArray(); return array[0]; } // =========================================== /** * extract method for a float Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public float[] extractFloatArray() throws DevFailed { manageExceptions("extractFloatArray"); return DevVarFloatArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a double. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public double extractDouble() throws DevFailed { manageExceptions("extractDouble"); final double[] array = extractDoubleArray(); return array[0]; } // =========================================== /** * extract method for a double Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public double[] extractDoubleArray() throws DevFailed { manageExceptions("extractDoubleArray"); return DevVarDoubleArrayHelper.extract(attrval.value); } // =========================================== /** * extract method for a DevState (state attribute). * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public DevState extractState() throws DevFailed { // It is used for state attribute // and kept for backward compatibility return extractDevState(); } // =========================================== /** * extract method for a String. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public String extractString() throws DevFailed { manageExceptions("extractString"); final String[] array = extractStringArray(); return array[0]; } // =========================================== /** * extract method for a double Array. * * @return the extracted value. * @throws DevFailed * in case of read_attribute failed or if AttrQuality is * ATTR_INVALID. */ // =========================================== public String[] extractStringArray() throws DevFailed { manageExceptions("extractStringArray"); return DevVarStringArrayHelper.extract(attrval.value); } // =========================================== // =========================================== public boolean isArray() throws DevFailed { boolean retval = true; try { final TypeCode tc = attrval.value.type(); final TypeCode tc_alias = tc.content_type(); /* TypeCode tc_seq = */ tc_alias.content_type(); } catch (final org.omg.CORBA.TypeCodePackage.BadKind e) { // System.out.println(e); retval = false; } return retval; } // =========================================== // =========================================== // =========================================== /** * Return attribute quality * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public AttrQuality getQuality() throws DevFailed { manageExceptions("getQuality"); return attrval.quality; } // =========================================== /** * Return attribute time value. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public TimeVal getTimeVal() throws DevFailed { manageExceptions("getTimeVal"); return attrval.time; } // =========================================== /** * Return attribute time value in seconds since EPOCH. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public long getTimeValSec() throws DevFailed { manageExceptions("getTimeValSec"); return attrval.time.tv_sec; } // =========================================== /** * Return attribute time value in seconds since EPOCH. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public long getTimeValMillisSec() throws DevFailed { manageExceptions("getTimeValMillisSec"); return attrval.time.tv_sec * 1000L + attrval.time.tv_usec / 1000L; } // =========================================== /** * Return attribute name. */ // =========================================== public String getName() { return attrval.name; } // =========================================== // =========================================== private int DIM_MINI(final int x) { return x == 0 ? 1 : x; } // =========================================== /** * Return number of data read. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getNbRead() throws DevFailed { manageExceptions("getNbRead"); return attrval.r_dim.dim_x * DIM_MINI(attrval.r_dim.dim_y); } // =========================================== /** * Return number of data read object. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public AttributeDim getReadAttributeDim() throws DevFailed { manageExceptions("getReadAttributeDim"); return attrval.r_dim; } // =========================================== /** * Return number of data Write object. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public AttributeDim getWriteAttributeDim() throws DevFailed { manageExceptions("getWriteAttributeDim"); return attrval.w_dim; } // =========================================== /** * Return number of data written. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getNbWritten() throws DevFailed { manageExceptions("getNbWritten"); return attrval.w_dim.dim_x * DIM_MINI(attrval.w_dim.dim_y); } // =========================================== /** * Return attribute dim_x. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getDimX() throws DevFailed { manageExceptions("getDimX"); return attrval.r_dim.dim_x; } // =========================================== /** * Return attribute dim_y. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getDimY() throws DevFailed { manageExceptions("getDimY"); return attrval.r_dim.dim_y; } // =========================================== /** * Return attribute written dim_x. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getWrittenDimX() throws DevFailed { manageExceptions("getWrittenDimX"); return attrval.w_dim.dim_x; } // =========================================== /** * Return attribute written dim_y. * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public int getWrittenDimY() throws DevFailed { manageExceptions("getWrittenDimY"); return attrval.w_dim.dim_y; } // =========================================== /** * Return AttributeValue IDL object. */ // =========================================== public AttributeValue getAttributeValueObject_2() { final AttributeValue attrval_2 = new AttributeValue(); attrval_2.value = attrval.value; attrval_2.name = attrval.name; attrval_2.quality = attrval.quality; attrval_2.time = attrval.time; attrval_2.dim_x = attrval.w_dim.dim_x; attrval_2.dim_y = attrval.w_dim.dim_y; return attrval_2; } // =========================================== /** * Return AttributeValue IDL object. */ // =========================================== public AttributeValue_3 getAttributeValueObject_3() { return attrval; } // =========================================== /** * return time in milliseconds since 1/1/70 * * @throws DevFailed * in case of read_attribute failed */ // =========================================== public long getTime() throws DevFailed { manageExceptions("getTime"); return (long) attrval.time.tv_sec * 1000 + attrval.time.tv_usec / 1000; } // =========================================== // =========================================== public int getType() throws DevFailed { int type = -1; try { final TypeCode tc = attrval.value.type(); // Special case for test if (tc.kind().value() == TCKind._tk_enum) { return TangoConst.Tango_DEV_STATE; } final TypeCode tc_alias = tc.content_type(); final TypeCode tc_seq = tc_alias.content_type(); final TCKind kind = tc_seq.kind(); switch (kind.value()) { case TCKind._tk_void: type = TangoConst.Tango_DEV_VOID; break; case TCKind._tk_boolean: type = TangoConst.Tango_DEV_BOOLEAN; break; case TCKind._tk_char: type = TangoConst.Tango_DEV_CHAR; break; case TCKind._tk_octet: type = TangoConst.Tango_DEV_UCHAR; break; case TCKind._tk_short: type = TangoConst.Tango_DEV_SHORT; break; case TCKind._tk_ushort: type = TangoConst.Tango_DEV_USHORT; break; case TCKind._tk_long: type = TangoConst.Tango_DEV_LONG; break; case TCKind._tk_ulong: type = TangoConst.Tango_DEV_ULONG; break; case TCKind._tk_longlong: type = TangoConst.Tango_DEV_LONG64; break; case TCKind._tk_ulonglong: type = TangoConst.Tango_DEV_ULONG64; break; case TCKind._tk_float: type = TangoConst.Tango_DEV_FLOAT; break; case TCKind._tk_double: type = TangoConst.Tango_DEV_DOUBLE; break; case TCKind._tk_string: type = TangoConst.Tango_DEV_STRING; break; case TCKind._tk_enum: type = TangoConst.Tango_DEV_STATE; break; default: Except.throw_exception("AttributeTypeNotSupported", "Attribute Type (" + kind.value() + ") Not Supported", "DeviceAttribute.getType()"); } } catch (final org.omg.CORBA.TypeCodePackage.BadKind e) { Except.throw_exception("Api_TypeCodePackage.BadKind", "Bad or unknown type ", "DeviceAttribute.getType()"); } return type; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy