コード例 #1
0
ファイル: ApsimHost.cs プロジェクト: wangyakai01/APSIMClassic
    //=========================================================================
    /// <summary>
    /// Create an instance of a component here
    /// </summary>
    /// <param name="compID"></param>
    /// <param name="parentCompID"></param>
    /// <param name="messageCallback"></param>
    //=========================================================================
    public TAPSIMHost(uint compID, uint parentCompID, MessageFromLogic messageCallback,
                      String _STYPE, String _SVERSION, String _SAUTHOR)
        : base(compID, parentCompID, messageCallback, _STYPE, _SVERSION, _SAUTHOR)
    {
        //create an APSIM component here
        Assembly Assemb = Assembly.GetCallingAssembly();    //get the cmp component that uses this library

        Comp = new ApsimComponent(Assemb, (int)compID, this);

        Comp.CompClass = _STYPE;
        Comp.createInstance(Assemb.Location, compID, parentCompID);
        FModuleName = getModulePath();

        entityInfoList = new Dictionary <string, List <TIDSpec> >();
        compInfoList   = new Dictionary <string, List <TComp> >();
    }
コード例 #2
0
ファイル: txt_wrap.cs プロジェクト: wangyakai01/APSIMClassic
        //============================================================================
        /// <summary>
        ///
        /// </summary>
        /// <param name="compID"></param>
        /// <param name="parentCompID"></param>
        /// <param name="messageCallback"></param>
        //============================================================================
        public TextOutInstance(uint compID, uint parentCompID, MessageFromLogic messageCallback)
            : base(compID, parentCompID, messageCallback, _STYPE, _SVERSION, _SAUTHOR)
        {
            if (isWaterCastSim)
            {
                FReporter = new TStaticReporter();
            }
            else
            {
                FReporter = new TTextReporter();
            }
            FRequests      = new List <string>();
            FTimeStep      = new TTimeStep();
            FFirstTime     = true;
            FSummaryStream = null;
            WriteEventIds  = new List <int>();
            RegExtraEvents = new Dictionary <int, string>();

            TInitValue newProperty;

            //addDriver(sName,  ID,      lMinConn, lMaxConn, sUnit, bIsArray, sType)
            addDriver("time", drvTIME, 1, 1, "-", false, TTimeStep.typeTIMESTEP, "", "", 0);

            //addProperty(              sName,         ID,             bRead,bWrite,bInit, sUnit,bIsArray,sType)
            addProperty("title", prpTITLE, true, true, true, "-", false, TTypedValue.STYPE_STR, "Title of the file", "");
            addProperty("filename", prpFILE, true, true, true, "-", false, TTypedValue.STYPE_STR, "Output file", "Full path of the output file");
            addProperty("interval", prpINTV, true, false, true, "-", false, TTypedValue.STYPE_INT4, "Logging interval", "");
            setPropertyRange(prpINTV, 1, 1, 365);

            newProperty = addProperty("intervalunit", prpUNIT, true, false, true, "-", false, TTypedValue.STYPE_STR, "", "");
            newProperty.setDefault("day");

            newProperty = addProperty("outputs", prpOUTS, true, false, true, "-", false, TGenericReporter.typeOUTPUTS, "", "");
            newProperty.item(0).member("decplaces").setValue(2);

            addProperty("summary_file", prpSUMMARYFILE, true, true, true, "-", false, TTypedValue.STYPE_STR, "Summary file name", "");
            addProperty("apsim_format", prpAPSIMFMT, true, true, true, "-", false, TTypedValue.STYPE_BOOL, "Use an APSIM output format", "");
            addProperty("outputfrequency", prpOUTFREQ, true, true, true, "-", true, TTypedValue.STYPE_STR, "Report when these events are received", "");
            addProperty("dateformat", prpDATEFMT, true, true, true, "-", false, TTypedValue.STYPE_STR, "Date format string", "Use: dd/mm/yyyy etc. Ignored if empty string.");

            addWritingEvent(evtEXEC, "update_outputs");
        }
コード例 #3
0
ファイル: compinst.cs プロジェクト: wangyakai01/APSIMClassic
 //============================================================================
 /// <summary>
 ///
 /// </summary>
 /// <param name="compID"></param>
 /// <param name="parentCompID"></param>
 /// <param name="messageCallback"></param>
 //============================================================================
 public TComponentInstance(uint compID, uint parentCompID, MessageFromLogic messageCallback)
     : base(compID, parentCompID, messageCallback)
 {
 }
コード例 #4
0
 //=========================================================================
 /// <summary>
 /// Create an instance of a component here
 /// </summary>
 /// <param name="compID"></param>
 /// <param name="parentCompID"></param>
 /// <param name="messageCallback"></param>
 //=========================================================================
 public TComponentInstance(uint compID, uint parentCompID, MessageFromLogic messageCallback)
     : base(compID, parentCompID, messageCallback, _STYPE, _SVERSION, _SAUTHOR)
 {
 }
コード例 #5
0
ファイル: simcomp.cs プロジェクト: wangyakai01/APSIMClassic
        private uint FNewComponentID;        //unique running list of new component ID's

        //============================================================================
        /// <summary>
        /// Constructor for the Simulation base type.
        /// </summary>
        /// <param name="ID">Component ID.</param>
        /// <param name="parentID">Parent component ID.</param>
        /// <param name="msgCallBack">Callback to the simulation engine.</param>
        /// <param name="sType">Class type.</param>
        /// <param name="sVersion">Version string.</param>
        /// <param name="sAuthor">Author name.</param>
        //============================================================================
        protected TSimComp(uint ID, uint parentID, MessageFromLogic msgCallBack, string sType, string sVersion, string sAuthor)
            : base(ID, parentID, msgCallBack, sType, sVersion, sAuthor)
        {
            FNewComponentID = 1; //increment from here
            FParentID       = 1; //has no parent so point to itself
        }