00001
00051 #include <stdlib.h>
00052 #include <stdio.h>
00053 #include <errno.h>
00054 #include <math.h>
00055 #include "network.h"
00056
00057 #ifdef _DEBUG
00058 EXPORT int cmdargs(int argc, char *argv[])
00059 {
00060 int n=0;
00061 int i;
00062 for (i=0; i<argc; i++)
00063 {
00064 if (strncmp(argv[i],"--debug_node=",13)==0)
00065 {
00066 debug_node = atoi(argv[i]+13);
00067 n++;
00068 }
00069 else if (strncmp(argv[i],"--debug_link=",13)==0)
00070 {
00071 debug_link = atoi(argv[i]+13);
00072 n++;
00073 }
00074 }
00075 if (debug_node>0) gl_debug("network node debugging mode %d", debug_node);
00076 if (debug_link>0) gl_debug("network link debugging mode %d", debug_link);
00077 return n;
00078 }
00079 #endif // _DEBUG
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114 EXPORT CLASS *init(CALLBACKS *fntable, MODULE *module, int argc, char *argv[])
00115 {
00116 #ifdef _DEBUG
00117 cmdargs(argc,argv);
00118 #endif // _DEBUG
00119
00120 if (set_callback(fntable)==NULL)
00121 {
00122 errno = EINVAL;
00123 return NULL;
00124 }
00125 if (gl_global_create("network::acceleration_factor",PT_double,&acceleration_factor,NULL)==NULL){
00126 gl_error( "network could not create global 'network::acceleration_factor'");
00127 return NULL;
00128 } if (gl_global_create("network::convergence_limit",PT_double,&convergence_limit,NULL)==NULL){
00129 gl_error( "network could not create global 'network::convergence_limit'");
00130 return NULL;
00131 } if (gl_global_create("network::mvabase",PT_double,&mvabase,NULL)==NULL){
00132 gl_error( "network could not create global 'network::mvabase'");
00133 return NULL;
00134 } if (gl_global_create("network::kvbase",PT_double,&kvbase,NULL)==NULL){
00135 gl_error( "network could not create global 'network::kvbase'");
00136 return NULL;
00137 } if (gl_global_create("network::model_year",PT_int16,&model_year,NULL)==NULL){
00138 gl_error( "network could not create global 'network::model_year'");
00139 return NULL;
00140 } if (gl_global_create("network::model_case",PT_char8,model_case,NULL)==NULL){
00141 gl_error( "network could not create global 'network::model_case'");
00142 return NULL;
00143 } if (gl_global_create("network::model_name",PT_char32,model_name,NULL)==NULL){
00144 gl_error( "network could not create global 'network::model_name'");
00145 return NULL;
00146 }
00147 CLASS *first = (new node(module))->oclass;
00148 new link(module);
00149 new capbank(module);
00150 new fuse(module);
00151 new relay(module);
00152 new regulator(module);
00153 new transformer(module);
00154 new meter(module);
00155 new generator(module);
00156
00157
00158 return first;
00159 }
00160
00161 CDECL int do_kill()
00162 {
00163
00164 return 0;
00165 }
00166
00167