Esempio n. 1
0
int main ()
{
  PROCESS_ATTRIBUTE_TYPE tattr;
  RETURN_CODE_TYPE ret;
  CREATE_BLACKBOARD ("TrainPpu_trainTraction_tractionIn_globalVariable", sizeof (cbtc_refined_model__TractionData_freshness_t_impl), &(TrainPpu_trainTraction_tractionIn_globalVariable), &(ret));
  CREATE_BLACKBOARD ("VobcTrainPositionEstimation_vobcTrainPositionEstimation_additionalTrainPositionOffset_globalVariable", sizeof (TrainPositionOffset), &(VobcTrainPositionEstimation_vobcTrainPositionEstimation_additionalTrainPositionOffset_globalVariable), &(ret));
  CREATE_BLACKBOARD ("VobcTrainPositionEstimation_vobcTrainPositionEstimation_wheelAngleIn_globalVariable", sizeof (cbtc_refined_model__OdometerData_freshness_t_impl), &(VobcTrainPositionEstimation_vobcTrainPositionEstimation_wheelAngleIn_globalVariable), &(ret));
  CREATE_BLACKBOARD ("TrainSpeedAccelCompute_trainSpeedAccelCompute_trainPositionIn_globalVariable", sizeof (cbtc_refined_model__VobcData_freshness_t_impl), &(TrainSpeedAccelCompute_trainSpeedAccelCompute_trainPositionIn_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("train_inst_TrainSpeedAccelCompute_inst_eoaIn",
    sizeof( cbtc_refined_model__EndOfAuthority_freshness_t_impl ), DESTINATION, 10,
      &(train_inst_TrainSpeedAccelCompute_inst_eoaInglobalVariable), &(ret));
  CREATE_SAMPLING_PORT ("train_inst_TrainSpeedAccelCompute_inst_trainPositionForMauOut",
    sizeof( cbtc_refined_model__VobcData_freshness_t_impl ), SOURCE, 10,
      &(train_inst_TrainSpeedAccelCompute_inst_trainPositionForMauOut_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("train_inst_trainPpu_inst_trainDataOut",
    sizeof( TrainData ), SOURCE, 10,
      &(train_inst_trainPpu_inst_trainDataOut_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("train_inst_trainPpu_inst_trainDataIn",
    sizeof( cbtc_refined_model__TrainData_freshness_t_impl ), DESTINATION, 10,
      &(train_inst_trainPpu_inst_trainDataInglobalVariable), &(ret));
  tattr.ENTRY_POINT = cbtc_refined_model__train_inst_TrainPpu_odometerAcquisition_impl_Job;
  tattr.PERIOD = 300;
  tattr.DEADLINE = 300;
  tattr.BASE_PRIORITY = 1;
  strcpy(tattr.NAME, "TrainPpu_odometerAcquisition");
  CREATE_PROCESS (&(tattr), &(arinc_threads[1]), &(ret));
  START (arinc_threads[1], &(ret));
  tattr.ENTRY_POINT = cbtc_refined_model__train_inst_TrainPpu_trainTraction_impl_Job;
  tattr.PERIOD = 300;
  tattr.DEADLINE = 300;
  tattr.BASE_PRIORITY = 1;
  strcpy(tattr.NAME, "TrainPpu_trainTraction");
  CREATE_PROCESS (&(tattr), &(arinc_threads[2]), &(ret));
  START (arinc_threads[2], &(ret));
  tattr.ENTRY_POINT = cbtc_refined_model__train_inst_VobcTrainPositionEstimation_vobcTrainPositionEstimation_impl_Job;
  tattr.PERIOD = 300;
  tattr.DEADLINE = 300;
  tattr.BASE_PRIORITY = 2;
  strcpy(tattr.NAME, "VobcTrainPositionEstimation_vobcTrainPositionEstimation");
  CREATE_PROCESS (&(tattr), &(arinc_threads[3]), &(ret));
  START (arinc_threads[3], &(ret));
  tattr.ENTRY_POINT = cbtc_refined_model__train_inst_TrainSpeedAccelCompute_trainSpeedAccelCompute_impl_Job;
  tattr.PERIOD = 300;
  tattr.DEADLINE = 300;
  tattr.BASE_PRIORITY = 2;
  strcpy(tattr.NAME, "TrainSpeedAccelCompute_trainSpeedAccelCompute");
  CREATE_PROCESS (&(tattr), &(arinc_threads[4]), &(ret));
  START (arinc_threads[4], &(ret));
  SET_PARTITION_MODE (NORMAL, &(ret));
  return (0);
}
Esempio n. 2
0
int main ()
{
  PROCESS_ATTRIBUTE_TYPE tattr;
  RETURN_CODE_TYPE ret;
  CREATE_BLACKBOARD ("IPingOrPong_Cping_ping_delayed_PongIn_globalVariable", sizeof (PingPongMessage), &(IPingOrPong_Cping_ping_delayed_PongIn_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_mode",
    sizeof( ROLE ), DESTINATION, 10,
      &(S2_inst_C2_modeglobalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_PingIn",
    sizeof( PingPong_refined_model__PingPongMessage_freshness_t_impl ), DESTINATION, 10,
      &(S2_inst_C2_PingInglobalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_PongIn",
    sizeof( PingPongMessage ), DESTINATION, 10,
      &(S2_inst_C2_PongInglobalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_PingOut",
    sizeof( PingPong_refined_model__PingPongMessage_freshness_t_impl ), SOURCE, 10,
      &(S2_inst_C2_PingOut_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_PongOut",
    sizeof( PingPongMessage ), SOURCE, 10,
      &(S2_inst_C2_PongOut_globalVariable), &(ret));
  CREATE_SAMPLING_PORT ("S2_inst_C2_badSequenceNumber",
    sizeof( Exception ), SOURCE, 10,
      &(S2_inst_C2_badSequenceNumber_globalVariable), &(ret));
  tattr.ENTRY_POINT = PingPong_refined_model__S2_inst_IPingOrPong_Cping_ping_impl_Job;
  tattr.PERIOD = 40;
  tattr.DEADLINE = 40;
  tattr.BASE_PRIORITY = 3;
  strcpy(tattr.NAME, "IPingOrPong_Cping_ping");
  CREATE_PROCESS (&(tattr), &(arinc_threads[1]), &(ret));
  START (arinc_threads[1], &(ret));
  tattr.ENTRY_POINT = PingPong_refined_model__S2_inst_IPingOrPong_Cping_delayed_PongIn_impl_Job;
  tattr.PERIOD = 40;
  tattr.DEADLINE = 40;
  tattr.BASE_PRIORITY = 3;
  strcpy(tattr.NAME, "IPingOrPong_Cping_delayed_PongIn");
  CREATE_PROCESS (&(tattr), &(arinc_threads[2]), &(ret));
  START (arinc_threads[2], &(ret));
  tattr.ENTRY_POINT = PingPong_refined_model__S2_inst_IPingOrPong_Cpong_pong_impl_Job;
  tattr.PERIOD = 40;
  tattr.DEADLINE = 40;
  tattr.BASE_PRIORITY = 3;
  strcpy(tattr.NAME, "IPingOrPong_Cpong_pong");
  CREATE_PROCESS (&(tattr), &(arinc_threads[3]), &(ret));
  START (arinc_threads[3], &(ret));
  SET_PARTITION_MODE (NORMAL, &(ret));
  return (0);
}
Esempio n. 3
0
/* Entry point */
void main(void){
	int cnt;
	char sal_code[MAX_CAD];
	RETURN_CODE_TYPE retCode;
	PROCESS_ID_TYPE procMainIdMT;
	PROCESS_ID_TYPE procMainId1;
	PROCESS_ID_TYPE procMainId2;
	PROCESS_ID_TYPE procMainId3;

	/* Blackboard definitions and identifier */
	BLACKBOARD_DEFINITION 	blackboardDefinitions[NUM_BLACKBOARDS];
	BLACKBOARD_ID_TYPE  bbId[NUM_BLACKBOARDS];


	/* Process Master_Test is created */
	CREATE_PROCESS (&(processTable [0]),       /* process attribute */
                    &procMainIdMT,             /* process Id */
                    &retCode);
    CHECK_CODE(": CREATE_PROCESS Process Master Test", retCode, sal_code);
    printf("%s\n", sal_code);

	/* Process P1 is created */
	CREATE_PROCESS (&(processTable [1]),       /* process attribute */
                    &procMainId1,             /* process Id */
                    &retCode);
    CHECK_CODE(": CREATE_PROCESS Process 1", retCode, sal_code);
    printf("%s\n", sal_code);

	/* Process P2 is created*/
	CREATE_PROCESS (&(processTable [2]),       /* process attribute */
                    &procMainId2,             /* process Id */
                    &retCode);
    CHECK_CODE(": CREATE_PROCESS Process 2", retCode, sal_code);
    printf("%s\n", sal_code);

	/* Process P2 is created*/
	CREATE_PROCESS (&(processTable [3]),       /* process attribute */
                    &procMainId3,             /* process Id */
                    &retCode);
	CHECK_CODE(": CREATE_PROCESS Process 3", retCode, sal_code);
    printf("%s\n", sal_code);

    /* To init blackboards */
	strcpy (BLACKBOARD_NAME_0, "blackboard1");
    strcpy(blackboardDefinitions[0].name, BLACKBOARD_NAME_0);
	blackboardDefinitions[0].msgSize = 3;

	strcpy(BLACKBOARD_NAME_1, "blackboard2");
    strcpy(blackboardDefinitions[1].name, BLACKBOARD_NAME_1);
	blackboardDefinitions[1].msgSize = 3;


	/* Blackboard B1 and B2 are created and clear */
	for (cnt = 0; cnt < NUM_BLACKBOARDS; cnt++){
		bbId [cnt] = -1;
		retCode = -1;
	    CREATE_BLACKBOARD (blackboardDefinitions[cnt].name,
                       	   blackboardDefinitions[cnt].msgSize,
                           &bbId[cnt],
                       	   &retCode);
		CHECK_CODE(": CREATE_BLACKBOARD", retCode, sal_code);
    	printf("%s %s\n", sal_code, blackboardDefinitions [cnt].name);

		CLEAR_BLACKBOARD(bbId [cnt], &retCode);
		CHECK_CODE(": CREAR_BLACKBOARD", retCode, sal_code);
    	printf("%s %s\n", sal_code, blackboardDefinitions [cnt].name);
	}

	/* Start main process ... */
	START(procMainIdMT, &retCode);
	CHECK_CODE(": START Process Master Test", retCode, sal_code);
    printf("%s\n", sal_code);

	/* To set the partition in a Normal State */
	SET_PARTITION_MODE(NORMAL, &retCode);
	CHECK_CODE(": SET_PARTITION_MODE ", retCode, sal_code);
    printf("%s\n", sal_code);

	return;

}