//<Summary>
 //get value from a simulation
 //</Summary>
 public override void recvFromSim(sinter_Sim o_sim)
 {
     //this reads back the inputs
     // It's handy for default generation.
     //            try
     //            {
     if (!isSetting)
     {
         if (type == sinter_IOType.si_DY_DOUBLE)
         {
             o_value = o_sim.recvValueFromSim <double>(addressStrings[0]);
             ((double[])o_TimeSeriesValues)[o_TimeSeriesIndex] = (double)o_value;  //Store it properly in the timevalues
         }
         else if (type == sinter_IOType.si_DY_INTEGER)
         {
             o_value = o_sim.recvValueFromSim <int>(addressStrings[0]);
             ((int[])o_TimeSeriesValues)[o_TimeSeriesIndex] = (int)o_value;  //Store it properly in the timevalues
         }
         else if (type == sinter_IOType.si_DY_STRING)
         {
             o_value = o_sim.recvValueFromSim <String>(addressStrings[0]);
             ((string[])o_TimeSeriesValues)[o_TimeSeriesIndex] = (string)o_value;  //Store it properly in the timevalues
         }
     }
 }
 //<Summary>
 //get value from a simulation
 //</Summary>
 public virtual void recvFromSim(sinter_Sim o_sim)
 {
     //this reads back the inputs
     // It's handy for default generation.
     //            try
     //            {
     if (!isSetting)
     {
         if (type == sinter_IOType.si_DOUBLE)
         {
             o_value = o_sim.recvValueFromSim <double>(addressStrings[0]);
         }
         else if (type == sinter_IOType.si_INTEGER)
         {
             o_value = o_sim.recvValueFromSim <int>(addressStrings[0]);
         }
         else if (type == sinter_IOType.si_STRING)
         {
             o_value = o_sim.recvValueFromSim <String>(addressStrings[0]);
         }
     }
 }