Пример #1
0
static void *k213_Create (gpibioPtr dev)
{
    k213Ptr quadsrc;
    int port;
	quadsrc = malloc (sizeof(k213Type));
	if (dev) quadsrc->id = dev->id;
	quadsrc->range[0] = range_Create(0, 0, 0);
	quadsrc->range[1] = range_Create(1, -1, 0.00025);
	quadsrc->range[2] = range_Create(5, -5, 0.00125);
	quadsrc->range[3] = range_Create(10, -10, 0.0025);
    quadsrc->range[4] = NULL;
    for (port = 0; port < 4; port++) {
        quadsrc->port[port].autorange = TRUE;
        quadsrc->port[port].range = 0;
    }
	
    quadsrc->port[0].src = source_Create ("K213 Port 1", dev, k213_SetPort1,
                                 k213_GetPort1);
	
    quadsrc->port[1].src = source_Create ("K213 Port 2", dev, k213_SetPort2,
                                 k213_GetPort2);
    
	quadsrc->port[2].src = source_Create ("K213 Port 3", dev, k213_SetPort3,
                                 k213_GetPort3);
    
	quadsrc->port[3].src = source_Create ("K213 Port 4", dev, k213_SetPort4,
                                 k213_GetPort4);
	
    if (dev) dev->device = quadsrc;
    return quadsrc;
}
Пример #2
0
void dda08_Create (MCCdevPtr dev)
{
	int i;
	char name[50];
	dda08Ptr dda = malloc(sizeof(dda08Type));
	
	dev->device = dda;
	dda->panel = 0;
	for(i = 0; i < 8; i++)
	{
		//portPtr create_Port(*dev, *name, type, direction, GetReading, SetLevel, channel, range)
		Fmt (name, "DDA08 analog out %i", i);
		dda->Achannels[i] = create_Port(dev, name, ANALOGUE, OUT_PORT, ReadAnalogueOut, SetAnalogue, i, BIP10VOLTS);
		dda->Achannels[i]->port.analogueIOport.IO.source->max = 10;
		dda->Achannels[i]->port.analogueIOport.IO.source->min = -10;
		dda->Achannels[i]->port.analogueIOport.IO.source->ranges.temprange[0] = range_Create(10, -10, 0.000305);
	}
	dda->range[0] = range_Create(10, -10, 0.000305);
	dda->range[1] = range_Create(5, -5, 0.0001525);
	dda->range[2] = range_Create(2.5, -2.5, 0.00007625);
	dda->buttons[0] = onoff_Create(DDA_CTRL_RANGE_0, DDA_CTRL_ANALOG_OUT_0, DDA_CTRL_SOURCE_0);
	dda->buttons[1] = onoff_Create(DDA_CTRL_RANGE_1, DDA_CTRL_ANALOG_OUT_1, DDA_CTRL_SOURCE_1);
	dda->buttons[2] = onoff_Create(DDA_CTRL_RANGE_2, DDA_CTRL_ANALOG_OUT_2, DDA_CTRL_SOURCE_2);
	dda->buttons[3] = onoff_Create(DDA_CTRL_RANGE_3, DDA_CTRL_ANALOG_OUT_3, DDA_CTRL_SOURCE_3);
	dda->buttons[4] = onoff_Create(DDA_CTRL_RANGE_4, DDA_CTRL_ANALOG_OUT_4, DDA_CTRL_SOURCE_4);
	dda->buttons[5] = onoff_Create(DDA_CTRL_RANGE_5, DDA_CTRL_ANALOG_OUT_5, DDA_CTRL_SOURCE_5);
	dda->buttons[6] = onoff_Create(DDA_CTRL_RANGE_6, DDA_CTRL_ANALOG_OUT_6, DDA_CTRL_SOURCE_6);
	dda->buttons[7] = onoff_Create(DDA_CTRL_RANGE_7, DDA_CTRL_ANALOG_OUT_7, DDA_CTRL_SOURCE_7);
}
Пример #3
0
void das1602_Create (MCCdevPtr dev)
{
    int i;
    char name[50];
    das1602Ptr das = malloc(sizeof(das1602Type));
    
    dev->device = das;
    das->panel = 0;
    for(i = 0; i < 8; i++)
    {
        //portPtr create_Port(*dev, *name, type, direction, GetReading, channel, range)
        Fmt (name, "PCI-DAS1602 analog in %i", i);
        das->Achannels[i] = create_Port(dev, name, ANALOGUE, IN_PORT, ReadAnalogue, i, BIP10VOLTS);
        das->Achannels[i]->control = 0;
    }
    for(i = 0; i < 2; i++)
    {
        //portPtr create_Port(*dev, *name, type, direction, GetReading, SetLevel, channel, range)
        Fmt (name, "PCI-DAS1602 analog out %i", i);
        das->Achannels[i+8] = create_Port(dev, name, ANALOGUE, OUT_PORT, ReadAnalogueOut, SetAnalogue, i, BIP10VOLTS);
        das->Achannels[i+8]->port.analogueIOport.IO.source->max = 10;
        das->Achannels[i+8]->port.analogueIOport.IO.source->min = -10;
        das->Achannels[i+8]->port.analogueIOport.IO.source->ranges.temprange[0] = range_Create(10, -10, 0.000305);
    }
    das->Achannels[0]->menuitem_id = DASMENU_MEAS_IN_0;
    das->Achannels[1]->menuitem_id = DASMENU_MEAS_IN_1;
    das->Achannels[2]->menuitem_id = DASMENU_MEAS_IN_2;
    das->Achannels[3]->menuitem_id = DASMENU_MEAS_IN_3;
    das->Achannels[4]->menuitem_id = DASMENU_MEAS_IN_4;
    das->Achannels[5]->menuitem_id = DASMENU_MEAS_IN_5;
    das->Achannels[6]->menuitem_id = DASMENU_MEAS_IN_6;
    das->Achannels[7]->menuitem_id = DASMENU_MEAS_IN_7;
}
Пример #4
0
void dda08_Load (MCCdevPtr dev)
{
	int i;
	dda08Ptr dda = dev->device;
	for(i = 0; i < 8; i++)
	{
		port_Load(dev, dda->Achannels[i]);
		dda->Achannels[i]->port.analogueIOport.IO.source->max = 10;
		dda->Achannels[i]->port.analogueIOport.IO.source->min = -10;
		dda->Achannels[i]->port.analogueIOport.IO.source->ranges.range[0] = range_Create(10, -10, 0.000305);
	}
}
Пример #5
0
void das1602_Load (MCCdevPtr dev)
{
    int i;
    das1602Ptr das = dev->device;
    for(i = 0; i < 10; i++)
        port_Load(dev, das->Achannels[i]);
    for(i = 8; i < 10; i++)
    {
        das->Achannels[i]->port.analogueIOport.IO.source->max = 10;
        das->Achannels[i]->port.analogueIOport.IO.source->min = -10;
        das->Achannels[i]->port.analogueIOport.IO.source->ranges.range[0] = range_Create(10, -10, 0.000305);
    }
}
Пример #6
0
/*
create_Port(*dev, *name, type, direction, GetReading, port, devtype, bits;)
create_Port(*dev, *name, type, direction, GetReading, SetLevel, port, devtype, bits)
create_Port(*dev, *name, type, direction, GetReading, channel, range)
create_Port(*dev, *name, type, direction, GetReading, SetLevel, channel, range)
//*/                                                                 
void usb1208ls_Create (MCCdevPtr dev)
{
    usb1208lsPtr pmd = malloc(sizeof(usb1208lsType));
    int i;
    char name[30];
    dev->device = pmd;
    pmd->ranges = calloc(1, sizeof(rangeType));
    pmd->bits = calloc(6, sizeof(int));
    pmd->panel = 0;
    pmd->ranges[0] = range_Create (5, 0, 5.0/1024.0);
    for (i = 0; i < 4; i ++)
    {
        Fmt(name, "analog IN %i", i);
        pmd->aiPorts[i] = create_Port (dev, name, ANALOGUE, IN_PORT, ReadAnalogue, i, BIP10VOLTS);
    }
    for (i = 0; i < 2; i ++)
    {
        Fmt(name, "analog OUT %i", i);
        pmd->aoPorts[i] = create_Port (dev, name, ANALOGUE, OUT_PORT, usb1208ls_ReadAnalogueOut, SetAnalogue, i, UNI5VOLTS);
        pmd->aoPorts[i]->port.analogueIOport.IO.source->ranges.temprange[0] = pmd->ranges[0];
        pmd->aoPorts[i]->port.analogueIOport.IO.source->min = 0;
        pmd->aoPorts[i]->port.analogueIOport.IO.source->max = 5;
    }
    pmd->aoPorts[1]->port.analogueIOport.IO.source->SetLevel = SetAnalogue;
    
    Fmt(name, "IPS100 ramp");
    pmd->aoPorts[2] = create_Port (dev, name, ANALOGUE, OUT_PORT, usb1208ls_ReadDigitalFeedback, usb1208ls_SetLevel, 0, UNI5VOLTS);
    pmd->aoPorts[2]->port.analogueIOport.IO.source->ranges.temprange[0] = pmd->ranges[0];
    pmd->aoPorts[2]->port.analogueIOport.IO.source->min = 0;
    pmd->aoPorts[2]->port.analogueIOport.IO.source->max = 5;
    pmd->aoPorts[2]->port.analogueIOport.IO.source->segments[0]->error.on = 1;
    
    Fmt(name, "digital OUT %i", i);
    pmd->doPort = create_Port (dev, name, DIGITAL, OUT_PORT, usb1208ls_ReadFeedback, SetDigital, FIRSTPORTA, 0, 8);
    Fmt(name, "digital IN %i", i);
    pmd->diPort = create_Port (dev, name, DIGITAL, IN_PORT, ReadDigital, FIRSTPORTB, 0, 0);
    pmd->aiPorts[0]->menuitem_id = USBMENU_MEAS_IN_0;
    pmd->aiPorts[1]->menuitem_id = USBMENU_MEAS_IN_1;
    pmd->aiPorts[2]->menuitem_id = USBMENU_MEAS_IN_2;
    pmd->aiPorts[3]->menuitem_id = USBMENU_MEAS_IN_3;
}