Skip to content
Snippets Groups Projects
SampledValueControl.ocl 3.26 KiB
Newer Older
Dominique Marcadet's avatar
Dominique Marcadet committed
/**
 *  Copyright (c) 2017 CentraleSupélec & EDF.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 * 
 *  This file is part of the RiseClipse tool
 *  
 *  Contributors:
 *      Computer Science Department, CentraleSupélec
 *      EDF R&D
 *  Contacts:
 *      dominique.marcadet@centralesupelec.fr
 *      aurelie.dehouck-neveu@edf.fr
 *  Web site:
 *      http://wdi.supelec.fr/software/RiseClipse/
 */
import scl: 'http://www.iec.ch/61850/2003/SCL'

import '../Helpers/BaseSimpleTypes.ocl'

package scl

context SampledValueControl

    -- The smvID attribute shall be present
    inv SampledValueControl_smvID_required
        ( 'smvID attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + ')' )
    :
        self.smvID <> null

     -- The smvID attribute shall be valid
    inv SampledValueControl_smvID_valid
        ( 'smvID attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + '). '
          + 'Current value is ' + self.smvID.toString()
        )
    :
        self.smvID <> null implies self.smvID.validSclMessageID()

    -- The smpRate attribute shall be present
    inv SampledValueControl_smpRate_required
        ( 'smpRate attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + ')' )
    :
        self.smpRate <> null

    -- The smpRate attribute shall be an unsignedInt
    -- Note: unsignedInt are EInt in the metaModel
    inv SampledValueControl_smpRate_valid
        ( 'smpRate attribute shall be valid in SampledValueControl (line ' + self.lineNumber.toString() + '). '
          + 'Current value is ' + self.smpRate.toString()
        )
    :
        self.smpRate <> null implies self.smpRate >= 0

    -- The nofASDU attribute shall be present
    inv SampledValueControl_nofASDU_required
        ( 'nofASDU attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + ')' )
    :
        self.nofASDU <> null

    -- The nofASDU attribute shall be an unsignedInt
    -- Note: unsignedInt are EInt in the metaModel
    inv SampledValueControl_nofASDU_required
        ( 'nofASDU attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + '). '
          + 'Current value is ' + self.nofASDU.toString()
        )
    :
        self.nofASDU <> null implies self.nofASDU >= 0

    -- multicast is a boolean
    -- smpMod is a real enum
    -- securityEnable is a real enum
    
    --  The confRev attribute is mandatory for the SV control block
    inv SampledValueControl_confRev_required
        ( 'confRev attribute shall be present in SampledValueControl (line ' + self.lineNumber.toString() + ')' )
    :
        self.confRev <> null
    
    -- The confRev attribute is an unsigned int
    --  Note: it is an Integer in the metamodel
    inv SampledValueControl_confRev_unsignedInt
        ( 'confRev attribute shall be valid in SampledValueControl (line ' + self.lineNumber.toString() + '). '
          + 'Current value is ' + self.confRev.toString()
        )
    :
        self.confRev <> null implies self.confRev >= 0


endpackage