//========================================================================= /// <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> >(); }
//============================================================================ /// <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"); }
//============================================================================ /// <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) { }
//========================================================================= /// <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) { }
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 }