void RunAction::describeComponent(ComponentInfo &info) {
    Action::describeComponent(info);
    
    info.setSignature("action/blackrock_led_driver_run");
    
    info.addParameter(DURATION);
}
void NIDAQDigitalChannel::describeComponent(ComponentInfo &info) {
    Component::describeComponent(info);
    info.addParameter(PORT_NUMBER, true, "0");
    info.addParameter(NUM_LINES_IN_PORT, true, "8");
    for (std::size_t i = 0; i < maxNumLines; i++) {
        info.addParameter(getLineParameterName(i), false);
    }
}
void OpenEphysNetworkEventsClient::describeComponent(ComponentInfo &info) {
    OpenEphysBase::describeComponent(info);
    
    info.setSignature("iodevice/open_ephys_network_events_client");
    
    info.addParameter(REQUEST);
    info.addParameter(RESPONSE);
}
예제 #4
0
void FixationPoint::describeComponent(ComponentInfo &info) {
    RectangleStimulus::describeComponent(info);
    info.setSignature("stimulus/fixation_point");
    info.addParameter(TRIGGER_WIDTH);
    info.addParameter(TRIGGER_WATCH_X);
    info.addParameter(TRIGGER_WATCH_Y);
    info.addParameter(TRIGGER_FLAG);
}
예제 #5
0
void CircularFixationPoint::describeComponent(ComponentInfo &info) {
    CircleStimulus::describeComponent(info);
    info.setSignature("stimulus/circular_fixation_point");
    info.addParameter(FixationPoint::TRIGGER_WIDTH);
    info.addParameter(FixationPoint::TRIGGER_WATCH_X);
    info.addParameter(FixationPoint::TRIGGER_WATCH_Y);
    info.addParameter(FixationPoint::TRIGGER_FLAG);
}
예제 #6
0
void NE500PumpNetworkDevice::describeComponent(ComponentInfo &info) {
    IODevice::describeComponent(info);
    
    info.setSignature("iodevice/ne500");
    
    info.addParameter(ADDRESS, false);
    info.addParameter(PORT, false);
    info.addParameter(RESPONSE_TIMEOUT, "100ms");
    info.addParameter(LOG_PUMP_COMMANDS, "YES");
}
예제 #7
0
void ScheduledActions::describeComponent(ComponentInfo &info) {
    Action::describeComponent(info);

    info.setSignature("action/schedule");

    info.addParameter(DELAY);
    info.addParameter(DURATION);
    info.addParameter(REPEATS);
    info.addParameter(CANCEL, "NO");
}
예제 #8
0
void
gnc_close_gui_component (gint component_id)
{
    ComponentInfo *ci;

    ci = find_component (component_id);
    if (!ci)
    {
        PERR ("component not found");
        return;
    }

    if (!ci->close_handler)
        return;

    if (ci->close_handler)
        ci->close_handler (ci->user_data);
}
예제 #9
0
void NIDAQDevice::describeComponent(ComponentInfo &info) {
    IODevice::describeComponent(info);
    
    info.setSignature("iodevice/nidaq");
    
    info.addParameter(NAME, true, "Dev1");
    info.addParameter(UPDATE_INTERVAL, true, "3ms");
    info.addParameter(ANALOG_INPUT_DATA_INTERVAL, true, "1ms");
    info.addParameter(ANALOG_OUTPUT_DATA_INTERVAL, true, "1ms");
    info.addParameter(ANALOG_READ_TIMEOUT, false, "3ms");
    info.addParameter(ANALOG_OUTPUT_ENABLED, "YES");
    info.addParameter(ASSUME_MULTIPLEXED_ADC, "YES");
}
void NIDAQAnalogOutputVoltageWaveformChannel::describeComponent(ComponentInfo &info) {
    NIDAQAnalogChannel::describeComponent(info);
    info.setSignature("iochannel/nidaq_analog_output_voltage_waveform");
    info.addParameter(WAVEFORM);
    info.addParameter(PERIOD);
    info.addParameter(OFFSET, "0ms");
    info.addParameter(AMPLITUDE, false);
    info.addParameter(MEAN, false);
}
void DisplayBitCodeStimulus::describeComponent(ComponentInfo& info){
    BasicTransformStimulus::describeComponent(info);
    info.setSignature("stimulus/display_bit_code");
    info.addParameter(CODE_VARIABLE);
    info.addParameter(N_MARKERS);
    info.addParameter(SEPARATION);
    info.addParameter(BG_LUMINANCE);
    info.addParameter(FG_LUMINANCE);
    info.addParameter(CLOCK_OFFSET);
}
예제 #12
0
void EyeStatusMonitorVer1::describeComponent(ComponentInfo &info) {
    EyeStatusMonitor::describeComponent(info);
    
    info.setSignature("filter/basic_eye_monitor");
    
    info.addParameter(EYEH_CALIBRATED);
    info.addParameter(EYEV_CALIBRATED);
    info.addParameter(EYE_STATE);
    info.addParameter(EYE_VELOCITY_H, false);
    info.addParameter(EYE_VELOCITY_V, false);
    info.addParameter(WIDTH_SAMPLES);
    info.addParameter(SACCADE_ENTRY_SPEED);
    info.addParameter(SACCADE_EXIT_SPEED);
}
예제 #13
0
 void RegistryComponent::SetComponentInfo(const ComponentInfo &info)
 {
   std::string KeyComponentClassId = Key_ComponentClassIDs;
   KeyComponentClassId += "/";
   StringVector ClassIDs = info.GetClassIDs();
   for (StringVector::const_iterator i = ClassIDs.begin() ; i != ClassIDs.end() ; ++i)
   {
     std::string ClassId = KeyComponentClassId;
     ClassId += *i;
     Reg.CreateKey(ClassId);
     Reg.SetValue(ClassId, info.GetModuleGuid().c_str());
   }
   std::string KeyComponentInformation = Key_ComponentInformation;
   KeyComponentInformation += "/";
   KeyComponentInformation += info.GetModuleGuid();
   KeyComponentInformation += "/";
   std::string Key = KeyComponentInformation;
   Key += Key_Type;
   Reg.CreateKey(Key);
   Reg.SetValue(Key, info.GetTypeAsStr().c_str());
   Key = KeyComponentInformation;
   Key += Key_ModuleName;
   Reg.CreateKey(Key);
   Reg.SetValue(Key, info.GetModuleName().c_str());
   Key = KeyComponentInformation;
   Key += Key_Location;
   Reg.CreateKey(Key);
   Reg.SetValue(Key, info.GetLocation().c_str());
   Key = KeyComponentInformation;
   Key += Key_Description;
   Reg.CreateKey(Key);
   Reg.SetValue(Key, info.GetDescription().c_str());
   Key = KeyComponentInformation;
   Key += Key_ClassIDs;
   Reg.CreateKey(Key);
   unsigned Index = 0;
   for (StringVector::const_iterator i = ClassIDs.begin() ; i != ClassIDs.end() ; ++i)
   {
     std::stringstream Io;
     Io << Key_ClassId << Index++;
     std::string ClassIdKey = Key + "/" + Io.str();
     Reg.CreateKey(ClassIdKey);
     Reg.SetValue(ClassIdKey, static_cast<const char*>(i->c_str()));
   }
 }
예제 #14
0
void BaseFrameListStimulus::describeComponent(ComponentInfo &info) {
    StandardDynamicStimulus::describeComponent(info);
    info.addParameter(ENDED, false);
    info.addParameter(LOOP, "NO");
    info.addParameter(REPEATS, "0");
}
예제 #15
0
void MovingDots::describeComponent(ComponentInfo &info) {
    StandardDynamicStimulus::describeComponent(info);
    
    info.setSignature("stimulus/moving_dots");
    info.setDisplayName("Moving Dots");
    info.setDescription("A moving dots stimulus.");

    info.addParameter(FIELD_RADIUS);
    info.addParameter(FIELD_CENTER_X, "0.0");
    info.addParameter(FIELD_CENTER_Y, "0.0");
    info.addParameter(DOT_DENSITY);
    info.addParameter(DOT_SIZE);
    info.addParameter(COLOR, "1.0,1.0,1.0");
    info.addParameter(ALPHA_MULTIPLIER, "1.0");
    info.addParameter(DIRECTION, "0.0");
    info.addParameter(SPEED);
    info.addParameter(COHERENCE, "1.0");
    info.addParameter(LIFETIME, "0.0");
    info.addParameter(ANNOUNCE_DOTS, "0");
    info.addParameter(RAND_SEED, false);
}
예제 #16
0
void Eyelink::describeComponent(ComponentInfo &info) {
    IODevice::describeComponent(info);
    
    info.setSignature("iodevice/eyelink");
    info.setDisplayName("Eyelink 1k, Socket Link");
    info.setDescription(
                        "Eyelink 1000 Plugin. INSTRUCTIONS BELOW\n"
                        "REQUIRED PARAMETERS:\n"
                        "tracking_dist = The tracking range set in Eyelink configuration (Eyelink default is 1024 (pixels))\n"
                        "data_interval should not be too small (i.e. not shorter than 0.5 ms)\n"
                        "tracker_ip contains the trackers IP, check for working connection using SR-Research's 'simpleexample'\n"
                        "OUTPUT:\n"
                        "eye_x/_y/_z is the midpoint of the shortest connecting line that is orthogonal to both gaze vectors "
                        "assuming the tracker runs in binocular mode. Otherwise these values will be empty.\n"
                        "all other output parameters are specified and described in the Eyelink 1000 manual.\n"
                        );
    
    info.addParameter(RX, false);
    info.addParameter(RY, false);
    info.addParameter(LX, false);
    info.addParameter(LY, false);
    info.addParameter(EX, false);
    info.addParameter(EY, false);
    info.addParameter(EZ, false);
    info.addParameter(H_RX, false);
    info.addParameter(H_RY, false);
    info.addParameter(H_LX, false);
    info.addParameter(H_LY, false);
    info.addParameter(P_RX, false);
    info.addParameter(P_RY, false);
    info.addParameter(P_LX, false);
    info.addParameter(P_LY, false);
    info.addParameter(P_R, false);
    info.addParameter(P_L, false);
    info.addParameter(E_DIST, true, "1024");
    info.addParameter(EYE_TIME, false);
    info.addParameter(UPDATE_PERIOD, true, "1ms");
    info.addParameter(IP, true, "10.1.1.2");
}
 void ServersideConduit::describeComponent(ComponentInfo& info){
     IODevice::describeComponent(info);
     info.setSignature("iodevice/serverside_conduit");
     info.addParameter(RESOURCE_NAME_PARAMETER, "server_conduit" );
 }
예제 #18
0
void IODevice::describeComponent(ComponentInfo &info) {
    Component::describeComponent(info);
    info.addParameter(ALT, false);
}
예제 #19
0
void PythonFileResource::describeComponent(ComponentInfo &info) {
    Component::describeComponent(info);
    info.setSignature("resource/python_file");
    info.addParameter(PATH);
}
예제 #20
0
void StandardDynamicStimulus::describeComponent(ComponentInfo &info) {
    Stimulus::describeComponent(info);
    info.addParameter(AUTOPLAY, "0");
}
예제 #21
0
void RunPythonFileAction::describeComponent(ComponentInfo &info) {
    RunPythonAction::describeComponent(info);
    info.setSignature("action/run_python_file");
    info.addParameter(PATH);
}
예제 #22
0
void FrameListStimulus::describeComponent(ComponentInfo &info) {
    BaseFrameListStimulus::describeComponent(info);
    info.setSignature("stimulus/frame_list");
    info.addParameter(ENDING, false);
    info.addParameter(STIMULUS_GROUP);
}
예제 #23
0
void StopDynamicStimulus::describeComponent(ComponentInfo &info) {
    DynamicStimulusAction::describeComponent(info);
    info.setSignature("action/stop_dynamic_stimulus");
}
예제 #24
0
void PauseDynamicStimulus::describeComponent(ComponentInfo &info) {
    DynamicStimulusAction::describeComponent(info);
    info.setSignature("action/pause_dynamic_stimulus");
}
예제 #25
0
void DynamicStimulusAction::describeComponent(ComponentInfo &info) {
    Action::describeComponent(info);
    info.addParameter(STIMULUS);
}
예제 #26
0
void DriftingGratingStimulus::describeComponent(ComponentInfo &info) {
    StandardDynamicStimulus::describeComponent(info);
    
    info.setSignature("stimulus/drifting_grating");

    info.addParameter(BasicTransformStimulus::X_SIZE);
    info.addParameter(BasicTransformStimulus::Y_SIZE);
    info.addParameter(BasicTransformStimulus::X_POSITION, "0.0");
    info.addParameter(BasicTransformStimulus::Y_POSITION, "0.0");
    info.addParameter(BasicTransformStimulus::ROTATION, "0.0");
    info.addParameter(BasicTransformStimulus::ALPHA_MULTIPLIER, "1.0");
    
    info.addParameter(DIRECTION, "0.0");
    info.addParameter(STARTING_PHASE, "0.0");
    info.addParameter(FREQUENCY);
    info.addParameter(SPEED);
    info.addParameter(GRATING_TYPE);
    info.addParameter(MASK);
    info.addParameter(GRATING_SAMPLE_RATE, "32");
    info.addParameter(INVERTED, "0");
    info.addParameter(STD_DEV, "1.0");
    info.addParameter(MEAN, "0.0");
}
예제 #27
0
static void
gnc_gui_refresh_internal (gboolean force)
{
    GList *list;
    GList *node;

    if (!got_events && !force)
        return;

    gnc_suspend_gui_refresh ();

    {
        GHashTable *table;

        table = changes_backup.event_masks;
        changes_backup.event_masks = changes.event_masks;
        changes.event_masks = table;

        table = changes_backup.entity_events;
        changes_backup.entity_events = changes.entity_events;
        changes.entity_events = table;
    }

#if CM_DEBUG
    fprintf (stderr, "%srefresh!\n", force ? "forced " : "");
#endif

    list = find_component_ids_by_class (NULL);

    for (node = list; node; node = node->next)
    {
        ComponentInfo *ci = find_component (GPOINTER_TO_INT (node->data));

        if (!ci)
            continue;

        if (!ci->refresh_handler)
        {
#if CM_DEBUG
            fprintf (stderr, "no handlers for %s:%d\n", ci->component_class, ci->component_id);
#endif
            continue;
        }

        if (force)
        {
            if (ci->refresh_handler)
            {
#if CM_DEBUG
                fprintf (stderr, "calling %s:%d C handler\n", ci->component_class, ci->component_id);
#endif
                ci->refresh_handler (NULL, ci->user_data);
            }
        }
        else if (changes_match (&ci->watch_info, &changes_backup))
        {
            if (ci->refresh_handler)
            {
#if CM_DEBUG
                fprintf (stderr, "calling %s:%d C handler\n", ci->component_class, ci->component_id);
#endif
                ci->refresh_handler (changes_backup.entity_events, ci->user_data);
            }
        }
        else
        {
#if CM_DEBUG
            fprintf (stderr, "no match for %s:%d\n", ci->component_class, ci->component_id);
#endif
        }
    }

    clear_event_info (&changes_backup);
    got_events = FALSE;

    g_list_free (list);

    gnc_resume_gui_refresh ();
}
예제 #28
0
ComponentInfo::ComponentInfo(const ComponentInfo & x)
{
    setNative(x.getNative());
}
bool CompositeComponentProfile::doParse(Config *pcfg)
{
	if (pcfg == NULL) return false;

	try {
		Config *cfg = pcfg->getChild("name");
		if (cfg == NULL) throw IOException("There is no name");
		name = cfg->getValue();

		cfg = pcfg->getChild("description");
		if (cfg != NULL) description = cfg->getValue();

		appDomain.parse(pcfg->getChild("app_domain"));
		copyright.parse(pcfg->getChild("copyright"));
		execEnv.parse(pcfg->getChild("execution_environment"));

		cfg = pcfg->getChild("subcomponents");
		if (cfg == NULL) {
			log_error("<CompositeComponentProfile::parse> There is no subcomponents");
			return false;
		}
		else {
			ConfigList list = cfg->getChildren("subcomponent");
			ConfigList::iterator iter = list.begin();
			for (; iter != list.end(); ++iter) {
				ComponentInfo profile;
				profile.parse(*iter);
				componentList.push_back(profile);
			}
		}

		cfg = pcfg->getChild("export_ports");
		if (cfg == NULL) {
			log_error("<CompositeComponentProfile::parse> There is no export_ports");
			return false;
		}
		else {
			ConfigList list = cfg->getChildren("export_port");
			ConfigList::iterator iter = list.begin();
			for (; iter != list.end(); ++iter) {
				ExportPortInfo profile;
				profile.parse(*iter);
				exportPortList.push_back(profile);
			}
		}

		cfg = pcfg->getChild("port_connections");
		if (cfg == NULL) {
			log_error("<CompositeComponentProfile::parse> There is no port_connections");
			return false;
		}
		else {
			ConfigList list = cfg->getChildren("port_connection");
			ConfigList::iterator iter = list.begin();
			for (; iter != list.end(); ++iter) {
				PortConnectionInfo profile;
				profile.parse(*iter);
				portConnectionList.push_back(profile);
			}
		}

		cfg = pcfg->getChild("coordination");
		if (cfg != NULL) {
			ConfigList list = cfg->getChildren("depends");
			ConfigList::iterator iter = list.begin();
			for (; iter != list.end(); ++iter) {
				CoordinationInfo profile;
				profile.parse(*iter);
				coordinationInfoList.push_back(profile);
			}

		}
	}
	catch (Exception &e) {
		log_error("<CompositeComponentProfile::parse> Excepton Occurred <= " << e.getMessage());
		return false;
	}
	return true;
}