예제 #1
0
void unistallService(LPCTSTR serviceName) {
    
    SC_HANDLE hService = OpenService(scm,
		serviceName,
		SERVICE_ALL_ACCESS);
    
    if (hService == NULL) {
		DWORD err = GetLastError();
		char * msg = getErrorMsg(err, serviceName);
		if (msg == 0) {
			fprintf(stderr, 
				"Cannot open service %s: unrecognized error 0x%02x\n", 
				serviceName, err);
		} else {
			fprintf(stderr, "Cannot open service %s: %s\n", serviceName, msg);
		}
		return;
    }
	
    if((DeleteService(hService))) {
		printf("Removed service %s.\n", serviceName);
    } else {
		DWORD err = GetLastError();
		char *msg = getErrorMsg(err, serviceName);
		if (msg == 0) {
			fprintf(stderr, 
				"Cannot remove service %s: unrecognized error %dL\n", 
				serviceName, err);
		} else {
			fprintf(stderr, "Cannot remove service %s: %s\n", 
				serviceName, msg);
		}
    }
}
예제 #2
0
int SqliteDatabase::connect(bool create) {
  if (host.empty() || db.empty())
    return DB_CONNECTION_NONE;

  //CLog::Log(LOGDEBUG, "Connecting to sqlite:%s:%s", host.c_str(), db.c_str());

  std::string db_fullpath = URIUtils::AddFileToFolder(host, db);

  try
  {
    disconnect();
    int flags = SQLITE_OPEN_READWRITE;
    if (create)
      flags |= SQLITE_OPEN_CREATE;
    if (sqlite3_open_v2(db_fullpath.c_str(), &conn, flags, NULL)==SQLITE_OK)
    {
      sqlite3_busy_handler(conn, busy_callback, NULL);
      char* err=NULL;
      if (setErr(sqlite3_exec(getHandle(),"PRAGMA empty_result_callbacks=ON",NULL,NULL,&err),"PRAGMA empty_result_callbacks=ON") != SQLITE_OK)
      {
        throw DbErrors(getErrorMsg());
      }
      active = true;
      return DB_CONNECTION_OK;
    }

    return DB_CONNECTION_NONE;
  }
  catch(...)
  {
  }
  return DB_CONNECTION_NONE;
}
예제 #3
0
int CMMLCalc::CreateVM( enum CDsrMathModel taskID, long subtaskID )
{
	int iRes = CMMLError_NONE;
	if( !m_dsrSymbolTable || !m_ast )
		iRes = CMMLError_NoAST;
	else
	{
		// Create Virtual PC
		m_dsrSymbolTable->setMessanger( &m_dmm, m_dmmPage, QString( m_taskName ) );
		m_dsrSymbolTable->setTaskID( taskID, subtaskID );
		m_dsrSymbolTable->allocateVariables();
		m_vm = new CDSR_VMEval( m_dsrSymbolTable );
	    
		// Calculate types
		m_ast->setObjectContextThroughTree();
		m_ast->placeDataType( *m_dsrSymbolTable, true );
	    
		if( m_ast->getDataType() && m_ast->getDataType()->getType() != DSRDATA_TYPE_ERROR )
		{
			m_ast->setLevelThroughTree();
			m_vm->getInstruction( m_ast );
			if( m_vm->isError() )
				iRes = CMMLError_Semantic;
		}
		else
			iRes = CMMLError_Semantic;
	}

	m_dmm.AddLine( m_dmmPage, getErrorMsg(iRes), QString(m_taskName) );
	return iRes;
}
예제 #4
0
bool NCSqlQuery::exec( const QString & qs )
{
	bool ok = false;
	QTextCodec* codec = QTextCodec::codecForName(NCSQL_DEFAULTCODEC);
	
	if ( qs.isEmpty() )
		ok = QSqlQuery::exec();
	else
		ok = QSqlQuery::exec( (const char*)(codec->fromUnicode( qs )) );

	if ( !ok )
		logSqlError( qs, getErrorMsg() );
		
	if ( isActive() )
		saveColumns();
	else
		ok = false;
		
	//recinfo = sqlquery->driver()->recordInfo( *sqlquery );

	#ifdef NCSQL_ALWAYSLOG
		logSqlError( qs, "OK." );
	#endif

		
	#ifdef NCSQL_DEBUG_ON
		qDebug( "**************************************" );
		qDebug( "Execute NCSqlQuery::exec(...)" );
		qDebug( "**************************************" );
		qDebug( "%s", qPrintable(qs) );
		qDebug( "**************************************" );
	#endif
		
	return ok;
}
예제 #5
0
/* Derivatives for root system: '<Root>' */
void Crane_derivatives(void)
{
  /* S-Function Block: <S10>/Block#1 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Crane_DWork.Block1_PWORK;
    if (sFcnDerivativesMethod(mechWork->mechanism, &((StateDerivatives_Crane *)
          Crane_M->ModelData.derivs)->Block1_CSTATE[0])) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Crane_M, errorMsg);
        return;
      }
    }
  }

  /* Derivatives for Integrator: '<S9>/Integrator' */
  ((StateDerivatives_Crane *) Crane_M->ModelData.derivs)->Integrator_CSTATE[0] =
    Crane_B.Sum[0];
  ((StateDerivatives_Crane *) Crane_M->ModelData.derivs)->Integrator_CSTATE[1] =
    Crane_B.Sum[1];
  ((StateDerivatives_Crane *) Crane_M->ModelData.derivs)->Integrator_CSTATE[2] =
    Crane_B.Sum[2];
}
예제 #6
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    no(false)
{
   if(!IsAdmin()){
       this->hide();
       QMessageBox msg(this);
       msg.setText("Для коректної роботи програмі необхідні права адміністратора!");
       msg.exec();
       this->no = true;
       ShellExecute(NULL,
           L"runas",
           qApp->applicationFilePath().toStdWString().c_str(),
           L"",
           NULL,                        // default dir
           SW_SHOWNORMAL
       );
       return;
   }

   ui->setupUi(this);

   int res = checkWlanHosteed();
   QString msg = QString("%2\r\n%1").arg(getErrorMsg(res)).arg((!IsAdmin())?"is not Admin :(":"is Admin :)");
   ui->textBrowser->setPlainText(msg);
   qDebug() << msg;

}
예제 #7
0
int CMMLCalc::execMain()
{
	if( !m_vm )
	{
		m_dmm.AddLine( m_dmmPage, getErrorMsg(CMMLError_NoVM), QString(m_taskName) );
		return CMMLError_NoVM;
	}

	return m_vm->execCommand();
}
예제 #8
0
CDsrAST_Node* CMMLCalc::Create_apply( AST_TXML_Tag* applyNode, std::vector<AST_TXML_Tag*>& nodeCollection )
{
	if( !m_dsrSymbolTable ) return NULL;
	if( !applyNode || !applyNode->getTags() || nodeCollection.size() < 2 )
	{
		m_dmm.AddLine( m_dmmPage, getErrorMsg(CMMLError_ArgNumberMismatch), QString(m_taskName), applyNode->getLine(), applyNode->getTagName() );
		return NULL;
	}

	CDsrAST_Node *pRes = NULL;
	int iRes = CMMLError_NONE;

	QString opName = nodeCollection[ 0 ]->getTagName();
	int opID = mapMMLTag2DsrOp( opName );

	if( opID >= FUNCTION_STD_NONE && opID < FUNCTION_STD_LAST )
		pRes = Create_apply_DsrOp( applyNode, nodeCollection, opName, opID, nodeCollection[ 0 ]->getLine(), iRes );
	else
		pRes = Create_apply_GeneralCall( applyNode, nodeCollection, opName, opID, nodeCollection[ 0 ]->getLine(), iRes );

	if( iRes != CMMLError_NONE )
		m_dmm.AddLine( m_dmmPage, getErrorMsg(iRes), QString(m_taskName), applyNode->getLine(), opName );
	return pRes;
}
예제 #9
0
void StreamSocket::bind(void)
{
    m_s = socket(AF_INET, SOCK_STREAM, 0);
    if (m_s == INVALID_SOCKET)
    {
        throw SocketException(getErrorMsg());
    }	
	
	int one = 1;
	setsockopt(m_s, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(int));

	struct sockaddr_in addr;
	memset(&addr, 0, sizeof(addr));
    addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = inet_addr(m_ip.c_str());//INADDR_ANY;
	addr.sin_port = htons(m_port);
	
	if(::bind(m_s, (struct sockaddr*)&addr, sizeof(addr)) < 0)
	{
		throw BindFailureException(getErrorMsg());
	}

	::listen(m_s, 10240);
	
    // 把socket设置成非阻塞的
#if defined WIN32
    u_long flag = 1;
    if(ioctlsocket(m_s, FIONBIO, &flag) < 0)
#elif defined __sun__ || defined __linux__
    int flags;
	if ((flags = fcntl(m_s, F_GETFL, 0)) < 0 || fcntl(m_s, F_SETFL, flags | O_NONBLOCK) < 0)
#endif
	{
		throw FCNTLException(getErrorMsg());
	}
}
예제 #10
0
파일: I2PControl.cpp 프로젝트: 01BTC10/i2pd
std::string I2PControlSession::Response::toJsonString() const
{
    std::ostringstream oss;
    oss << "{\"id\":" << id << ",\"result\":{";                  
    for(auto it = parameters.begin(); it != parameters.end(); ++it) {
        if(it != parameters.begin())
            oss << ',';
        oss << '"' << it->first << "\":" << it->second;
    }
    oss << "},\"jsonrpc\":\"" << version << '"';
    if(error != ErrorCode::None)
        oss << ",\"error\":{\"code\":" << -static_cast<int>(error)
            << ",\"message\":\"" << getErrorMsg() << "\"" << "}";
    oss << "}";
    return oss.str();
}
예제 #11
0
/* Derivatives for root system: '<Root>' */
void Mechanics_derivatives(void)
{
  /* S-Function Block: <S6>/Block#1 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Mechanics_DWork.Block1_PWORK;
    if (sFcnDerivativesMethod(mechWork->mechanism, &((StateDerivatives_Mechanics
           *) Mechanics_M->ModelData.derivs)->Block1_CSTATE[0])) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Mechanics_M, errorMsg);
        return;
      }
    }
  }
}
예제 #12
0
/* Projection for root system: '<Root>' */
void Crane_projection(void)
{
  /* S-Function Block: <S10>/Block#1 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Crane_DWork.Block1_PWORK;
    mechWork->genSimData.time = Crane_M->Timing.t[0];
    if (sFcnProjectionMethod(mechWork->mechanism,&(mechWork->genSimData))) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Crane_M, errorMsg);
        return;
      }
    }
  }
}
예제 #13
0
int SqliteDatabase::connect() {
  try {
    disconnect();
    if (sqlite3_open(db.c_str(),&conn/*,NULL*/)==SQLITE_OK) {
      //cout << "Connected!\n";
      sqlite3_busy_handler(conn, busy_callback,NULL);
      char* err=NULL;
      if (setErr(sqlite3_exec(getHandle(),"PRAGMA empty_result_callbacks=ON",NULL,NULL,&err),"PRAGMA empty_result_callbacks=ON") != SQLITE_OK) {
        throw DbErrors(getErrorMsg());
      }
      active = true;
      return DB_CONNECTION_OK;
    }
    CLog::Log(LOGERROR, "unable to open database:%s (%u)",
              db.c_str(), GetLastError());
    return DB_CONNECTION_NONE;
  }
  catch(...)
  {
    CLog::Log(LOGERROR, "unable to open database:%s (%u)",
              db.c_str(), GetLastError());
  }
  return DB_CONNECTION_NONE;
}
예제 #14
0
/* Model output function */
void Crane_output(int_T tid)
{
  /* local block i/o variables */
  real_T rtb_Falcon_o1[3];
  real_T rtb_Gain4[3];
  boolean_T rtb_Falcon_o2[4];

  /* Update absolute time of base rate at minor time step */
  if (rtmIsMinorTimeStep(Crane_M)) {
    Crane_M->Timing.t[0] = rtsiGetT(&Crane_M->solverInfo);
  }

  if (rtmIsMajorTimeStep(Crane_M)) {
    /* set solver stop time */
    rtsiSetSolverStopTime(&Crane_M->solverInfo,
                          ((Crane_M->Timing.clockTick0+1)*
      Crane_M->Timing.stepSize0));
  }                                    /* end MajorTimeStep */

  {
    real_T rtb_Product_idx;
    real_T rtb_Product_idx_0;
    real_T rtb_Product_idx_1;
    real_T rtb_Product1_idx;
    real_T rtb_Product1_idx_0;
    real_T rtb_Product1_idx_1;

    /* S-Function Block: <S10>/Block#1 */
    {
      _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Crane_DWork.Block1_PWORK;
      mechWork->genSimData.time = Crane_M->Timing.t[0];
      mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Crane_M);
      if (kinematicSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
           &(mechWork->outSimData))) {
        {
          const ErrorRecord *err = getErrorMsg();
          static char_T errorMsg[1024];
          sprintf(errorMsg,
                  err->errorMsg,
                  err->blocks[0],
                  err->blocks[1],
                  err->blocks[2],
                  err->blocks[3],
                  err->blocks[4]);
          rtmSetErrorStatus(Crane_M, errorMsg);
          return;
        }
      }
    }

    /* Gain: '<S2>/gain_1' */
    Crane_B.gain_1[0] = Crane_P.gain_1_Gain * Crane_B.Block1_o1[0];
    Crane_B.gain_1[1] = Crane_P.gain_1_Gain * Crane_B.Block1_o1[1];
    Crane_B.gain_1[2] = Crane_P.gain_1_Gain * Crane_B.Block1_o1[2];
    if (rtmIsMajorTimeStep(Crane_M) &&
        Crane_M->Timing.TaskCounters.TID[1] == 0) {
      /* Memory: '<Root>/Memory' */
      Crane_B.Memory[0] = Crane_DWork.Memory_PreviousInput[0];
      Crane_B.Memory[1] = Crane_DWork.Memory_PreviousInput[1];
      Crane_B.Memory[2] = Crane_DWork.Memory_PreviousInput[2];
    }

    /* Sum: '<S9>/Sum' */
    Crane_B.Sum[0] = Crane_B.Memory[0] - Crane_B.gain_1[0];
    Crane_B.Sum[1] = Crane_B.Memory[1] - Crane_B.gain_1[1];
    Crane_B.Sum[2] = Crane_B.Memory[2] - Crane_B.gain_1[2];

    /* Product: '<S9>/Product' incorporates:
     *  Constant: '<Root>/Constant2'
     */
    rtb_Product_idx = Crane_P.Constant2_Value * Crane_B.Sum[0];
    rtb_Product_idx_0 = Crane_P.Constant2_Value * Crane_B.Sum[1];
    rtb_Product_idx_1 = Crane_P.Constant2_Value * Crane_B.Sum[2];

    /* Integrator: '<S9>/Integrator' */
    rtb_Gain4[0] = Crane_X.Integrator_CSTATE[0];
    rtb_Gain4[1] = Crane_X.Integrator_CSTATE[1];
    rtb_Gain4[2] = Crane_X.Integrator_CSTATE[2];

    /* Product: '<S9>/Product1' incorporates:
     *  Constant: '<Root>/Constant5'
     */
    rtb_Product1_idx = Crane_P.Constant5_Value * rtb_Gain4[0];
    rtb_Product1_idx_0 = Crane_P.Constant5_Value * rtb_Gain4[1];
    rtb_Product1_idx_1 = Crane_P.Constant5_Value * rtb_Gain4[2];

    /* Derivative Block: '<S9>/Derivative' */
    {
      real_T t = Crane_M->Timing.t[0];
      real_T timeStampA = Crane_DWork.Derivative_RWORK.TimeStampA;
      real_T timeStampB = Crane_DWork.Derivative_RWORK.TimeStampB;
      if (timeStampA >= t && timeStampB >= t) {
        rtb_Gain4[0] = 0.0;
        rtb_Gain4[1] = 0.0;
        rtb_Gain4[2] = 0.0;
      } else {
        real_T deltaT;
        real_T *lastBank = &Crane_DWork.Derivative_RWORK.TimeStampA;
        if (timeStampA < timeStampB) {
          if (timeStampB < t) {
            lastBank += 4;
          }
        } else if (timeStampA >= t) {
          lastBank += 4;
        }

        deltaT = t - *lastBank++;
        rtb_Gain4[0] = (Crane_B.Sum[0] - *lastBank++) / deltaT;
        rtb_Gain4[1] = (Crane_B.Sum[1] - *lastBank++) / deltaT;
        rtb_Gain4[2] = (Crane_B.Sum[2] - *lastBank++) / deltaT;
      }
    }

    /* Sum: '<S9>/Sum1' incorporates:
     *  Constant: '<Root>/Constant6'
     *  Product: '<S9>/Product2'
     */
    Crane_B.Sum1[0] = (rtb_Product_idx + rtb_Product1_idx) +
      Crane_P.Constant6_Value * rtb_Gain4[0];
    Crane_B.Sum1[1] = (rtb_Product_idx_0 + rtb_Product1_idx_0) +
      Crane_P.Constant6_Value * rtb_Gain4[1];
    Crane_B.Sum1[2] = (rtb_Product_idx_1 + rtb_Product1_idx_1) +
      Crane_P.Constant6_Value * rtb_Gain4[2];

    /* Gain: '<Root>/Gain4' */
    rtb_Gain4[0] = Crane_P.Gain4_Gain * Crane_B.Sum1[0];
    rtb_Gain4[1] = Crane_P.Gain4_Gain * Crane_B.Sum1[1];
    rtb_Gain4[2] = Crane_P.Gain4_Gain * Crane_B.Sum1[2];

    /* Saturate: '<Root>/Saturation' */
    Crane_B.Saturation[0] = rt_SATURATE(rtb_Gain4[2],
      Crane_P.Saturation_LowerSat, Crane_P.Saturation_UpperSat);
    Crane_B.Saturation[1] = rt_SATURATE(rtb_Gain4[0],
      Crane_P.Saturation_LowerSat, Crane_P.Saturation_UpperSat);
    Crane_B.Saturation[2] = rt_SATURATE(rtb_Gain4[1],
      Crane_P.Saturation_LowerSat, Crane_P.Saturation_UpperSat);
    if (rtmIsMajorTimeStep(Crane_M) &&
        Crane_M->Timing.TaskCounters.TID[1] == 0) {
      /* S-Function Block: Crane/Falcon (falcon_block) */
      {
        t_error result;
        double force_vector[3];
        double position[3];
        t_int read_buttons;
        force_vector[0] = Crane_B.Saturation[0];
        force_vector[1] = Crane_B.Saturation[1];
        force_vector[2] = Crane_B.Saturation[2];

        /* read the position and buttons, and output the requested force to the falcon */
        result = falcon_read_write(Crane_DWork.Falcon_Falcon, position,
          &read_buttons, force_vector);
        if (result < 0) {
          msg_get_error_messageA(NULL, result, _rt_error_message, sizeof
            (_rt_error_message));
          rtmSetErrorStatus(Crane_M, _rt_error_message);
          return;
        }

        rtb_Falcon_o1[0] = position[0];
        rtb_Falcon_o1[1] = position[1];
        rtb_Falcon_o1[2] = position[2];
        rtb_Falcon_o2[0] = ((read_buttons & 0x01) != 0);
        rtb_Falcon_o2[1] = ((read_buttons & 0x02) != 0);
        rtb_Falcon_o2[2] = ((read_buttons & 0x04) != 0);
        rtb_Falcon_o2[3] = ((read_buttons & 0x08) != 0);
      }

      /* Gain: '<Root>/Gain3' */
      Crane_B.Gain3[0] = Crane_P.Gain3_Gain * rtb_Falcon_o1[0];
      Crane_B.Gain3[1] = Crane_P.Gain3_Gain * rtb_Falcon_o1[1];
      Crane_B.Gain3[2] = Crane_P.Gain3_Gain * rtb_Falcon_o1[2];

      /* Constant: '<Root>/Constant' */
      Crane_B.Constant = Crane_P.Constant_Value;

      /* Stop: '<Root>/Stop Simulation' */
      if (rtb_Falcon_o2[0] || rtb_Falcon_o2[1] || rtb_Falcon_o2[2] ||
          rtb_Falcon_o2[3]) {
        rtmSetStopRequested(Crane_M, 1);
      }

      /* Gain: '<Root>/Gain2' incorporates:
       *  Constant: '<Root>/Constant1'
       */
      Crane_B.Gain2 = Crane_P.Gain2_Gain * Crane_P.Constant1_Value;

      /* Gain: '<Root>/Gain1' incorporates:
       *  Constant: '<Root>/Constant3'
       */
      Crane_B.Gain1 = Crane_P.Gain1_Gain * Crane_P.Constant3_Value;
    }

    /* Gain: '<Root>/Gain' incorporates:
     *  Sin: '<Root>/Sine Wave'
     */
    Crane_B.Gain = (sin(Crane_P.SineWave_Freq * Crane_M->Timing.t[0] +
                        Crane_P.SineWave_Phase) * Crane_P.SineWave_Amp +
                    Crane_P.SineWave_Bias) * Crane_P.Gain_Gain;
    if (rtmIsMajorTimeStep(Crane_M) &&
        Crane_M->Timing.TaskCounters.TID[1] == 0) {
      /* Gain: '<S10>/_gravity_conversion' incorporates:
       *  Constant: '<S8>/SOURCE_BLOCK'
       */
      Crane_B._gravity_conversion[0] = Crane_P._gravity_conversion_Gain *
        Crane_P.SOURCE_BLOCK_Value[0];
      Crane_B._gravity_conversion[1] = Crane_P._gravity_conversion_Gain *
        Crane_P.SOURCE_BLOCK_Value[1];
      Crane_B._gravity_conversion[2] = Crane_P._gravity_conversion_Gain *
        Crane_P.SOURCE_BLOCK_Value[2];
    }

    /* S-Function Block: <S10>/Block#2 */
    {
      _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Crane_DWork.Block2_PWORK;
      mechWork->genSimData.time = Crane_M->Timing.t[0];
      mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Crane_M);
      if (dynamicSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
           &(mechWork->outSimData))) {
        {
          const ErrorRecord *err = getErrorMsg();
          static char_T errorMsg[1024];
          sprintf(errorMsg,
                  err->errorMsg,
                  err->blocks[0],
                  err->blocks[1],
                  err->blocks[2],
                  err->blocks[3],
                  err->blocks[4]);
          rtmSetErrorStatus(Crane_M, errorMsg);
          return;
        }
      }
    }

    /* S-Function Block: <S10>/Block#3 */
    {
      _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Crane_DWork.Block3_PWORK;
      mechWork->genSimData.time = Crane_M->Timing.t[0];
      mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Crane_M);
      if (eventSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
           &(mechWork->outSimData))) {
        {
          const ErrorRecord *err = getErrorMsg();
          static char_T errorMsg[1024];
          sprintf(errorMsg,
                  err->errorMsg,
                  err->blocks[0],
                  err->blocks[1],
                  err->blocks[2],
                  err->blocks[3],
                  err->blocks[4]);
          rtmSetErrorStatus(Crane_M, errorMsg);
          return;
        }
      }
    }
  }

  UNUSED_PARAMETER(tid);
}
예제 #15
0
void MdlInitialize(void)
{
  /* S-Function Block: <S10>/Block#1 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Crane_M)) {
      const int locationFlag = __LINE__;
      if (rt_mech_visited_loc_Crane_63fd34a2 == 0 ) {
        rt_mech_visited_loc_Crane_63fd34a2 = locationFlag;
      }

      if (rt_mech_visited_loc_Crane_63fd34a2 == locationFlag ) {
        if ((++rt_mech_visited_Crane_63fd34a2) != 1) {
          static const char reentranterrormsg[] =
            "Attempting to use multiple instances of SimMechanics generated code";
          rtmSetErrorStatus(Crane_M, reentranterrormsg);
          return;
        }
      }

      mechWork.mechanism = rt_get_mechanism_Crane_63fd34a2();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;

      {
        static char errorMsg[1024];
        if ((mechWork.mechanism->mapRuntimeData)(mechWork.mechanism,
             Crane_P.Block1_SimMechanicsRuntimeParam, errorMsg, sizeof(errorMsg)
             - 1)) {
          rtmSetErrorStatus(Crane_M, errorMsg);
          return;
        }
      }

      {
        static mech_method_table_t _mech_method_table = {
          NULL
          , mech_I_xrvyx3Aq5bww_f7NHox2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_lagoBpV2welCUbWExMd2g_
          , mech_xgVNf0uqACGJgr3riV2TW_
          , mech_Tt_fdXc5y2Dg685RDenWd1
          , NULL
          , mech_lXjmQCmQ9KYdo3NotOWF50
          , NULL
          , mech_KRzkmSIGFh1nPlRnKYf5f_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_J1VBUO2K8W2Ag4M8nqujC_
          , NULL
          , mech_UF3v8E1vqSvGWTzmehi3_1
          , NULL
          , mech__d0CIENIR3HfEF35QR9Ha1
          , NULL
          , NULL
          , NULL
          , mech_MGOfra5Zxw_DziA1lJ_Xv_
          , NULL
          , NULL
          , mech_5elGLjuzc_o2OZlMimjjB_
          , NULL
          , mech_fdwS_emZl_Uj5lI3bYvhs2
          , NULL
          , NULL
          , mech_YyMp0EfJfPncA2TzJ_1fp1
          , NULL
          , mech_VM6ChnSTNT9whG7bzcrTp1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_YztKdAZO5p7GRfDKfvoXW1
          , NULL
          , mech_VPlni_ltm1YYtBkIrjvcq1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_Cgu0lKThtzqrZoLtCnwjJ_
          , mech_7aIKRF_YGZdePwxsVRxfZ2
          , NULL
          , mech_NfxycZZniL4oyBcp6hoVv_
          , NULL
          , mech_RSWvKDmIsIxZ2TrwvUllG1
          , mech_uhcwxi7XwjGUubpSE__vs1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_VOxXGjvB0g0cs7Y_LB0lR1
          , mech_ctiIyAJi1PeFIuG_wUvnk2
          , NULL
          , mech_a_17m3gydYlTeUU7HvysF0
          , mech__MLGR2zPV8GQNF039XoEV2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_MliFRcEv5v_hyQWjFWj4a_
          , NULL
          , mech_2msDn_wV4WKxjlyA01gQj1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_OHckGNNEJwON5eZqEeLzi0
          , mech_SkMDZ_VPJbRajQj2KcnZo0
          , mech__K9V_2xZBC8lWckjTxcwv2
          , mech_ISI2aDLTEeSoNduI2K46F1
          , mech_ZxSA6eM26nhj8ctjJJYeG_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_EG6IMPocjVW_x9f9ZmlYz2
          , mech_yaseRorTHqgQ0h0Gr4MBx2
          , mech_3QZGEfrvTKXUDkwr2nava1
          , mech_RaJJemaGowYhkniKZX9hV0
          , NULL
          , NULL
          , NULL
          , NULL
          , mech__4bqWfNpOsb8u2HaHsF5l_
          , mech_UqNuwpQkQmhW4UcXaqzzc1
          , NULL
          , mech_doyXts1OIeDYQ4fyF5snA0
          , mech_tVk1xlecMmZl4t2t2Z4rJ0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_gQwpAydKmPpdPDPznUyeu2
          , mech_Ex5PbKjcSSZ8tPXho_PO21
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_ZI9UhUM6Zzhg0B_NnP9no1
          , mech_c3JLv6NHRlcbYvbo3yUqR2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_2Erdl7FY9HDft_6KKrAbi_
          , mech_AjYYhGS00PWFQve_0KKLk2
          , mech_pz1_pEZ6t6jTHWzCNq3HX1
          , mech_xzWgpT4bC8HsDOUfxzyco2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_H2CpDYCpvxvkzfBP3eSON1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_b7vVw7rEJer8uyv4__kSE0
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_J61NtGQh_Nkg4Fv9d3UWy_
          , mech_haUnkmp_EtE6yFkU2FVfb1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_GrHBsF3gQ0OlLLDe_fJL90
          , mech_lEYbC8DzcQHVYBt6kV_IN_
          , NULL
          , NULL
          , mech_3WSmgjHoFmbqWEdNHIA7R_
          , NULL
          , mech_zBX_KJTs7H_0gB_Ea_czh0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_th7tzcG4WkxfeSEgprwRI2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_Uu7joU8H9eUeastwolDVg0
          , NULL
          , NULL
          , NULL
          , mech_nfsiZqoPRlid5if8dLBIP_
          , NULL
          , NULL
          , NULL
          , mech_pm9lvWqM_0HTWE9n7V4cd_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_KRJ4D_h3wCIKJUWPQ5El42
          , NULL
          , mech_0lIrQNN8BikpjmSlfvOpD2
          , NULL
          , mech_X_s55__MagWomhwU3uTBJ2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_dR3yJSNJ2TdJ3zjUrmGvi_
          , NULL
          , mech_rbFdBLFHaXR2hE4eNt3M_2
          , NULL
          , mech_EKlukb99PwiNfFGFVJAMt0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_c4fHdpqHIi08Ait7iCqsD0
          , NULL
          , mech_tvBgCn9kE7__7gd_dQRd32
          , mech_X43nq7_9OD9COWaArLGn72
          , mech_SFLi3RphwofdWH6oWJjav_
          , mech_UYo1_sYa9rbFhwYiTlhPe1
          , mech_I_TjZD9IA_EJQ5p3TqNg41
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_mVUuDxDYWY_wnk_u3tMJ52
          , NULL
          , mech_LnQ7yURGT5VnhZw7eJN_c1
          , mech_JEGLA8EGraNv1gsCDpdTi1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_iZMzxIc7St_1CDhCr_ERu1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_V9_Mz_LzNbR9VpzkOzpsQ_
          , NULL
          , mech_FZzsa9eVxUlRmX6dgrqba_
          , NULL
          , mech__REV7VpG04VPUsfMedjgL0
          , mech__KVOfJ_GF9rOM_LIXRUxG1
          , mech_IALCHMIMjiHkLz1jh1u2V1
          , mech_pTDkXJlN7oTiMSukGwz3M_
          , mech_Sc7uBbgOp5rMuP5VajcjW_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_6gOcy_frSK3pr3fotSpZ01
          , NULL
          , mech_6Nrjcn2psflsJ58sd_kGN1
          , NULL
          , mech_pyb_Ibgk3i3azXzDVP60L2
          , NULL
          , mech_whurMJYuIQ0eFWTX2xlVq2
          , NULL
          , mech_zXy1Dl5ssQjKdPryZJ55s_
          , NULL
          , mech_EV0vUsoIE58aWnq3LGXr50
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_YLlDEY62bKu6q8tuZBo5x0
          , NULL
          , mech_8D74wPqnKsVbxa37aTmqw2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_D4BauNoWsalkiYiv8mN1j0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_ymRm6WqqRgP1QctkBKj7J1
          , NULL
          , mech_Vtow2gQfjWqPxtWw2FRuj2
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_ANoHgRb4tp27Dm9QJ3CSQ1
          , NULL
          , mech_bggDCJ_sH1c4QbaoCwPZA0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_eCAm5yLntfjR0nO0eiLu50
          , NULL
          , mech_O_0fmXHZlNRyWfOvQvLXt_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_r0DHD16hK0BIQM3TZ7F1G_
          , mech_8iHff_rVIjjhbiiPfQqDA1
          , NULL
          , NULL
          , mech_5wQbk_zOuJGXAaiJyVzLQ1
          , mech_Ugf3ikEW46pYkHy18GDhF1
          , NULL
          , NULL
          , mech_HVnyXQ8p1Ft6jrmXYhQZC2
          , NULL
          , NULL
          , mech_KzAgwj55qtxfWczRliRB5_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_9zUFhBEQOKyWs7xjscZfw2
          , mech_PfNmXDpxmYMkGo9X3cLBR1
          , mech_6qPdndNUGrxO5pKg3xXD3_
          , NULL
          , mech_eAYj60QmC3AeVM8z8M5VH0
          , NULL
          , mech_wn4jlCEwb7bynhe7vagGC_
          , NULL
          , NULL
          , mech_ZVdknpwSY_5rh59_L8Z_s0
          , NULL
          , NULL
          , NULL
          , mech_aqrbxHdKQezp3I_SDAzBn0
          , mech_cR0B84p7D4fGeJs1kDmO0_
          , NULL
          , NULL
          , NULL
          , mech_CEGucWxEmABHIRkypy11k1
          , NULL
          , mech_kO655f1w_6PM5ppviK7fX2
          , NULL
          , mech_Ef6SswH2FfLe6jo9haPdv_
          , NULL
          , mech_ZhhaN1zDKqxW9B7FjH_rB1
          , NULL
          , mech___qxZewAikckuQQLfasEv2
          , NULL
          , mech_jJW235w_bLXS1hf4LJi_b0
          , NULL
        };

        mech_method_table_update(&_mech_method_table);
      }

      if (createEngineMechanism(mechWork.mechanism)) {
        {
          const ErrorRecord *err = getErrorMsg();
          static char_T errorMsg[1024];
          sprintf(errorMsg,
                  err->errorMsg,
                  err->blocks[0],
                  err->blocks[1],
                  err->blocks[2],
                  err->blocks[3],
                  err->blocks[4]);
          rtmSetErrorStatus(Crane_M, errorMsg);
          return;
        }
      }

      mechWork.mechanism->state = &Crane_X.Block1_CSTATE[0];
      Crane_DWork.Block1_IWORK = 0U;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = &Crane_DWork.Block1_IWORK;
      mechWork.genSimData.numInputPorts = 2;

      {
        static real_T *mech_inputSignals[6];
        mech_inputSignals[0] = (real_T *) &Crane_B.Gain2;
        mech_inputSignals[1] = (real_T *) &Crane_B.Sum1[0];
        mech_inputSignals[2] = (real_T *) &Crane_B.Sum1[1];
        mech_inputSignals[3] = (real_T *) &Crane_B.Sum1[2];
        mech_inputSignals[4] = (real_T *) &Crane_B.Gain1;
        mech_inputSignals[5] = (real_T *) &Crane_B.Gain;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[3];
        mech_inputSignals[0] = (real_T *) Crane_B._gravity_conversion;
        mech_inputSignals[1] = (real_T *) &Crane_B._gravity_conversion[1];
        mech_inputSignals[2] = (real_T *) &Crane_B._gravity_conversion[2];
        mechWork.genSimData.inputSignals[1] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 3;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = Crane_B.Block1_o1;
      mechWork.outSimData.outputSignals[1] = Crane_B.Block1_o2;
      mechWork.outSimData.outputSignals[2] = &Crane_B.Block1_o3;
      Crane_DWork.Block1_PWORK = &mechWork;
    }
  }

  /* InitializeConditions for Memory: '<Root>/Memory' */
  Crane_DWork.Memory_PreviousInput[0] = Crane_P.Memory_X0;
  Crane_DWork.Memory_PreviousInput[1] = Crane_P.Memory_X0;
  Crane_DWork.Memory_PreviousInput[2] = Crane_P.Memory_X0;

  /* InitializeConditions for Integrator: '<S9>/Integrator' */
  Crane_X.Integrator_CSTATE[0] = Crane_P.Integrator_IC;
  Crane_X.Integrator_CSTATE[1] = Crane_P.Integrator_IC;
  Crane_X.Integrator_CSTATE[2] = Crane_P.Integrator_IC;

  /* Derivative Block: '<S9>/Derivative' */
  Crane_DWork.Derivative_RWORK.TimeStampA = rtInf;
  Crane_DWork.Derivative_RWORK.TimeStampB = rtInf;

  /* S-Function Block: <S10>/Block#2 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Crane_M)) {
      mechWork.mechanism = rt_get_mechanism_Crane_63fd34a2();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = NULL;
      mechWork.genSimData.numInputPorts = 4;

      {
        static real_T *mech_inputSignals[6];
        mech_inputSignals[0] = (real_T *) &Crane_B.Gain2;
        mech_inputSignals[1] = (real_T *) &Crane_B.Sum1[0];
        mech_inputSignals[2] = (real_T *) &Crane_B.Sum1[1];
        mech_inputSignals[3] = (real_T *) &Crane_B.Sum1[2];
        mech_inputSignals[4] = (real_T *) &Crane_B.Gain1;
        mech_inputSignals[5] = (real_T *) &Crane_B.Gain;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[18];
        mech_inputSignals[0] = (real_T *) Crane_B.Block1_o2;
        mech_inputSignals[1] = (real_T *) &Crane_B.Block1_o2[1];
        mech_inputSignals[2] = (real_T *) &Crane_B.Block1_o2[2];
        mech_inputSignals[3] = (real_T *) &Crane_B.Block1_o2[3];
        mech_inputSignals[4] = (real_T *) &Crane_B.Block1_o2[4];
        mech_inputSignals[5] = (real_T *) &Crane_B.Block1_o2[5];
        mech_inputSignals[6] = (real_T *) &Crane_B.Block1_o2[6];
        mech_inputSignals[7] = (real_T *) &Crane_B.Block1_o2[7];
        mech_inputSignals[8] = (real_T *) &Crane_B.Block1_o2[8];
        mech_inputSignals[9] = (real_T *) &Crane_B.Block1_o2[9];
        mech_inputSignals[10] = (real_T *) &Crane_B.Block1_o2[10];
        mech_inputSignals[11] = (real_T *) &Crane_B.Block1_o2[11];
        mech_inputSignals[12] = (real_T *) &Crane_B.Block1_o2[12];
        mech_inputSignals[13] = (real_T *) &Crane_B.Block1_o2[13];
        mech_inputSignals[14] = (real_T *) &Crane_B.Block1_o2[14];
        mech_inputSignals[15] = (real_T *) &Crane_B.Block1_o2[15];
        mech_inputSignals[16] = (real_T *) &Crane_B.Block1_o2[16];
        mech_inputSignals[17] = (real_T *) &Crane_B.Block1_o2[17];
        mechWork.genSimData.inputSignals[1] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Crane_B.Block1_o3;
        mechWork.genSimData.inputSignals[2] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[3];
        mech_inputSignals[0] = (real_T *) Crane_B._gravity_conversion;
        mech_inputSignals[1] = (real_T *) &Crane_B._gravity_conversion[1];
        mech_inputSignals[2] = (real_T *) &Crane_B._gravity_conversion[2];
        mechWork.genSimData.inputSignals[3] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 1;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = &Crane_B.Block2;
      Crane_DWork.Block2_PWORK = &mechWork;
    }
  }

  /* S-Function Block: <S10>/Block#3 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Crane_M)) {
      mechWork.mechanism = rt_get_mechanism_Crane_63fd34a2();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;
      Crane_DWork.Block3_IWORK = 1U;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = &Crane_DWork.Block3_IWORK;
      mechWork.genSimData.numInputPorts = 1;

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Crane_B.Block2;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 1;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = &Crane_B.Block3;
      Crane_DWork.Block3_PWORK = &mechWork;
    }
  }
}
예제 #16
0
	void SqliteClient::printErrorInfo(const string& methodName, const string& sql)
	{
#if DEBUG
		Debug::WriteFormatLine("%s error, msg: %s, sql: %s", methodName.c_str(), getErrorMsg(), sql.c_str());
#endif
	}
예제 #17
0
/* Model output function */
void Mechanics_output(int_T tid)
{
  /* Update absolute time of base rate at minor time step */
  if (rtmIsMinorTimeStep(Mechanics_M)) {
    Mechanics_M->Timing.t[0] = rtsiGetT(&Mechanics_M->solverInfo);
  }

  if (rtmIsMajorTimeStep(Mechanics_M)) {
    /* set solver stop time */
    rtsiSetSolverStopTime(&Mechanics_M->solverInfo,
                          ((Mechanics_M->Timing.clockTick0+1)*
      Mechanics_M->Timing.stepSize0));
  }                                    /* end MajorTimeStep */

  if (rtmIsMajorTimeStep(Mechanics_M) &&
      Mechanics_M->Timing.TaskCounters.TID[1] == 0) {
    /* Level2 S-Function Block: '<Root>/Arduino' (QueryInstrument) */
    {
      SimStruct *rts = Mechanics_M->childSfunctions[0];
      sfcnOutputs(rts, 1);
    }

    /* Gain: '<Root>/Gain' */
    Mechanics_B.Gain = Mechanics_P.Gain_Gain * Mechanics_B.Arduino;
  }

  /* S-Function Block: <S6>/Block#1 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Mechanics_DWork.Block1_PWORK;
    mechWork->genSimData.time = Mechanics_M->Timing.t[0];
    mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Mechanics_M);
    if (kinematicSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
         &(mechWork->outSimData))) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Mechanics_M, errorMsg);
        return;
      }
    }
  }

  if (rtmIsMajorTimeStep(Mechanics_M) &&
      Mechanics_M->Timing.TaskCounters.TID[1] == 0) {
    /* Gain: '<S6>/_gravity_conversion' incorporates:
     *  Constant: '<S5>/SOURCE_BLOCK'
     */
    Mechanics_B._gravity_conversion[0] = Mechanics_P._gravity_conversion_Gain *
      Mechanics_P.SOURCE_BLOCK_Value[0];
    Mechanics_B._gravity_conversion[1] = Mechanics_P._gravity_conversion_Gain *
      Mechanics_P.SOURCE_BLOCK_Value[1];
    Mechanics_B._gravity_conversion[2] = Mechanics_P._gravity_conversion_Gain *
      Mechanics_P.SOURCE_BLOCK_Value[2];
  }

  /* S-Function Block: <S6>/Block#2 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Mechanics_DWork.Block2_PWORK;
    mechWork->genSimData.time = Mechanics_M->Timing.t[0];
    mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Mechanics_M);
    if (dynamicSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
         &(mechWork->outSimData))) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Mechanics_M, errorMsg);
        return;
      }
    }
  }

  /* S-Function Block: <S6>/Block#3 */
  {
    _rtMech_PWORK *mechWork = (_rtMech_PWORK *) Mechanics_DWork.Block3_PWORK;
    mechWork->genSimData.time = Mechanics_M->Timing.t[0];
    mechWork->outSimData.majorTimestep = rtmIsMajorTimeStep(Mechanics_M);
    if (eventSfcnOutputMethod(mechWork->mechanism, &(mechWork->genSimData),
         &(mechWork->outSimData))) {
      {
        const ErrorRecord *err = getErrorMsg();
        static char_T errorMsg[1024];
        sprintf(errorMsg,
                err->errorMsg,
                err->blocks[0],
                err->blocks[1],
                err->blocks[2],
                err->blocks[3],
                err->blocks[4]);
        rtmSetErrorStatus(Mechanics_M, errorMsg);
        return;
      }
    }
  }

  UNUSED_PARAMETER(tid);
}
예제 #18
0
void installService(LPCTSTR serviceName, LPCTSTR displayName, LPCTSTR serviceExe,
                    LPCTSTR dependencies, int currentDependenciesLen,
                    LPCTSTR homeDir, LPCTSTR classPath, LPCTSTR jvmArgs, LPCSTR mainClass)  {
    LPCTSTR lpszBinaryPathName = serviceExe;
	char * allDependencies = new TCHAR[_DEPENDENCY_STR_LEN];
    char * ptr = allDependencies;
	int rest_len = _DEPENDENCY_STR_LEN;
	if (currentDependenciesLen > 0 && dependencies != NULL) {
		strcpy_s(ptr, rest_len, dependencies);
		ptr += currentDependenciesLen;
		rest_len -= currentDependenciesLen;
	}
	
    // add static dependencies
    strcpy_s(ptr, rest_len, NUP_SERVICE_NAME);
    ptr += sizeof(NUP_SERVICE_NAME);
	rest_len -= sizeof(NUP_SERVICE_NAME);
    strcpy_s(ptr, rest_len, TCPIP_SERVICE_NAME);
    ptr += sizeof(TCPIP_SERVICE_NAME);
	rest_len -= sizeof(TCPIP_SERVICE_NAME);
    strcpy_s(ptr, rest_len, AFD_SERVICE_NAME);
    ptr += sizeof(AFD_SERVICE_NAME);
    
    *ptr = '\0';
	BOOL needToFree = FALSE;
	if (strchr(lpszBinaryPathName, ' ') != NULL || TRUE) {
		int buf_len = strlen(lpszBinaryPathName)+3;
		char *quotedBinPath = new char[buf_len];
		
		sprintf_s(quotedBinPath, buf_len, "\"%s\"", lpszBinaryPathName);
		lpszBinaryPathName = quotedBinPath;
		needToFree = TRUE;
	}
	printf("Service %s.\n", lpszBinaryPathName);
	// TODO 1st store parameters, 2nd install service,, since if parameters failed, then service is not operable
    SC_HANDLE hService = CreateService(scm,                          // SCManager database
		serviceName,                 // name of service
		NULL,                 // name to display
		SERVICE_ALL_ACCESS,          // desired access
		SERVICE_WIN32_OWN_PROCESS,   // service type
		SERVICE_AUTO_START,          // start type
		SERVICE_ERROR_NORMAL,        // error control type
		lpszBinaryPathName,          // binary name
		NULL,                        // no load ordering group
		NULL,                        // no tag idenitifier
		allDependencies,                // we depend ???
		NULL,                        // loacalsystem account
		NULL);                       // no password
	delete allDependencies;
	if (needToFree)
		delete (void*)lpszBinaryPathName;
    if (hService != NULL) {
		printf("Added service %s (%s).\n", serviceName, displayName);
		// use to add description
		SERVICE_DESCRIPTION description;
		if (serviceName != displayName) {
			description.lpDescription = (LPSTR)displayName;
			ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, &description);
		}
		HKEY hKey;	
		if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
			REG_ROOT,
			0,
			NULL,
			REG_OPTION_NON_VOLATILE,
			KEY_ALL_ACCESS,
			NULL,
			&hKey, NULL) == ERROR_SUCCESS) {
			if (RegSetValueEx(
				hKey,
				REG_K_CURRVER,
				0,
				REG_SZ,
				(const BYTE* )VERSION,
				sizeof VERSION 
				) == ERROR_SUCCESS) {
				HKEY hKeyVer;	
				if(RegCreateKeyEx(hKey,
					VERSION,
					0,
					NULL,
					REG_OPTION_NON_VOLATILE,
					KEY_ALL_ACCESS,
					NULL,
					&hKeyVer, NULL) == ERROR_SUCCESS) {
					if (RegSetValueEx(
						hKeyVer,
						REG_V_PATH,
						0,
						REG_SZ,
						(const BYTE* )homeDir,
						_tcslen(homeDir)+sizeof TCHAR 
						) == ERROR_SUCCESS) {
							printf("Set path %s.\n", homeDir);	
					}
					if (classPath) {
						if (RegSetValueEx(
							hKeyVer,
							REG_V_CP,
							0,
							REG_SZ,
							(const BYTE* )classPath,
							_tcslen(classPath)+sizeof TCHAR 
							) == ERROR_SUCCESS) {
							printf("Set class path %s.\n", classPath);	
						}
					}
					if (jvmArgs) {
						if (RegSetValueEx(
							hKeyVer,
							REG_V_JVM_ARGS,
							0,
							REG_SZ,
							(const BYTE* )jvmArgs,
							_tcslen(jvmArgs)+sizeof TCHAR 
							) == ERROR_SUCCESS) {
							printf("Set JVM args %s.\n", jvmArgs);	
						}
					}
					if (mainClass) {
						if (RegSetValueEx(
							hKeyVer,
							REG_V_ENTRY_POINT,
							0,
							REG_SZ,
							(const BYTE* )mainClass,
							_tcslen(mainClass)+sizeof TCHAR 
							) == ERROR_SUCCESS) {
							printf("Set main class to %s.\n", mainClass);	
						}
					} else {
						if (RegDeleteKey(hKeyVer,
							REG_V_ENTRY_POINT)  == ERROR_SUCCESS) 
							printf("Default main class used.");					
					}
					RegCloseKey(hKeyVer);
				}
				RegCloseKey(hKey);
			}
		} else {
			fprintf(stderr, "Cannot create config info in the Registry.");
		}
    } else {
		DWORD err = GetLastError();
		char *msg = getErrorMsg(err, serviceName);
		if (msg == 0) {
			fprintf(stderr, 
				"Cannot create service %s: unrecognized error %dL\n", 
				serviceName, err);
		} else {
			fprintf(stderr, "Cannot create service %s: %s\n", 
				serviceName, msg);
		}
		return;
    }
    CloseServiceHandle(hService);
}
예제 #19
0
파일: Socket.cpp 프로젝트: Schiiiiins/lcu1
// Returns message corresponding to last errno
std::string 
Socket::getErrorMsg()
{
  return getErrorMsg(getError());
}
예제 #20
0
void MdlInitialize(void)
{
  /* S-Function Block: <S6>/Block#1 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Mechanics_M)) {
      const int locationFlag = __LINE__;
      if (rt_mech_visited_loc_Mechanics_c90d139d == 0 ) {
        rt_mech_visited_loc_Mechanics_c90d139d = locationFlag;
      }

      if (rt_mech_visited_loc_Mechanics_c90d139d == locationFlag ) {
        if ((++rt_mech_visited_Mechanics_c90d139d) != 1) {
          static const char reentranterrormsg[] =
            "Attempting to use multiple instances of SimMechanics generated code";
          rtmSetErrorStatus(Mechanics_M, reentranterrormsg);
          return;
        }
      }

      mechWork.mechanism = rt_get_mechanism_Mechanics_c90d139d();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;

      {
        static char errorMsg[1024];
        if ((mechWork.mechanism->mapRuntimeData)(mechWork.mechanism,
             Mechanics_P.Block1_SimMechanicsRuntimeParam, errorMsg, sizeof
             (errorMsg) - 1)) {
          rtmSetErrorStatus(Mechanics_M, errorMsg);
          return;
        }
      }

      {
        static mech_method_table_t _mech_method_table = {
          NULL
          , NULL
          , mech_J8kgSsAbBVUDRlh2AoGly2
          , mech_tOtTtRSarBnv8RbwyBskF2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_lagoBpV2welCUbWExMd2g_
          , mech_xgVNf0uqACGJgr3riV2TW_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_p7HTt0mzGU5UBJblmCyCZ1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_2kOp06aWX46uNz_XcnB181
          , NULL
          , mech__lIfz1Oc1rvdgYh1y1_de_
          , NULL
          , mech_5P5CoVyIhI5M5ReZPjsrv0
          , NULL
          , NULL
          , NULL
          , mech_i6H5Q2FkwAxt3m4HW8hv71
          , mech_pt62D8N9Y5u9B9V1eJuBf_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_uqxMTgo3_PyYbUfmePoCO2
          , NULL
          , mech_OS2PsA89biZ1x_qmyjj3J2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_UPuqULKFWBaBlK_GxYcLa0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_Cgu0lKThtzqrZoLtCnwjJ_
          , mech_7aIKRF_YGZdePwxsVRxfZ2
          , NULL
          , NULL
          , mech_QcFKRlMiyke_3Z0bo0evL0
          , mech_RSWvKDmIsIxZ2TrwvUllG1
          , mech_uhcwxi7XwjGUubpSE__vs1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_VOxXGjvB0g0cs7Y_LB0lR1
          , NULL
          , mech_gZh_XkSd1LafYqzmy5XlX1
          , mech_a_17m3gydYlTeUU7HvysF0
          , mech__MLGR2zPV8GQNF039XoEV2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_LEfaVuRoeRM_6TC8sRJgw0
          , mech_2msDn_wV4WKxjlyA01gQj1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_OHckGNNEJwON5eZqEeLzi0
          , mech_SkMDZ_VPJbRajQj2KcnZo0
          , mech__K9V_2xZBC8lWckjTxcwv2
          , mech_ISI2aDLTEeSoNduI2K46F1
          , mech_ZxSA6eM26nhj8ctjJJYeG_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_EG6IMPocjVW_x9f9ZmlYz2
          , mech_yaseRorTHqgQ0h0Gr4MBx2
          , mech_3QZGEfrvTKXUDkwr2nava1
          , NULL
          , mech_RiOQp0gsOV_fayu4zFTTm2
          , NULL
          , NULL
          , NULL
          , mech__4bqWfNpOsb8u2HaHsF5l_
          , NULL
          , mech_aMhF8aUJa3oMQka5tPT3D_
          , mech_doyXts1OIeDYQ4fyF5snA0
          , mech_tVk1xlecMmZl4t2t2Z4rJ0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_gQwpAydKmPpdPDPznUyeu2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_ZI9UhUM6Zzhg0B_NnP9no1
          , mech_c3JLv6NHRlcbYvbo3yUqR2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_2Erdl7FY9HDft_6KKrAbi_
          , mech_AjYYhGS00PWFQve_0KKLk2
          , mech_pz1_pEZ6t6jTHWzCNq3HX1
          , NULL
          , mech_eixMVOlWwzwa5IZ2NdYFb1
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_H2CpDYCpvxvkzfBP3eSON1
          , mech_NhG0wKNsr_veIvK_xtxsT_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_1e5NgvgamMfojT1CCIS46_
          , NULL
          , NULL
          , NULL
          , mech_J61NtGQh_Nkg4Fv9d3UWy_
          , mech_haUnkmp_EtE6yFkU2FVfb1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_GrHBsF3gQ0OlLLDe_fJL90
          , mech_lEYbC8DzcQHVYBt6kV_IN_
          , NULL
          , NULL
          , NULL
          , mech_of4JKrLWfwqq9Yv_JaZ652
          , NULL
          , mech__qtM_wCDCLbue_EmPHBZd0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_nOAsdZgTbArlpB4jb56j9_
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_Uu7joU8H9eUeastwolDVg0
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_A9A4RALK60iujBPmEZW4y2
          , NULL
          , NULL
          , NULL
          , mech_AtEvyHXQJCn6fd3I4T7l_2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_gJyl4ucbKAvii0KrBGB1Y2
          , NULL
          , mech_mCv0ii4b755Uoyixufw2a2
          , NULL
          , mech_yk_siV8V9MJjcl8w2eOxM0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_hK3VRHnV7tGo36UBw0KZp2
          , NULL
          , mech_2KtcbpF_zrG2uVb5efpsS0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_5aXEh857soU6OYzHccPM12
          , mech_tvBgCn9kE7__7gd_dQRd32
          , mech_X43nq7_9OD9COWaArLGn72
          , mech_SFLi3RphwofdWH6oWJjav_
          , mech_UYo1_sYa9rbFhwYiTlhPe1
          , mech_I_TjZD9IA_EJQ5p3TqNg41
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_9SO2sDmF0ipcJt3wUIG712
          , mech_LnQ7yURGT5VnhZw7eJN_c1
          , mech_JEGLA8EGraNv1gsCDpdTi1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_AbSjJpVb_mGkzUBUwq6Ux_
          , mech_kyrP38xSp1YnrhC4s5b3A1
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_5x9rXGkyDa4F41T8OezM__
          , NULL
          , mech_JDM1y6iRYKUTGsBvhwcfV2
          , mech__REV7VpG04VPUsfMedjgL0
          , mech__KVOfJ_GF9rOM_LIXRUxG1
          , mech_IALCHMIMjiHkLz1jh1u2V1
          , mech_pTDkXJlN7oTiMSukGwz3M_
          , mech_Sc7uBbgOp5rMuP5VajcjW_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_1TsY7Di0epHYMYEwFeJRd1
          , NULL
          , mech_0rUGOkGiISDqU_WlodsSp_
          , NULL
          , mech_pDa3h4kToJ2jSy9YR9Ydf0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_TpBlMCrl8a0w_hht9hsfc1
          , NULL
          , mech_cFbniMssjI9w_C47I_WXl_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_D4BauNoWsalkiYiv8mN1j0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_Nl3XtWFGWS5uz1d5veXsd2
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_DuPpsVxDWShgP9Xiwxuui_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_eCAm5yLntfjR0nO0eiLu50
          , NULL
          , NULL
          , mech_2OyNvCoa31E0xRJwdl5zn2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_r0DHD16hK0BIQM3TZ7F1G_
          , mech_8iHff_rVIjjhbiiPfQqDA1
          , NULL
          , NULL
          , mech_5wQbk_zOuJGXAaiJyVzLQ1
          , NULL
          , mech_bueTeoLQyYYtUHbnuoJW92
          , NULL
          , NULL
          , mech_WfHVpj_Wtm8tj_R51JUQ_2
          , NULL
          , mech_KzAgwj55qtxfWczRliRB5_
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_9zUFhBEQOKyWs7xjscZfw2
          , mech_PfNmXDpxmYMkGo9X3cLBR1
          , NULL
          , mech_chydrhSD8XAbPmZqIIRqi0
          , NULL
          , mech_mTdld1poZ5U5IgQYSmots2
          , NULL
          , mech_x2iNsxmyumA_ryRMuUqE_0
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , mech_YiE1N3jXDC7778QLv6Us82
          , NULL
          , mech_JxjRMaHtTB7uFQfBm3mFX1
          , NULL
          , mech_RhXDBpT8CJx1HFDA9w5yD2
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
          , NULL
        };

        mech_method_table_update(&_mech_method_table);
      }

      if (createEngineMechanism(mechWork.mechanism)) {
        {
          const ErrorRecord *err = getErrorMsg();
          static char_T errorMsg[1024];
          sprintf(errorMsg,
                  err->errorMsg,
                  err->blocks[0],
                  err->blocks[1],
                  err->blocks[2],
                  err->blocks[3],
                  err->blocks[4]);
          rtmSetErrorStatus(Mechanics_M, errorMsg);
          return;
        }
      }

      mechWork.mechanism->state = &Mechanics_X.Block1_CSTATE[0];
      Mechanics_DWork.Block1_IWORK = 0U;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = &Mechanics_DWork.Block1_IWORK;
      mechWork.genSimData.numInputPorts = 3;

      {
        static real_T *mech_inputSignals[3];
        mech_inputSignals[0] = (real_T *) &Mechanics_B.Gain;
        mech_inputSignals[1] = (real_T *) &Mechanics_P.Constant2_Value;
        mech_inputSignals[2] = (real_T *) &Mechanics_P.Constant3_Value;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Mechanics_P.Constant1_Value;
        mechWork.genSimData.inputSignals[1] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[3];
        mech_inputSignals[0] = (real_T *) Mechanics_B._gravity_conversion;
        mech_inputSignals[1] = (real_T *) &Mechanics_B._gravity_conversion[1];
        mech_inputSignals[2] = (real_T *) &Mechanics_B._gravity_conversion[2];
        mechWork.genSimData.inputSignals[2] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 2;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = Mechanics_B.Block1_o1;
      mechWork.outSimData.outputSignals[1] = &Mechanics_B.Block1_o2;
      Mechanics_DWork.Block1_PWORK = &mechWork;
    }
  }

  /* S-Function Block: <S6>/Block#2 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Mechanics_M)) {
      mechWork.mechanism = rt_get_mechanism_Mechanics_c90d139d();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = NULL;
      mechWork.genSimData.numInputPorts = 4;

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Mechanics_P.Constant1_Value;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[10];
        mech_inputSignals[0] = (real_T *) Mechanics_B.Block1_o1;
        mech_inputSignals[1] = (real_T *) &Mechanics_B.Block1_o1[1];
        mech_inputSignals[2] = (real_T *) &Mechanics_B.Block1_o1[2];
        mech_inputSignals[3] = (real_T *) &Mechanics_B.Block1_o1[3];
        mech_inputSignals[4] = (real_T *) &Mechanics_B.Block1_o1[4];
        mech_inputSignals[5] = (real_T *) &Mechanics_B.Block1_o1[5];
        mech_inputSignals[6] = (real_T *) &Mechanics_B.Block1_o1[6];
        mech_inputSignals[7] = (real_T *) &Mechanics_B.Block1_o1[7];
        mech_inputSignals[8] = (real_T *) &Mechanics_B.Block1_o1[8];
        mech_inputSignals[9] = (real_T *) &Mechanics_B.Block1_o1[9];
        mechWork.genSimData.inputSignals[1] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Mechanics_B.Block1_o2;
        mechWork.genSimData.inputSignals[2] = mech_inputSignals;
      }

      {
        static real_T *mech_inputSignals[3];
        mech_inputSignals[0] = (real_T *) Mechanics_B._gravity_conversion;
        mech_inputSignals[1] = (real_T *) &Mechanics_B._gravity_conversion[1];
        mech_inputSignals[2] = (real_T *) &Mechanics_B._gravity_conversion[2];
        mechWork.genSimData.inputSignals[3] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 1;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = &Mechanics_B.Block2;
      Mechanics_DWork.Block2_PWORK = &mechWork;
    }
  }

  /* S-Function Block: <S6>/Block#3 */
  {
    static _rtMech_PWORK mechWork;
    static ErrorRecord errorRec;
    if (rtmIsFirstInitCond(Mechanics_M)) {
      mechWork.mechanism = rt_get_mechanism_Mechanics_c90d139d();
      mechWork.mechanism->engineError = &errorRec;
      mechWork.mechanism->engineError->errorFlag = false;
      Mechanics_DWork.Block3_IWORK = 1U;
      mechWork.genSimData.tStart = (0.0);
      mechWork.genSimData.iwork = &Mechanics_DWork.Block3_IWORK;
      mechWork.genSimData.numInputPorts = 1;

      {
        static real_T *mech_inputSignals[1];
        mech_inputSignals[0] = (real_T *) &Mechanics_B.Block2;
        mechWork.genSimData.inputSignals[0] = mech_inputSignals;
      }

      mechWork.outSimData.numOutputPorts = 1;
      mechWork.outSimData.logOutput = false;
      mechWork.outSimData.outputSignals[0] = &Mechanics_B.Block3;
      Mechanics_DWork.Block3_PWORK = &mechWork;
    }
  }
}