Beispiel #1
0
EXPORT int create_node(OBJECT **obj, OBJECT *parent)
{
	*obj = gl_create_object(node_class);
	if (*obj!=NULL)
	{
		last_node = *obj;
		node *my = OBJECTDATA(*obj,node);
		gl_set_parent(*obj,parent);
		my->create();
		return 1;
	}
	return 0;
}
//////////////////////////////////////////////////////////////////////////
// IMPLEMENTATION OF CORE LINKAGE
//////////////////////////////////////////////////////////////////////////
EXPORT int create_refrigerator(OBJECT **obj, OBJECT *parent)
{
	
	*obj = gl_create_object(refrigerator::oclass);
	if (*obj!=NULL)
	{
		refrigerator *my = OBJECTDATA(*obj,refrigerator);;
		gl_set_parent(*obj,parent);
		my->create();
		return 1;
	}
	return 0;
}
Beispiel #3
0
EXPORT int create_link(OBJECT **obj, OBJECT *parent)
{
	*obj = gl_create_object(link_class);
	if (*obj!=NULL)
	{
		last_link = *obj;
		link *my = OBJECTDATA(*obj,link);
		gl_set_parent(*obj,parent);
		my->create();
		return 1;
	}
	return 0;
}
Beispiel #4
0
EXPORT int create_baseMVA(OBJECT **obj)
{
	try
	{
		*obj = gl_create_object(baseMVA::oclass);
		if (*obj!=NULL)
			return OBJECTDATA(*obj,baseMVA)->create();
	}
	catch (char *msg)
	{
		gl_error("create_baseMVA: %s", msg);
	}
	return 0;
}
Beispiel #5
0
EXPORT int create_line(OBJECT **obj)
{
	try
	{
		*obj = gl_create_object(line::oclass);
		if (*obj!=NULL)
			return OBJECTDATA(*obj,line)->create();
	}
	catch (char *msg)
	{
		gl_error("create_line: %s", msg);
	}
	return 0;
}
Beispiel #6
0
EXPORT int create_CLASSNAME(OBJECT **obj)
{
	try
	{
		*obj = gl_create_object(CLASSNAME::oclass);
		if (*obj!=NULL)
			return OBJECTDATA(*obj,CLASSNAME)->create();
	}
	catch (char *msg)
	{
		gl_error("create_CLASSNAME: %s", msg);
	}
	return 0;
}
Beispiel #7
0
EXPORT int create_range(OBJECT **obj, OBJECT *parent)
{
	try {
		*obj = gl_create_object(range::oclass);
		if (*obj!=NULL)
		{
			range *my = OBJECTDATA(*obj,range);;
			gl_set_parent(*obj,parent);
			my->create();
			return 1;
		}
		return 0;
	}
	CREATE_CATCHALL(range);
}
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_relay(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(relay::oclass);
		if (*obj!=NULL)
		{
			relay *my = OBJECTDATA(*obj,relay);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(relay);
}
Beispiel #9
0
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_voltdump(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(voltdump::oclass);
		if (*obj!=NULL)
		{
			voltdump *my = OBJECTDATA(*obj,voltdump);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(voltdump);
}
Beispiel #10
0
EXPORT int create_microturbine(OBJECT **obj, OBJECT *parent) 
{
	try 
	{
		*obj = gl_create_object(microturbine::oclass);
		if (*obj!=NULL)
		{
			microturbine *my = OBJECTDATA(*obj,microturbine);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	} 
	CREATE_CATCHALL(microturbine);
}
Beispiel #11
0
EXPORT int create_windturb_dg(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(windturb_dg::oclass);
		if (*obj!=NULL)
		{
			windturb_dg *my = OBJECTDATA(*obj,windturb_dg);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else 
			return 0;
	}
	CREATE_CATCHALL(windturb_dg);
}
Beispiel #12
0
EXPORT int create_switch(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(switch_object::oclass);
		if (*obj!=NULL)
		{
			switch_object *my = OBJECTDATA(*obj,switch_object);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(switch);
}
EXPORT int create_series_reactor(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(series_reactor::oclass);
		if (*obj!=NULL)
		{
			series_reactor *my = OBJECTDATA(*obj,series_reactor);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(series_reactor);
}
EXPORT int create_inverter(OBJECT **obj, OBJECT *parent) 
{
	try 
	{
		*obj = gl_create_object(inverter::oclass);
		if (*obj!=NULL)
		{
			inverter *my = OBJECTDATA(*obj,inverter);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(inverter);
}
Beispiel #15
0
EXPORT int create_metrics(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(metrics::oclass);
		if (*obj!=NULL)
		{
			metrics *my = OBJECTDATA(*obj,metrics);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(metrics);
}
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_powerflow_library(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(powerflow_library::oclass);
		if (*obj!=NULL)
		{
			powerflow_library *my = OBJECTDATA(*obj,powerflow_library);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(powerflow_library);
}
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_triplex_load(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(triplex_load::oclass);
		if (*obj!=NULL)
		{
			triplex_load *my = OBJECTDATA(*obj,triplex_load);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(triplex_load);
}
Beispiel #18
0
EXPORT int create_solar_service(OBJECT **obj, OBJECT *parent) 
{
	try 
	{
		*obj = gl_create_object(solar_service::oclass);
		if (*obj!=NULL)
		{
			solar_service *my = OBJECTDATA(*obj,solar_service);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	} 
	CREATE_CATCHALL(solar_service);
}
EXPORT int create_substation(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(substation::oclass);
		if (*obj!=NULL)
		{
			substation *my = OBJECTDATA(*obj,substation);
			gl_set_parent(*obj,parent);
			return my->create();
		}
		else
			return 0;
	}
	CREATE_CATCHALL(substation);
}
Beispiel #20
0
EXPORT int create_matlab(OBJECT **obj, OBJECT *parent) 
{
	try 
	{
		*obj = gl_create_object(oclass,sizeof(mxArray*));
		if (*obj!=NULL)
		{
			gl_set_parent(*obj,parent);
			char createcall[1024];

			if (engPutVariable(engine,"object",defaults))
			{
				gl_error("matlab::%s_create(...) unable to set defaults for object", oclass->name);
				throw "create failed";
			}
			if (parent)
			{
				// @todo transfer parent data in matlab create call
				mxArray *pParent = mxCreateStructMatrix(0,0,0,NULL);
				engPutVariable(engine,"parent",pParent);
				sprintf(createcall,"create(object,parent)");
			}
			else
				sprintf(createcall,"create(object,[])");
			if (engEvalString(engine,createcall)!=0)
			{
				gl_error("matlab::%s_create(...) unable to evaluate '%s' in Matlab", oclass->name, createcall);
				throw "create failed";
			}
			else
				gl_matlab_output();
			mxArray *ans= engGetVariable(engine,"ans");
			mxArray **my = OBJECTDATA(*obj,mxArray*);
			if (ans && mxIsClass(ans,oclass->name))
				*my = engGetVariable(engine,"ans");
			else
			{
				*my = NULL;
				gl_error("matlab::@%s/create(...) failed to return an object of class %s",oclass->name,oclass->name);
				throw "create failed";
			}
			return 1;
		}
		else
			throw "create failed due to memory allocation failure";
	} 
EXPORT int create_waterheater(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(waterheater::oclass);
		if (*obj!=NULL)
		{
			waterheater *my = OBJECTDATA(*obj,waterheater);;
			gl_set_parent(*obj,parent);
			my->create();
			return 1;
		}
		else
			return 0;
	}
	CREATE_CATCHALL(waterheater);
}
Beispiel #22
0
EXPORT int create_plugload(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(plugload::oclass);
		if (*obj!=NULL)
		{
			plugload *my = OBJECTDATA(*obj,plugload);;
			gl_set_parent(*obj,parent);
			my->create();
			return 1;
		}
		else
			return 0;
	}
	CREATE_CATCHALL(plugload);
}
EXPORT int create_virtual_battery(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(virtual_battery::oclass);
		if (*obj!=NULL)
		{
			virtual_battery *my = OBJECTDATA(*obj,virtual_battery);;
			gl_set_parent(*obj,parent);
			my->create();
			return 1;
		}
		else
			return 0;
	}
	CREATE_CATCHALL(virtual_battery);
}
Beispiel #24
0
EXPORT int create_house_a(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(house::oclass);
		if (*obj!=NULL)
		{
			house *my = OBJECTDATA(*obj,house);;
			gl_set_parent(*obj,parent);
			my->create();
			return 1;
		}
		else
			return 0;
	}
	CREATE_CATCHALL(house_a);
}
Beispiel #25
0
EXPORT int create_multizone(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(multizone::oclass);
		if (*obj!=NULL)
		{
			multizone *my = OBJECTDATA(*obj,multizone);
			gl_set_parent(*obj,parent);
			return my->create();
		}
	}
	catch (char *msg)
	{
		gl_error("create_multizone: %s", msg);
	}
	return 1;
}
Beispiel #26
0
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_recloser(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(recloser::oclass);
		if (*obj!=NULL)
		{
			recloser *my = OBJECTDATA(*obj,recloser);
			gl_set_parent(*obj,parent);
			return my->create();
		}
	}
	catch (const char *msg)
	{
		gl_error("create_recloser: %s", msg);
	}
	return 0;
}
Beispiel #27
0
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_triplex_node(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(triplex_node::oclass);
		if (*obj!=NULL)
		{
			triplex_node *my = OBJECTDATA(*obj,triplex_node);
			gl_set_parent(*obj,parent);
			return my->create();
		}	
	}
	catch (const char *msg)
	{
		gl_error("create_triplex_node: %s", msg);
	}
	return 0;
}
Beispiel #28
0
EXPORT int create_energy_storage(OBJECT **obj, OBJECT *parent)
{
    try
    {
        *obj = gl_create_object(energy_storage::oclass,sizeof(energy_storage));
        if (*obj!=NULL)
        {
            energy_storage *my = OBJECTDATA(*obj,energy_storage);
            gl_set_parent(*obj,parent);
            return my->create();
        }
    }
    catch (char *msg)
    {
        gl_error("create_energy_storage: %s", msg);
    }
    return 0;
}
Beispiel #29
0
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_billdump(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(billdump::oclass);
		if (*obj!=NULL)
		{
			billdump *my = OBJECTDATA(*obj,billdump);
			gl_set_parent(*obj,parent);
			return my->create();
		}
	}
	catch (const char *msg)
	{
		gl_error("create_billdump: %s", msg);
	}
	return 0;
}
/**
* REQUIRED: allocate and initialize an object.
*
* @param obj a pointer to a pointer of the last object in the list
* @param parent a pointer to the parent of this object
* @return 1 for a successfully created object, 0 for error
*/
EXPORT int create_powerflow_object(OBJECT **obj, OBJECT *parent)
{
	try
	{
		*obj = gl_create_object(powerflow_object::oclass);
		if (*obj!=NULL)
		{
			powerflow_object *my = OBJECTDATA(*obj,powerflow_object);
			gl_set_parent(*obj,parent);
			return my->create();
		}
	}
	catch (const char *msg)
	{
		gl_error("create_powerflow_object: %s", msg);
	}
	return 0;
}