Exemplo n.º 1
0
void acquire_Init (void)
{
    if (utilG.acq.status != ACQ_NONE) {
        util_ChangeInitMessage ("Acquisition Utilities...");
        util_WriteLog("acquire_Init()\nStarting...\n");
        acqG.p.setup = LoadPanel (utilG.p, "acquireu.uir", ACQSETUP);
        
        //SetPanelPos (acqG.p.setup, VAL_AUTO_CENTER, VAL_AUTO_CENTER);
        // Set default data dir and suffix
        int dirNameLen;
        if(FileExists(DFLT_DATA_DIR, &dirNameLen) ) {
            strcpy(dataFile.dataDir, DFLT_DATA_DIR);
        } else {
            char msg[MAX_PATHNAME_LEN*2];
            sprintf(msg, "Default Data Does not exist:\n%s\nUsing application dir.", DFLT_DATA_DIR);
            MessagePopup ("Acquisition Setup", msg );

            GetProjectDir (dataFile.dataDir);
        }
        SetCtrlVal (acqG.p.setup, ACQSETUP_DATADIR, dataFile.dataDir);
        strcpy(dataFile.fileSuffix, DFLT_FILE_SUFFIX);
        SetCtrlVal(acqG.p.setup, ACQSETUP_FILESUFFIX, dataFile.fileSuffix); 

        // This control is a button on startup panel, "control. acquisition, and analysis"
        InstallCtrlCallback (utilG.p, BG_ACQSETUP, AcqSetupCallback, 0);

    } else SetCtrlAttribute (utilG.p, BG_ACQSETUP, ATTR_VISIBLE, FALSE);
}
Exemplo n.º 2
0
int CVICALLBACK Save (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	char *value = "";
	switch (event)
	{
		case EVENT_COMMIT:
			 value = (char*)malloc(50);
			 memset(value,0,50);
			 GetPanelAttribute (configHandle, ATTR_TITLE, value);
			 if (strcmp("CheckBBUIP", value)==0)
			 {
				 if(1==WriteConfig(MENUBAR_CONFIG_CONFIGIP))
			 	{
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_TEXT_BGCOLOR, VAL_OFFWHITE);
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_CTRL_MODE, VAL_INDICATOR);
			 		SetCtrlVal (panelHandle, PANEL_TEXTBOX,  "Save bbuip.txt successfully!\r\n");  
			 	}
			 
			 }
			 if (strcmp("CheckCMD", value)==0)       
			 {
				 if(1==WriteConfig(BBUCOMMON_CONFIGCMD))
			 	{
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_TEXT_BGCOLOR, VAL_OFFWHITE);
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_CTRL_MODE, VAL_INDICATOR);
			 		SetCtrlVal (panelHandle, PANEL_TEXTBOX,  "Save command.txt successfully!\r\n");  
			 	}
			 }
			 free(value);
			 
			break;
	}
	return 0;
}
Exemplo n.º 3
0
int  ManipulateGraphCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    int handle, index;
    channelPtr chan;
    double x, y, above, below;

    if (event == EVENT_VAL_CHANGED)
    {
        chan = callbackData;
        GetGraphCursor (chanview.p1, CHANVIEW_GRAPH, 1, &x, &y);
        SetCtrlVal (chanview.p2, MANIP_INDEX, (int)x);
        SetCtrlVal (chanview.p2, MANIP_READING, y);
    }

    if (event == EVENT_COMMIT)
    {
        chan = callbackData;
        GetGraphCursorIndex (chanview.p1, CHANVIEW_GRAPH, 1, &handle, &index);
        GetGraphCursor (chanview.p1, CHANVIEW_GRAPH, 1, &x, &y);
        SetCtrlVal (chanview.p2, MANIP_INDEX, index);
        SetCtrlVal (chanview.p2, MANIP_READING, y);
        if (x == 0) below = 0.0;
        else below = chan->readings[(int)x-1];
        if (x == (chan->pts-1)) above = 0.0;
        else above = chan->readings[(int)x+1];
        if (fabs(above - chan->readings[(int)x]) < fabs(below - chan->readings[(int)x]))
            SetCtrlAttribute (chanview.p2, MANIP_READING, ATTR_INCR_VALUE,
            fabs(above - chan->readings[(int)x])/2);
        else
            SetCtrlAttribute (chanview.p2, MANIP_READING, ATTR_INCR_VALUE,
            fabs(below - chan->readings[(int)x])/2);
    }

    return 0;
}
Exemplo n.º 4
0
void usb1208ls_UpdateReadings (int panel, void *ptr)
{
    int i;
    MCCdevPtr dev = ptr;
    usb1208lsPtr pmd = dev->device;
    acqchanPtr acqchan;
    for(i = 0; i < 4; i++)
    {
        acqchan = pmd->aiPorts[i]->port.analogueIOport.IO.acqchan;
        acqchan->GetReading(acqchan);
        if(pmd->aiPorts[i]->control)    
        {
            SetCtrlVal (pmd->panel, USB1208LS_ANALOGUE_IN, acqchan->reading);
            SetCtrlVal (pmd->panel, USB1208LS_RANGE, pmd->aiPorts[i]->port.analogueIOport.range);
            SetCtrlVal (pmd->panel, USB1208LS_ACQ, acqchan->acquire);
        }
    }
/*  SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_0, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel % 2));
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_1, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel / 2 % 2));
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_2, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel / 4 % 2));
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_3, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel / 8 % 2));
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_4, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel / 16 % 2));
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_OUT_5, ((int)pmd->doPort->port.digitalIOport.IO.source->biaslevel / 32 %2));
    */
    pmd->diPort->port.digitalIOport.IO.acqchan->GetReading(pmd->diPort->port.digitalIOport.IO.acqchan);
    SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_IN_0, ((int)pmd->diPort->port.digitalIOport.IO.acqchan->reading % 4 % 2));
    //SetCtrlVal (pmd->panel, USB1208LS_DIGITAL_IN_1, ((int)pmd->diPort->port.digitalIOport.IO.acqchan->reading % 4 / 2));
}
Exemplo n.º 5
0
Arquivo: Sr844.c Projeto: gaorlov/DAAS
int  SR844RefCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    gpibioPtr dev = callbackData;
    double r;
    char cmd[256];

    switch (control) {
        case SR844_REF_FREQ:
            if (event == EVENT_VAL_CHANGED) {
                GetCtrlVal (panel, control, &r);
                Fmt (cmd, "FREQ%f", r);
                gpibio_Out (dev, cmd);
                r = sr844_GetDoubleVal (dev, "FREQ?");
                SetCtrlVal (panel, control, r);
                SetCtrlAttribute (panel, control, ATTR_INCR_VALUE, r/10);
            }
            break;
        case SR844_REF_PHASE:
            if (event == EVENT_VAL_CHANGED) {
                GetCtrlVal (panel, control, &r);
                Fmt (cmd, "PHAS%f", r);
                gpibio_Out (dev, cmd);
                SetCtrlVal (panel, control, sr844_GetDoubleVal(dev, "PHAS?"));
            }
            break;
    }
    return 0;
}
Exemplo n.º 6
0
void acquire_UpdatePanel(void)
{
    int menuBar;

    if (expG.UpdatePanel) expG.UpdatePanel();

    
    menuBar  = GetPanelMenuBar (acqG.p.setup);
    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_GENERAL, ATTR_DIMMED, util_TakingData());
    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_SOURCE, ATTR_DIMMED, util_TakingData());

    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_BEGIN, ATTR_DIMMED, util_TakingData());
    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_PAUSE, ATTR_DIMMED, !(utilG.acq.status == ACQ_BUSY));
    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_CONTINUE, ATTR_DIMMED, !(utilG.acq.status == ACQ_PAUSED));
    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_END, ATTR_DIMMED, !util_TakingData());

    SetMenuBarAttribute (menuBar, ACQMENUS_EXP_INFO, ATTR_DIMMED, !util_TakingData());

    acqchanlist_Dimmed (util_TakingData());

    switch (utilG.acq.status) {
        case ACQ_BUSY:
            SetCtrlVal (acqG.p.setup, ACQSETUP_STATUS, "BUSY");
            break;
        case ACQ_STOPPED:
            SetCtrlVal (acqG.p.setup, ACQSETUP_STATUS, "STOPPED");
            break;
        case ACQ_DONE:
            SetCtrlVal (acqG.p.setup, ACQSETUP_STATUS, "DONE");
            break;
        case ACQ_PAUSED:
            SetCtrlVal (acqG.p.setup, ACQSETUP_STATUS, "PAUSED");
            break;
    }
}
Exemplo n.º 7
0
static void chanfunc_CalcStatistics (channelPtr chan)
{
    double mean, std_dev, variance, rms, moment, median, mode, min, max;
    int err, order, min_i, max_i, intervals;
    char newnote[256];

    Fmt (chanfunc.note, "");
    err = MaxMin1D (chan->readings, chan->pts, &max, &max_i, &min, &min_i);
    SetInputMode (chanfunc.p, STATISTICS_MIN, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_MIN, min);
    SetInputMode (chanfunc.p, STATISTICS_MAX, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_MAX, max);
    if (err == NoErr)
    {
        Fmt (chanfunc.note, "%s<Min: %f[e2p5]\n", min);
        Fmt (chanfunc.note, "%s[a]<Max: %f[e2p5]\n", max);
    }

    err = Mean (chan->readings, chan->pts, &mean);
    SetInputMode (chanfunc.p, STATISTICS_MEAN, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_MEAN, mean);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<Mean: %f[e2p5]\n", mean);

    err = StdDev (chan->readings, chan->pts, &mean, &std_dev);
    SetInputMode (chanfunc.p, STATISTICS_STDDEV, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_STDDEV, std_dev);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<StdDev: %f[e2p5]\n", std_dev);

    err = Variance (chan->readings, chan->pts, &mean, &variance);
    SetInputMode (chanfunc.p, STATISTICS_VAR, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_VAR, variance);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<Variance: %f[e2p5]\n", variance);

    err = RMS (chan->readings, chan->pts, &rms);
    SetInputMode (chanfunc.p, STATISTICS_RMS, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_RMS, rms);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<RMS: %f[e2p5]\n", rms);

    GetCtrlVal (chanfunc.p, STATISTICS_ORDER, &order);
    err = Moment (chan->readings, chan->pts, order, &moment);
    SetInputMode (chanfunc.p, STATISTICS_MOMENT, !err);
    SetInputMode (chanfunc.p, STATISTICS_ORDER, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_MOMENT, moment);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<Moment: %f[e2p5] (order: %i)\n", moment, order);

    err = Median (chan->readings, chan->pts, &median);
    SetInputMode (chanfunc.p, STATISTICS_MEDIAN, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_MEDIAN, median);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<Median: %f[e2p5]\n", median);

    GetCtrlVal (chanfunc.p, STATISTICS_INTERVAL, &intervals);
    err = Mode (chan->readings, chan->pts, min, max, intervals, &mode);
    SetInputMode (chanfunc.p, STATISTICS_INTERVAL, !err);
    SetInputMode (chanfunc.p, STATISTICS_MODE, !err);
    SetCtrlVal (chanfunc.p, STATISTICS_INTERVAL, intervals);
    SetCtrlVal (chanfunc.p, STATISTICS_MODE, mode);
    if (err == NoErr) Fmt (chanfunc.note, "%s[a]<Mode: %f[e2p5] (intervals: %i)\n", mode, intervals);
}
Exemplo n.º 8
0
int das1602_ControlCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    portPtr port = callbackData;
    switch (control)
    {
        case DAS_CTRL_RANGE:
            if(event == EVENT_COMMIT && port)
                GetCtrlVal(panel, control, &port->port.analogueIOport.range);
            break;
        case DAS_CTRL_INPUT:
            if(event == EVENT_COMMIT && port)
            {
                int i;
                MCCdevPtr dev = port->port.analogueIOport.IO.acqchan->dev;
                das1602Ptr das = dev->device;
                GetCtrlVal(panel, control, &i);
                port->control = 0;
                if(i != -1)
                {
                    das->Achannels[i]->control = control;
                    SetCtrlAttribute (panel, control, ATTR_CALLBACK_DATA, das->Achannels[i]);
                    SetCtrlAttribute (panel, DAS_CTRL_RANGE, ATTR_CALLBACK_DATA, das->Achannels[i]);
                    SetCtrlAttribute (panel, DAS_CTRL_ACQ, ATTR_CALLBACK_DATA, das->Achannels[i]);
                    SetCtrlIndex (panel, DAS_CTRL_RANGE, das1602_IndexFromRange(das->Achannels[i]->port.analogueIOport.range));
                    SetCtrlVal (panel, DAS_CTRL_ACQ, das->Achannels[i]->port.analogueIOport.IO.acqchan->acquire);
                }
                SetCtrlAttribute (panel, DAS_CTRL_RANGE, ATTR_DIMMED, (i == -1));
                SetCtrlAttribute (panel, DAS_CTRL_ACQ, ATTR_DIMMED, (i == -1));
                if(i == -1)SetCtrlVal (panel, DAS_CTRL_ACQ, 0);
            }
            break;
        case DAS_CTRL_ACQ:
        if(event == EVENT_COMMIT && port && utilG.acq.status != ACQ_BUSY)
        {
            int i;
            MCCdevPtr dev = port->port.analogueIOport.IO.acqchan->dev;
            das1602Ptr das = dev->device;
            GetCtrlIndex (panel, DAS_CTRL_INPUT, &i);
            if(i)
            {
                GetCtrlVal (panel, control, &port->port.analogueIOport.IO.acqchan->acquire);
                    if (port->port.analogueIOport.IO.acqchan->acquire)
                    acqchanlist_AddChannel(port->port.analogueIOport.IO.acqchan);
                else
                    acqchanlist_RemoveChannel(port->port.analogueIOport.IO.acqchan);
                SetMenuBarAttribute (das->menu, port->menuitem_id, ATTR_CHECKED, port->port.analogueIOport.IO.acqchan->acquire);
            }
        else if(event == EVENT_COMMIT && utilG.acq.status == ACQ_BUSY)
            SetCtrlVal (panel, control, port->port.analogueIOport.IO.acqchan->acquire);
            
        }
        break;
    }
    if(event == EVENT_COMMIT && port)
        das1602_UpdateMeasurePanel (port);
    return 0;
}
Exemplo n.º 9
0
static void k2400_UpdateReadings (int panel, void *dev)
{
    gpibioPtr my_dev = dev;
    k2400Ptr smu = my_dev->device;
	acqchanPtr acqchan = smu->source->acqchan;
    short statusbyte;
    char rsp[256];
    int control, dim, bg, mode, m;

	if (smu->operate) {
        if (utilG.acq.status == ACQ_BUSY)
			Delay(.05);
		if (!util_TakingData() || !(smu->source->acqchan->acquire || smu->measure->acquire)) {
            gpibio_GetStatusByte (dev, &statusbyte);
            if (statusbyte & K2400_SRE_READINGDONE) 
			{
				//k2400_In (dev, rsp);
                //Scan (rsp, "%s>%f,%f", &smu->source->acqchan->reading,
                //      &smu->measure->reading); 
            }
            //if (statusbyte & K2400_SRE_READYFORTRIGGER) 
				//k2400_Out (dev, "H0X", .02);
        }
		
		time(&present);
		if(difftime(present, past) >= delay)
		{
			k2400_GetReadings(acqchan);
			time(&past);
		}
        //if (expG.acqstatus != utilG.acq.status) 
		{
            m = GetPanelMenuBar (panel);
            dim = (util_TakingData() && smu->source->inlist &&
                   (utilG.exp == EXP_SOURCE));

            if (dim) { mode = VAL_INDICATOR; bg = VAL_PANEL_GRAY;}
                else { mode = VAL_HOT; bg = VAL_WHITE;}

            SetCtrlAttribute (panel, K2400_SOURCE, ATTR_CTRL_MODE, mode);
            SetCtrlAttribute (panel, K2400_SOURCE, ATTR_TEXT_BGCOLOR, bg);

            SetInputMode (panel, K2400_OPERATE, !dim);
            SetInputMode (panel, K2400_SELECT, !dim);
            SetInputMode (panel, K2400_SENSE, !dim);
            SetMenuBarAttribute (m, K2400MENUS_FILE_LOAD, ATTR_DIMMED, dim);
        }

        k2400_CheckforProblems (my_dev);
         SetCtrlVal (panel, K2400_OVERLIMIT, smu->overLimit);

        control = GetActiveCtrl (panel);
        if (util_TakingData() || (control != K2400_SOURCE))
            SetCtrlVal (panel, K2400_SOURCE, smu->source->acqchan->reading);
        SetCtrlVal (panel, K2400_MEASURE, smu->measure->reading);
    }
}
Exemplo n.º 10
0
int UpdateBarProgress ( int hProgressHandle , int iBreakAllowFromBarNumber , int iBarNumber , int iProgress , int iCount )
{  
	int				iBarCtrlID				=	0,
					iCountCtrlID			=	0;
	
	int				iGetPanel				=	0,   
					iGetControl				=	0,
					event					=	0;
						
	char			szCount[32]				=	{0};
	
	if ( hProgressHandle < 1 )
		return 0;
	
	if ( iProgress < 0 )
		iProgress = 0;
	
	if ( iProgress > 100 )
		iProgress = 100;
	
	if ( iCount > 0 )
		sprintf ( szCount , "%d" , iCount );
	else
		strcpy ( szCount , "" );
	
	switch (iBarNumber)
	{
		case 1: iBarCtrlID = PROGRESS_BAR_1; iCountCtrlID = PROGRESS_COUNT_1; break;
		case 2: iBarCtrlID = PROGRESS_BAR_2; iCountCtrlID = PROGRESS_COUNT_2; break;
		case 3: iBarCtrlID = PROGRESS_BAR_3; iCountCtrlID = PROGRESS_COUNT_3; break;
		case 4: iBarCtrlID = PROGRESS_BAR_4; iCountCtrlID = PROGRESS_COUNT_4; break;
		case 5: iBarCtrlID = PROGRESS_BAR_5; iCountCtrlID = PROGRESS_COUNT_5; break;
		case 6: iBarCtrlID = PROGRESS_BAR_6; iCountCtrlID = PROGRESS_COUNT_6; break;
		case 7: iBarCtrlID = PROGRESS_BAR_7; iCountCtrlID = PROGRESS_COUNT_7; break;
		case 8: iBarCtrlID = PROGRESS_BAR_8; iCountCtrlID = PROGRESS_COUNT_8; break;
		case 9: iBarCtrlID = PROGRESS_BAR_9; iCountCtrlID = PROGRESS_COUNT_9; break;
		
		default: break;
	}
	
	SetCtrlVal ( hProgressHandle , iBarCtrlID , iProgress );
	SetCtrlVal ( hProgressHandle , iCountCtrlID , szCount );
	
	ProcessDrawEvents();
	
	if (( iBarNumber != 0 ) && ( iBarNumber <= iBreakAllowFromBarNumber ))
	{
		event = GetUserEvent ( 0 , &iGetPanel , &iGetControl );   
		
		if ( iGetPanel == hProgressHandle )
			if ( event == USER_REQUEST_BREAK )
				return 1;	
	}
	
	return 0;
}
Exemplo n.º 11
0
void das1602_UpdateMeasurePanel(portPtr port)
{
    if(port->measPanel)
    {
        SetCtrlVal (port->measPanel, MEASURE_RANGE, port->port.analogueIOport.range);
        SetCtrlVal (port->measPanel, MEASURE_LABEL, port->port.analogueIOport.IO.acqchan->channel->label);
        SetCtrlVal (port->measPanel, MEASURE_COEFF, port->port.analogueIOport.IO.acqchan->coeff);
        SetCtrlVal (port->measPanel, MEASURE_ACQ, port->port.analogueIOport.IO.acqchan->acquire);
    }
}
Exemplo n.º 12
0
void usb1208ls_MenuCallback(int menubar, int menuItem, void *callbackData, int panel)
{
    switch (menuItem)
    {
        case USBMENU_MEAS_IN_0:
        case USBMENU_MEAS_IN_1:
        case USBMENU_MEAS_IN_2:
        case USBMENU_MEAS_IN_3:
        
            if(utilG.acq.status != ACQ_BUSY){
                portPtr port = callbackData;
                MCCdevPtr dev = port->port.analogueIOport.IO.acqchan->dev;
                usb1208lsPtr pmd = dev->device;
                port->measPanel = port->measPanel? port->measPanel : LoadPanel(utilG.p, "USB-1208LSu.uir", MEASURE);
                SetCtrlAttribute (port->measPanel, MEASURE_RANGE, ATTR_CALLBACK_DATA, port->port.analogueIOport.IO.acqchan);
                SetCtrlAttribute (port->measPanel, MEASURE_LABEL, ATTR_CALLBACK_DATA, port->port.analogueIOport.IO.acqchan);
                SetCtrlAttribute (port->measPanel, MEASURE_COEFF, ATTR_CALLBACK_DATA, port->port.analogueIOport.IO.acqchan);
                SetCtrlAttribute (port->measPanel, MEASURE_NOTE, ATTR_CALLBACK_DATA, port->port.analogueIOport.IO.acqchan);
                SetCtrlAttribute (port->measPanel, MEASURE_ACQ, ATTR_CALLBACK_DATA, port->port.analogueIOport.IO.acqchan);
                SetPanelAttribute (port->measPanel, ATTR_TITLE, port->port.analogueIOport.IO.acqchan->channel->label);
                
                SetCtrlVal (port->measPanel, MEASURE_LABEL, port->port.analogueIOport.IO.acqchan->channel->label);
                SetCtrlVal (port->measPanel, MEASURE_RANGE, port->port.analogueIOport.range);
                SetCtrlVal (port->measPanel, MEASURE_COEFF, port->port.analogueIOport.IO.acqchan->coeff);
                SetCtrlVal (port->measPanel, MEASURE_NOTE, port->port.analogueIOport.IO.acqchan->note);
                SetCtrlVal (port->measPanel, MEASURE_ACQ, port->port.analogueIOport.IO.acqchan->acquire);
                DisplayPanel (port->measPanel);
            }
            break;
        case USBMENU_SOURCE_DAC1:
        case USBMENU_SOURCE_DAC2:
        case USBMENU_SOURCE_DAC3:
            {
                sourcePtr src = callbackData;
                switch(utilG.exp)
                {
                    case EXP_SOURCE: source_InitPanel(src); break;
                    case EXP_FLOAT : gensrc_InitPanel(src); break;
                }
            }
            break;
        case USBMENU_SOURCE_DAC4:
            {
                portPtr port = callbackData;
                boards_DigitalSourceInit(port);
            }
            break;
        case USBMENU_FILE_SAVE:
            boards_Save(callbackData, usb1208ls_Save);
            break;
        case USBMENU_FILE_LOAD:
            boards_Load(callbackData, usb1208ls_Load);
            break;
    }
}
Exemplo n.º 13
0
Arquivo: Sr844.c Projeto: gaorlov/DAAS
void sr844_UpdateControls(int panel, gpibioPtr dev)
{
	sr844_CheckClear(dev);
	SetCtrlIndex(panel, SR844_CTRL_TC, sr844_GetIntVal(dev, "OFLT?"));
	sr844_CheckClear(dev);
	SetCtrlIndex(panel, SR844_CTRL_SENS, sr844_GetIntVal(dev, "SENS?"));
	sr844_CheckClear(dev);
	SetCtrlVal(panel, SR844_CTRL_1MO50O, sr844_GetIntVal(dev, "INPZ?"));
	sr844_CheckClear(dev);
	SetCtrlVal(panel, SR844_CTRL_FILTSLOPE, sr844_GetIntVal(dev, "OFSL?"));
}
Exemplo n.º 14
0
Arquivo: Sr844.c Projeto: gaorlov/DAAS
void sr844_XYRP_UpdateReadings (int panel, void *lia)
{
    sr844Ptr my_lia = lia;

    SetCtrlVal (panel, SR844_XYMP_XMEAS, my_lia->channels[X]->reading);
    SetCtrlVal (panel, SR844_XYMP_YMEAS, my_lia->channels[Y]->reading);
    SetCtrlVal (panel, SR844_XYMP_RMEAS, my_lia->channels[R]->reading);
    SetCtrlVal (panel, SR844_XYMP_PMEAS, my_lia->channels[T]->reading);
	if(utilG.acq.status == ACQ_BUSY)
		HidePanel(panel);
}
Exemplo n.º 15
0
int CVICALLBACK BasicFunctions (int panel, int control, int event,
                                void *callbackData, int eventData1, int eventData2)
{
    double dState;
    
    char sTmp [4096];
    
    switch (event)
    {
        case EVENT_COMMIT:
            switch(control)
            {
                case P_BASIC_FN_RNG_SHOW_UI:
                    
                    GetCtrlVal (pBasicFn, P_BASIC_FN_RNG_SHOW_UI, &iCtrlVal);
                    
                    switch(iCtrlVal)
                    {
                        case 0:
                            DisplayPanel (pSystem);
                        break;
                        
                        case 1:
                            DisplayPanel (pControlPad);
                            SetCtrlAttribute (pBasicFn, P_BASIC_FN_TIM_DATA, ATTR_ENABLED, 1);
                        break;
                    }
            }

        break;
        
        case EVENT_TIMER_TICK:
            switch (control)
            {
                case P_BASIC_FN_TIM_DATA:
                
               //     DebugPrintf ("---> [P_BASIC_FN_TIM_DATA]\n");
                
                    PiCardFnct (PI_GET_POS);
                    GetPiCardScrtItem (PI_POS, 1, &dState);
                    sprintf (sTmp, "%f", dState);
                
                    SetCtrlVal (pControlPad, P_CTRL_PAD_LBL_CURRENT_POS_4, sTmp);
                
                    GetPiCardScrtItem (PI_LAST_POS, 1, &dState);
                    sprintf (sTmp, "%f", dState);
                
                    SetCtrlVal (pControlPad, P_CTRL_PAD_LBL_LAST_POS, sTmp);
                
                 break;
            }
    }
    return 0;
}
Exemplo n.º 16
0
void acquire_UpdateDataFileInfo (void)
{
    SetInputMode (acqG.p.setup, ACQSETUP_FILENAME, !util_TakingData());
    SetInputMode (acqG.p.setup, ACQSETUP_FILEEXT, !util_TakingData());
    SetInputMode (acqG.p.setup, ACQSETUP_SAVEAS, !util_TakingData());

    SetCtrlVal (acqG.p.setup, ACQSETUP_FILENAME, dataFile.name);
    SetCtrlVal (acqG.p.setup, ACQSETUP_FILEEXT, dataFile.ext);
    acquire_DataFileMakePath();
    SetCtrlVal (acqG.p.setup, ACQSETUP_FILEPATH, dataFile.path);
}
Exemplo n.º 17
0
///----------------------------------------------------------------------------
/// HIFN Network Variable Data Transferred Callback called when written data
/// HIFN is successfully received by the server.
/// HIFN NOTE: This callback is called on a worker thread and not the main thread.
/// HIPAR handle/Handle of the Network Variable connection
/// HIPAR error/The error, if any, in transferring the Network Variable data
/// HIPAR callbackData/User specified callback data
///----------------------------------------------------------------------------
static void CVICALLBACK DataTransferredCallback (void * handle, int error, 
        void * callbackData)
{
  if (error < 0)
  {
    SetCtrlVal (panelHandle, PANEL_CNVSTATUS, CNVGetErrorDescription(error));
  }
  else
  {
    SetCtrlVal (panelHandle, PANEL_LED, 1);
  }
}
Exemplo n.º 18
0
Arquivo: Sr844.c Projeto: gaorlov/DAAS
void sr844_ADC_UpdateReadings (int panel, void *dev)
{
    gpibioPtr my_dev = dev;
    sr844Ptr lia = my_dev->device;

    sr844_GetADCs (my_dev);

    SetCtrlVal (panel, SR844_ADC_MEAS_1, lia->channels[ADC1]->reading);
    SetCtrlVal (panel, SR844_ADC_MEAS_2, lia->channels[ADC2]->reading);
	if(utilG.acq.status == ACQ_BUSY)
		HidePanel(panel);
}
Exemplo n.º 19
0
Arquivo: Sr844.c Projeto: gaorlov/DAAS
int  ADCControlCallback844(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    sr844Ptr lia;
    acqchanPtr acqchan;

    acqchan = callbackData;

    switch (control) {
        case SR844_ADC_NOTE_1:
        case SR844_ADC_NOTE_2:
            AcqDataNoteCallback (panel, control, event, callbackData, eventData1, eventData2);
            break;
        case SR844_ADC_ACQ_1:
        case SR844_ADC_ACQ_2:
            if (event == EVENT_VAL_CHANGED) {
                GetCtrlVal (panel, control, &acqchan->acquire);
                if (acqchan->acquire) acqchanlist_AddChannel (acqchan);
                    else acqchanlist_RemoveChannel (acqchan);
            }
            break;
        case SR844_ADC_CONVERSION_1:
        case SR844_ADC_CONVERSION_2:
            if (event == EVENT_VAL_CHANGED) {
                GetCtrlVal (panel, control, &acqchan->conversion);
                if (acqchan->p) SetCtrlVal (acqchan->p, ACQDATA_CONV, acqchan->conversion);
            }
            break;
        case SR844_ADC_COEFF_1:
        case SR844_ADC_COEFF_2:
            if (event == EVENT_COMMIT) {
                GetCtrlVal (panel, control, &acqchan->coeff);
                if (acqchan->p) SetCtrlVal (acqchan->p, ACQDATA_COEFF, acqchan->coeff);
            }
            break;
        case SR844_ADC_LABEL_1:
        case SR844_ADC_LABEL_2:
            if (event == EVENT_COMMIT) {
                GetCtrlVal (panel, control, acqchan->channel->label);
                acqchanlist_ReplaceChannel (acqchan);
                if (acqchan->p) SetPanelAttribute (acqchan->p, ATTR_TITLE, acqchan->channel->label);
            }
            break;
        case SR844_ADC_CLOSE:
            if (event == EVENT_COMMIT) {
                lia = callbackData;
                devPanel_Remove(panel);
                DiscardPanel (panel);
            }
            break;
    }
    return 0;
}
Exemplo n.º 20
0
void acquire_UpdateDataInfoPanel (void)
{
    double pasttime, timeperpt;
    int pts2go;

    if (acqinfoP) {
        pasttime = Timer()-acqchanG.time;
        pts2go = utilG.acq.nPts-1-utilG.acq.pt;
        timeperpt = pasttime/(utilG.acq.pt+1);
        SetCtrlVal (acqinfoP, ACQINFO_PTS2GO, pts2go);
        SetCtrlVal (acqinfoP, ACQINFO_TIMEPERPT, timeperpt);
        SetCtrlVal (acqinfoP, ACQINFO_ELAPSEDTIME, pasttime/60);
        SetCtrlVal (acqinfoP, ACQINFO_TIME2GO, (double)pts2go*timeperpt/60);
    }
}
Exemplo n.º 21
0
int CVICALLBACK chanel2 (int panel, int control, int event,
						 void *callbackData, int eventData1, int eventData2)
{
	static char write_buffer[100];
	switch (event)
	{
		case EVENT_COMMIT:
			strcpy (write_buffer, "DATA:SOURCE CH2");
			ibwrt (device, write_buffer, strlen(write_buffer));
			SetCtrlVal(ERG_panel, ERG_panel_LED_chanel2, 1);
			SetCtrlVal(ERG_panel, ERG_panel_LED_chanel1, 0);
			break;
	}
	return 0;
}
Exemplo n.º 22
0
int CVICALLBACK DataFileSuffixControlCallback (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
    {
        char strSuff[MAX_PATHNAME_LEN];
        case EVENT_COMMIT:
            GetCtrlVal(acqG.p.setup, ACQSETUP_FILESUFFIX, strSuff);
            // validate the filename for valid chars
            char invChars[] = {'<', '>', ':', '"', '/', '\\', '|', '?', '*'};  
            int nChars = 9;
            void * chP;
            char ch;
            
            for( int i = 0; i<nChars; i++){
                ch = invChars[i];
                chP = strchr(strSuff, ch);

                if ( chP ) {  
                    MessagePopup("Invalid filename character in the file suffix",
                                      "Do not to use <>:\"/\\\|?* characters");
                    // reverse to previous val
                    SetCtrlVal(acqG.p.setup, ACQSETUP_FILESUFFIX, dataFile.fileSuffix);
                    return 0;
                }
            }
            // store validated suffix
            strcpy(dataFile.fileSuffix, strSuff);

            break;
    }
    return 0;
}
Exemplo n.º 23
0
void main()

{
int handle, panel, id;
int var;

id = 0;

 panel = LoadPanel (0, "primcvi.uir", mipanel1);

 DisplayPanel (panel);


while (id != mipanel1_salir) 
	{
	GetUserEvent (0, &handle, &id);
	
    GetCtrlVal (panel, mipanel1_pot1, &var);
	SetCtrlVal (panel, mipanel1_tanque1, var);
	
	}

DiscardPanel (panel);

} /* del main */
Exemplo n.º 24
0
int  K2400MeasControlCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2)
{
    acqchanPtr acqchan = callbackData;
    switch (control) {
        case K2400_MEAS_ACQ:
            if (event == EVENT_VAL_CHANGED) {
                GetCtrlVal (panel, control, &acqchan->acquire);
                if (acqchan->acquire) acqchanlist_AddChannel (acqchan);
                    else acqchanlist_RemoveChannel (acqchan);
            }
            break;
        case K2400_MEAS_COEFF:
            if (event == EVENT_COMMIT) {
                GetCtrlVal (panel, control, &acqchan->coeff);
                if (acqchan->p) SetCtrlVal (acqchan->p, ACQDATA_COEFF, acqchan->coeff);
            }
            break;
        case K2400_MEAS_LABEL:
            if (event == EVENT_COMMIT) {
                GetCtrlVal (panel, control, acqchan->channel->label);
                acqchanlist_ReplaceChannel (acqchan);
                if (acqchan->p) SetPanelAttribute (acqchan->p, ATTR_TITLE, acqchan->channel->label);
            }
            break;
        case K2400_MEAS_CLOSE:
            if (event == EVENT_COMMIT) {
                devPanel_Remove(panel);
                
                DiscardPanel (panel);
            }
            break;
    }
    return 0;
}
Exemplo n.º 25
0
static int WriteOupputBox(int flag) 
{
	FILE    *hFile;  char pathName[MAX_PATHNAME_LEN]; char dirName[MAX_PATHNAME_LEN]; char buffer[300];

	
	ResetTextBox (outputHandle, OUTPUTVIEW_OUTPUTBOX, ""); 
	GetProjectDir (dirName); 
	if (0 == flag)    // mean write output.txt to box
	{
    	MakePathname (dirName, "output.txt", pathName);
	}
	if (1 == flag)     // mean write help.txt to box
	{
	   MakePathname (dirName, "help.txt", pathName); 
	}
	if (hFile = fopen(pathName, "r"))
    {
        while (fgets(buffer, (int)sizeof(buffer), hFile))
        {
			SetCtrlVal (outputHandle, OUTPUTVIEW_OUTPUTBOX, buffer); 
        }
	}
	else
	{
	  return 0;
	}
	if(hFile)
	{
	    fclose(hFile);  
	}		
	return 1;
}
Exemplo n.º 26
0
int CVICALLBACK ConfigCMD (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			 DimAction(1);
			  WriteLog();
			  ResetTextBox (panelHandle, PANEL_TEXTBOX, "");
		
			if (ReadConfigFile(BBUCOMMON_CONFIGCMD))
			{
				if (0==InstallPopup(configHandle))
				{
					SetPanelAttribute (configHandle, ATTR_TITLE, "CheckCMD");    
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_ENTER_IS_NEWLINE, 1);
					SetCtrlAttribute (configHandle, CONFIG_BOX, ATTR_TEXT_BGCOLOR, VAL_OFFWHITE);
				}
			}
			else
			{
				SetCtrlVal (panelHandle, PANEL_TEXTBOX, "Read data from cmd.txt error,please check it by manual!\r\n");
			}
					
		
			  DimAction(0);   
			break;
	}
	return 0;
}
Exemplo n.º 27
0
static int ReadConfigFile( int item)
{
	FILE    *hFile; 		 char pathName[MAX_PATHNAME_LEN]; char dirName[MAX_PATHNAME_LEN];	 char buffer[300]; 	
	
	ResetTextBox (configHandle, CONFIG_BOX, ""); 
	GetProjectDir (dirName); 
	switch(item)
	{
		case MENUBAR_CONFIG_CONFIGIP:
			MakePathname (dirName, "bbuip.txt", pathName);
			break;
		case BBUCOMMON_CONFIGCMD:
			MakePathname (dirName, "command.txt", pathName); 
			break;
	}
	if (hFile = fopen(pathName, "r"))
    {
        while (fgets(buffer, (int)sizeof(buffer), hFile))
        {
			SetCtrlVal (configHandle, CONFIG_BOX, buffer); 
        }
	}
	else
	{
	  return 0;
	}
	if(hFile)
	{
	    fclose(hFile);  
	}
	return 1;
	

}  
Exemplo n.º 28
0
void SRS_onoff(void)
{
	static char write_buffer[100];
	ibsic(device1);

	if (SRS_flag==0)	 //SRS output set on 0.1V --> not triggering
	{
//			printf("SRS status: %d\n",SRS_flag);
		SRS_flag=1;
		strcpy (write_buffer, "OM 4,3");
		ibwrt (device1, write_buffer, strlen(write_buffer));

		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_LABEL_TEXT, "Enable");
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_CMD_BUTTON_COLOR, VAL_GREEN);
		SetCtrlVal(ERG_panel, ERG_panel_LED_SRS, 0);
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_DIMMED, 0);
	}

	else if (SRS_flag==1)   //SRS output set on TTL --> triggering!
	{

//			printf("SRS status: %d\n",SRS_flag);
		SRS_flag=0;
		strcpy (write_buffer, "OM 4,0");
		ibwrt (device1, write_buffer, strlen(write_buffer));

		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_LABEL_TEXT, "Disable");
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_CMD_BUTTON_COLOR, VAL_RED);
		SetCtrlVal(ERG_panel, ERG_panel_LED_SRS, 1);
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_DIMMED, 0);
	}

	else  if (SRS_flag==2)   //Scanning mode SRS output set on TTL --> triggering!
	{

//			printf("SRS status: %d\n",SRS_flag);
		SRS_flag=1;
		strcpy (write_buffer, "OM 4,0");
		ibwrt (device1, write_buffer, strlen(write_buffer));

		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_LABEL_TEXT, "Scanning");
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_DIMMED, 1);
		SetCtrlAttribute (ERG_panel, ERG_panel_SRS, ATTR_CMD_BUTTON_COLOR, VAL_BLUE);
		SetCtrlVal(ERG_panel, ERG_panel_LED_SRS, 1);
	}
	return;
}
Exemplo n.º 29
0
/*****************************************************************************
.						
. Función C:			PRE_SeleccionLadoManipulador
. Responsable:			César Armando Cruz Mendoza
. Descripcion: 			Procesa la selección del usuario para el lado en
.						que se encontrará ubicado el manipulador para la
.						transmision que se esta configurando
. Parámetro de entrada:	ninguno
. Parámetro de salida:	cero
. Fecha de creación:	12 de Marzo de 2014
.
*****************************************************************************/
int PRE_SeleccionLadoManipulador(int iControl)
{
	
	if (iControl == pCatTransm_chkLadoDerecho)
	{
		SetCtrlVal (iPanelCatTransmisiones, pCatTransm_chkLadoDerecho, 1);
		SetCtrlVal (iPanelCatTransmisiones, pCatTransm_chkLadoIzquierdo, 0);
	}
	else
	{
		SetCtrlVal (iPanelCatTransmisiones, pCatTransm_chkLadoDerecho, 0);
		SetCtrlVal (iPanelCatTransmisiones, pCatTransm_chkLadoIzquierdo, 1);
	}
	
	
	return 0;
}
Exemplo n.º 30
0
void setup_oscillo(void)
{
	static char write_buffer[100];
	//printf("test\n");
	// find hardware
	reset_connection_oscillo();
	// configure oscilloscope 
	strcpy (write_buffer, "DATA:ENCdg RIBinary");
	ibwrt (device, write_buffer, strlen(write_buffer));

// strcpy (write_buffer, "TRIGger:MAIn:MODe NORMal");
// ibwrt (device, write_buffer, strlen(write_buffer));

	strcpy (write_buffer, "DATA:WIDTH 1");
	ibwrt (device, write_buffer, strlen(write_buffer));

	strcpy (write_buffer, "DATA:SOURCE CH1");
	ibwrt (device, write_buffer, strlen(write_buffer));
	SetCtrlVal(ERG_panel, ERG_panel_LED_chanel1, 1);
	SetCtrlVal(ERG_panel, ERG_panel_LED_chanel2, 0);
	
// to check the oscillo settings	
/*	strcpy (write_buffer, "DATA?");
	ibwrt (device, write_buffer, strlen(write_buffer));
	ibrd (device, read_buffer, numToRead);
	printf("%s", read_buffer);
*/

// to setup the oscillo scales from the start
	/*
	strcpy (write_buffer, "CH2:SCALE 2E-3");
	ibwrt (device, write_buffer, strlen(write_buffer));

	strcpy (write_buffer, "CH2:POSITION -2");
	ibwrt (device, write_buffer, strlen(write_buffer));

	strcpy (write_buffer, "HORIZONTAL:SECdiv 10E-3");
	ibwrt (device, write_buffer, strlen(write_buffer));

	strcpy (write_buffer, "HORIZONTAL:POSITION 40E-3");
	ibwrt (device, write_buffer, strlen(write_buffer));
	*/
	return;

}