Esempio n. 1
0
        }//UpdateBalanceData()


        public static void listConnectedBalances( ICswResources CswResources, CswNbtBalanceReturn Return, object Request )
        {

            CswNbtResources NbtResources = (CswNbtResources) CswResources;
            Return.Data.BalanceList = new Collection<SerialBalance>();


            CswNbtMetaDataObjectClass BalanceOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceClass );
            if( null != BalanceOC )
            {

                CswNbtView ExistingBalancesView = new CswNbtView( NbtResources );
                ExistingBalancesView.ViewName = "Connected Balances";
                CswNbtViewRelationship BalanceRel = ExistingBalancesView.AddViewRelationship( BalanceOC, true );
                //only add to the list of returned balances if it has had an announcement in the last 11 minutes
                ExistingBalancesView.AddViewPropertyAndFilter( BalanceRel, BalanceOC.getObjectClassProp( CswNbtObjClassBalance.PropertyName.LastActive ),
                                        SubFieldName: CswEnumNbtSubFieldName.Value,
                                        Value: DateTime.Now.Subtract( TimeSpan.FromMinutes( 11 ) ).ToString(),
                                        FilterMode: CswEnumNbtFilterMode.GreaterThan );

                //only add to the list of returned balances if it is Operational
                ExistingBalancesView.AddViewPropertyAndFilter( BalanceRel, BalanceOC.getObjectClassProp( CswNbtObjClassBalance.PropertyName.Operational ),
                                        SubFieldName: CswEnumNbtSubFieldName.Checked,
                                        Value: CswEnumTristate.True,
                                        FilterMode: CswEnumNbtFilterMode.Equals );

                ExistingBalancesView.AddViewPropertyAndFilter( BalanceRel, BalanceOC.getObjectClassProp( CswNbtObjClassBalance.PropertyName.Quantity ),
                                        SubFieldName: CswEnumNbtSubFieldName.Value,
                                        Value: "0",
                                        FilterMode: CswEnumNbtFilterMode.NotEquals );

                ICswNbtTree BalanceTree = NbtResources.Trees.getTreeFromView( ExistingBalancesView, true, false, false );
                int BalanceCount = BalanceTree.getChildNodeCount();
                if( BalanceCount > 0 )
                {
                    BalanceTree.goToRoot();
                    for( int i = 0; i < BalanceCount; i++ )
                    {
                        BalanceTree.goToNthChild( i );
                        CswNbtObjClassBalance Balance = BalanceTree.getCurrentNode();

                        Return.Data.BalanceList.Add( new SerialBalance
                        {
                            NbtName = Balance.Name.Text,
                            CurrentWeight = Balance.Quantity.Quantity,
                            UnitOfMeasurement = Balance.Quantity.CachedUnitName,
                            NodeId = Balance.NodeId.ToString(),
                            IsActive = ( Balance.LastActive.DateTimeValue + TimeSpan.FromMinutes( 10 ) > DateTime.Now ),
                        } );

                        BalanceTree.goToParentNode();

                    } //for ( int i = 0; i < BalanceCount; i++ )
                } //if( BalanceCount > 0 )

            } //if ( null != BalanceOC )
        }//listConnectedBalances( ICswResources CswResources, CswNbtBalanceReturn Return, object Request )
Esempio n. 2
0
        }//listConnectedBalances( ICswResources CswResources, CswNbtBalanceReturn Return, object Request )




        public static void listBalanceConfigurations( ICswResources CswResources, CswNbtBalanceReturn Return, object Request )
        {

            CswNbtResources NbtResources = (CswNbtResources) CswResources;
            Return.Data.ConfigurationList = new Collection<BalanceConfiguration>();



            CswNbtMetaDataObjectClass BalanceConfigurationOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceConfigurationClass );
            if( null != BalanceConfigurationOC )
            {

                CswNbtView ExistingConfigurationsView = BalanceConfigurationOC.CreateDefaultView( true );

                ICswNbtTree ConfigTree = NbtResources.Trees.getTreeFromView( ExistingConfigurationsView, true, false, false );
                int ConfigCount = ConfigTree.getChildNodeCount();
                if( ConfigCount > 0 )
                {
                    ConfigTree.goToRoot();
                    for( int i = 0; i < ConfigCount; i++ )
                    {
                        ConfigTree.goToNthChild( i );
                        CswNbtObjClassBalanceConfiguration Configuration = ConfigTree.getCurrentNode();

                        Return.Data.ConfigurationList.Add( new BalanceConfiguration
                        {
                            Name = Configuration.Name.Text,
                            RequestFormat = Configuration.RequestFormat.Text,
                            ResponseFormat = Configuration.ResponseFormat.Text,
                            BaudRate = (int) Configuration.BaudRate.Value,
                            ParityBit = Configuration.ParityBit.Text,
                            DataBits = (int) Configuration.DataBits.Value,
                            StopBits = Configuration.StopBits.Text,
                            Handshake = Configuration.Handshake.Text,

                        } );

                        ConfigTree.goToParentNode();

                    } //for ( int i = 0; i < BalanceCount; i++ )

                } //if( BalanceCount > 0 )

            } //if ( null != BalanceOC )


        }//listBalanceConfigurations()
Esempio n. 3
0
        public static void registerBalanceConfiguration( ICswResources CswResources, CswNbtBalanceReturn Return, BalanceConfiguration Request )
        {
            CswNbtResources NbtResources = (CswNbtResources) CswResources;

            CswNbtMetaDataObjectClass BalanceConfigurationOC = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.BalanceConfigurationClass );
            if( null != BalanceConfigurationOC )
            {
                Return.Data.ConfigurationList = new Collection<BalanceConfiguration>();

                CswNbtObjClassBalanceConfiguration BalanceConfiguration = _findConfigurationWithName( NbtResources, Request.Name );

                Action<CswNbtNode> AfterBalanceConfig = delegate( CswNbtNode NewNode )
                    {
                        CswNbtObjClassBalanceConfiguration thisBalanceConfig = NewNode;
                        thisBalanceConfig.Name.Text = Request.Name;
                        thisBalanceConfig.RequestFormat.Text = Request.RequestFormat;
                        thisBalanceConfig.ResponseFormat.Text = Request.ResponseFormat;
                        thisBalanceConfig.BaudRate.Value = Request.BaudRate;
                        thisBalanceConfig.ParityBit.Text = Request.ParityBit;
                        thisBalanceConfig.DataBits.Value = Request.DataBits;
                        thisBalanceConfig.StopBits.Text = Request.StopBits;
                        thisBalanceConfig.Handshake.Text = Request.Handshake;
                    };
                

                if( null == BalanceConfiguration )
                {
                    //there is no configuration with this name yet. Make a new one.
                    CswNbtMetaDataNodeType ConfigNT = BalanceConfigurationOC.FirstNodeType;
                    BalanceConfiguration = NbtResources.Nodes.makeNodeFromNodeTypeId( ConfigNT.NodeTypeId, AfterBalanceConfig );
                }
                else
                {
                    AfterBalanceConfig( BalanceConfiguration.Node );
                    BalanceConfiguration.postChanges( false );
                }

                Return.Data.ConfigurationList.Add( Request );

            }//if ( null != BalanceConfigurationOC )

        } // registerBalanceConfiguration()
Esempio n. 4
0
        } // registerBalanceConfiguration()




        public static void getBalanceInformation( ICswResources CswResources, CswNbtBalanceReturn Return, string Request )
        {

            CswNbtResources NbtResources = (CswNbtResources) CswResources;
            Return.Data.BalanceList = new Collection<SerialBalance>();
            CswPrimaryKey BalanceKey = new CswPrimaryKey();
            BalanceKey.FromString( Request );


            CswNbtObjClassBalance Balance = NbtResources.Nodes[BalanceKey];

            Return.Data.BalanceList.Add( new SerialBalance
            {
                NbtName = Balance.Name.Text,
                CurrentWeight = Balance.Quantity.Quantity,
                UnitOfMeasurement = Balance.Quantity.CachedUnitName,
                NodeId = Balance.NodeId.ToString(),
                IsActive = (Balance.LastActive.DateTimeValue + TimeSpan.FromMinutes(10) > DateTime.Now),
            } );


        }//getBalanceInformation( ICswResources CswResources, CswNbtBalanceReturn Return, string Request )