Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 47d48f85 rédigé par Pierre LINDENBAUM's avatar Pierre LINDENBAUM :speech_balloon:
Parcourir les fichiers

cont

parent d881485c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
x: test_write
./test_write
test_write : test_write.c
gcc -o $@ $< -lcomedi
all: dist/mycomedi.jar
java -cp $< -Djava.library.path=src/main/jni com.github.lindenb.mycomedi.ComediJFX
......
/*
* Tutorial example #2
* Part of Comedilib
*
* Copyright (c) 1999,2000 David A. Schleef <ds@schleef.org>
* Copyright (c) 2008 Frank Mori Hess <fmhess@users.sourceforge.net>
*
* This file may be freely modified, distributed, and combined with
* other software, as long as proper attribution is given in the
* source code.
*/
#include <stdio.h> /* for printf() */
#include <stdlib.h>
#include <comedilib.h>
#include <ctype.h>
#include <math.h>
#define DEBUG(f_, ...) do { fprintf(stderr,"[DEBUG:%d]\"",__LINE__);fprintf(stderr,(f_), __VA_ARGS__);fprintf(stderr,"\"\n");} while(0);
int subdev = 1; /* change this to your input subdevice */
int chan = 0; /* change this to your channel */
int range = 0; /* more on this later */
int aref = AREF_GROUND; /* more on this later */
const char filename[] = "/dev/comedi0";
int main(int argc, char *argv[])
{
comedi_t *device;
;
double physical_value;
int retval;
comedi_range *range_info;
lsampl_t maxdata;
device = comedi_open(filename);
if (device == NULL) {
comedi_perror(filename);
return 1;
}
range_info = comedi_get_range(device, subdev, chan, range);
maxdata = comedi_get_maxdata(device, subdev, chan);
comedi_set_global_oor_behavior(COMEDI_OOR_NAN);
double userdata=10;
double sign=1;
double shift=0.001;
double max=10;
for(;;)
{
//DEBUG("userdata = %g",userdata);
lsampl_t data = comedi_from_phys(userdata, range_info, maxdata);
//DEBUG("data = %d",data);
retval = comedi_data_write(device, subdev, chan, range, aref,
data);
if (retval < 0) {
comedi_perror(filename);
return 1;
}
userdata +=(sign*shift);
if(userdata > max) {
userdata= max;
sign=-sign;
}
else if(userdata < -max){
userdata= -max;
sign=-sign;
}
}
return 0;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter