Example #1
0
static int
build_scanRecord_links(acqScan_t *sc)
{
	int i;
	char *controlPV = NULL;

	DEBUGM(sc->master,1) printf("build_scanRecord_links\n");
	if( sc->acqControlList)
	{
		for(i=0; i < sc->numControlPV; i++)
		{
			if( sc->acqControlList[i].controlPV)
				controlPV = sc->acqControlList[i].controlPV;
			if( !controlPV)	/* should not happen: 'valid settings' checks this */
				return 0;
			sc->acqControlList[i].controlChan = build_connector( NULL, controlPV);
			sc->acqControlList[i].controlChan->user_data = (void *) sc;
			sc->acqControlList[i].controlChan->update = NULL;		/* set to callbacks for updates */
		}
	}

	for( i=0; i < NUM_SCAN_TRIGGERS; i++)
	{
		acqAction_t *ap;
		for( ap=sc->actions[i]; ap ; ap=(ap->next==sc->actions[i]?NULL:ap->next) )
		{
			if( buildAction( ap) == 0)
			{
				sc->master->messageAdd(sc->master, "can't link action %s type %d", tgTypeName(i), ap->type);
				return 0;
			}
		}
	}

	sc->startEvent = epicsEventCreate(0);
	sc->endEvent = epicsEventCreate(0);
	sc->putNotify = epicsEventCreate(0);
	if( sc->startEvent == 0 || sc->endEvent == 0)
		return 0;
	return 1;
}
Example #2
0
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    ProfileClient profileClient;
    Preferences preferences;
    QScopedPointer<PlatformUtil> platformUtil(PlatformUtil::create());
    int rules_version = -1;
    QList<Rule> rules;
    Configuration::readRules(rules, &rules_version);
    Configuration::readPreferences(preferences);
    QScopedPointer<ConditionManager> conditionManager(buildConditionManager());
    QScopedPointer<Action> action(buildAction(&profileClient, platformUtil.data()));
    RulesManager rulesManager(&rules, conditionManager.data(), action.data(), &preferences);
    ProfileMaticInterface interface(&rulesManager, &rules, &preferences);

    if (interface.init()) {
        fprintf(stderr, "Exiting\n");
        return -1;
    }

    rulesManager.refresh();

    // LATER: this code can be removed a couple of versions down the road I think.
    qDebug("rules_version: %d", rules_version);
    // rules.size > 1 because default rule always exists
    if (rules_version == 0 && rules.size() > 1) {
        qDebug("Launching conversion warning");
        QProcess::startDetached(CONVERSION_WARNING_CMDLINE);
        qDebug("Conversion warning launched");
    }

    qDebug("Starting");
    int ret = a.exec();
    qDebug("Exiting\n");
    return ret;
}