예제 #1
0
        //==========================================================================
        /// <summary>
        /// Returns the current value of owned properties
        /// </summary>
        //==========================================================================
        public override void readProperty(int propertyID, uint requestorID, ref TPropertyInfo aValue)
        {
            TMainOutputSpecifier outputItem;
            uint i;

            switch (propertyID)
            {
            case prpFILE:
            {
                aValue.setValue(FReporter.FileName);
            } break;

            case prpINTV:
            {
                aValue.setValue(FReporter.ReportInterval);
            } break;

            case prpUNIT:
            {
                aValue.setValue(TTimeValue.TIMETEXTS[FReporter.IntervalUnit - 1]);
            } break;

            case prpOUTS:
            {
                i = 0;
                aValue.setElementCount(0);
                outputItem = FReporter.getVariable(0);
                while (outputItem != null)
                {
                    i++;
                    aValue.setElementCount(i);
                    aValue.item(i).member("varname").setValue(outputItem.sName);
                    aValue.item(i).member("alias").setValue(outputItem.sAlias);
                    aValue.item(i).member("decplaces").setValue(outputItem.iDecPl);
                    aValue.item(i).member("aggreg").setValue(TGenericReporter.sAggregText[(int)outputItem.Aggreg]);
                    outputItem = FReporter.getVariable(i);
                }
            } break;

            case prpSUMMARYFILE:
            {
                if (FSummaryStream != null)
                {
                    aValue.setValue(propertyList[prpSUMMARYFILE].asStr());
                }
                else
                {
                    aValue.setValue("");
                }
            } break;

            case prpAPSIMFMT:
            {
                aValue.setValue(FReporter.ApsimFMT);
            } break;

            case prpTITLE:
            {
                aValue.setValue(FReporter.Title);
            } break;

            case prpOUTFREQ:
            {
                aValue.setElementCount((uint)RegExtraEvents.Count);
                uint idx = 1;
                foreach (KeyValuePair <int, String> pair in RegExtraEvents)
                {
                    aValue.item(idx).setValue(pair.Value);
                    idx++;
                }
            } break;

            case prpDATEFMT:
            {
                aValue.setValue(FReporter.DateFMT);
            }
            break;
            }
        }
예제 #2
0
 //=========================================================================
 /// <summary>
 /// Std properties are already taken care of in the parent class.
 /// Now do a look up of the specialised component properties.
 /// Parent class then sends this value in a ReplyValue msg.
 /// </summary>
 /// <param name="propertyID"></param>
 /// <param name="requestorID"></param>
 /// <param name="aValue">Return value is stored here.</param>
 //=========================================================================
 public override void readProperty(int propertyID, uint requestorID, ref TPropertyInfo aValue)
 {
     Comp.onQueryValue(propertyID, requestorID, ref aValue);
 }