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

org.jpac.opc.AlarmNode Maven / Gradle / Ivy

Go to download

Open-source runtime system for component-based implementation of automation solutions with Java

The newest version!
/**
 * PROJECT   : Elbfisch - java process automation controller (jPac)
 * MODULE    : AlarmNode.java
 * VERSION   : -
 * DATE      : -
 * PURPOSE   : 
 * AUTHOR    : Bernd Schuster, MSK Gesellschaft fuer Automatisierung mbH, Schenefeld
 * REMARKS   : -
 * CHANGES   : CH#n   
 *
 * This file is part of the jPac process automation controller.
 * jPac is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * jPac 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with the jPac If not, see .
 * 
 * This module was implemented on basis of the pi-server example published
 * by Kevin Herron under the following license:
 * 
 * Copyright 2014
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.* 
 */

package org.jpac.opc;

import org.eclipse.milo.opcua.sdk.server.nodes.UaNodeContext;
import org.eclipse.milo.opcua.stack.core.Identifiers;
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
import org.jpac.LogicalValue;
import org.jpac.Value;

/**
 *
 * @author berndschuster
 */
public class AlarmNode extends SignalNode{
    
    public AlarmNode(UaNodeContext context, int namespaceIndex, TreeItem signalNode) {
        super(context, namespaceIndex, signalNode);
    }

    @Override
    protected Value getSignalValue() {
        if (signalValue == null){
            signalValue = new LogicalValue();
        }
        return signalValue;
    }

    @Override
    protected void setSignalValue(DataValue dataValue) {
        saveSignalState();
        ((LogicalValue)signalValue).set((boolean)dataValue.getValue().getValue());
        signalValue.setValid(dataValue.getStatusCode().isGood());
    }

    @Override
    protected NodeId getSignalDataType() {
        return Identifiers.Boolean;
    }

    @Override
    protected void invalidateSignalValue() {
        saveSignalState();
        ((LogicalValue)signalValue).set(false);
        signalValue.setValid(false);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy