mirror of
https://github.com/eddyem/mytakepic.git
synced 2025-12-06 10:45:19 +03:00
add simple wheel support
This commit is contained in:
parent
15a91168db
commit
2dcb7493ac
@ -55,6 +55,7 @@ glob_pars const Gdefault = {
|
|||||||
.shtr_cmd = -1,
|
.shtr_cmd = -1,
|
||||||
.confio = -1, .setio = -1,
|
.confio = -1, .setio = -1,
|
||||||
.gotopos = INT_MAX, .addsteps = INT_MAX,
|
.gotopos = INT_MAX, .addsteps = INT_MAX,
|
||||||
|
.setwheel = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -95,8 +96,10 @@ myoption cmdlnopts[] = {
|
|||||||
{"Y1", NEED_ARG, NULL, 0, arg_int, APTR(&G.Y1), N_("frame Y1 coordinate (-1 - all with overscan)")},
|
{"Y1", NEED_ARG, NULL, 0, arg_int, APTR(&G.Y1), N_("frame Y1 coordinate (-1 - all with overscan)")},
|
||||||
{"set-ioport",NEED_ARG, NULL, 's', arg_int, APTR(&G.setio), N_("set I/O port pins to given value (decimal number, pin1 is LSB)")},
|
{"set-ioport",NEED_ARG, NULL, 's', arg_int, APTR(&G.setio), N_("set I/O port pins to given value (decimal number, pin1 is LSB)")},
|
||||||
{"conf-ioport",NEED_ARG,NULL, 'c', arg_int, APTR(&G.confio), N_("configure I/O port pins to given value (decimal number, pin1 is LSB, 1 == output, 0 == input)")},
|
{"conf-ioport",NEED_ARG,NULL, 'c', arg_int, APTR(&G.confio), N_("configure I/O port pins to given value (decimal number, pin1 is LSB, 1 == output, 0 == input)")},
|
||||||
{"goto", NEED_ARG, NULL, 'g', arg_int, APTR(&G.gotopos), N_("move wheel/turret motor to absolute position")},
|
{"goto", NEED_ARG, NULL, 'g', arg_int, APTR(&G.gotopos), N_("move focuser to absolute position")},
|
||||||
{"addsteps",NEED_ARG, NULL, 'a', arg_int, APTR(&G.addsteps), N_("move wheel/turret motor to relative position")},
|
{"addsteps",NEED_ARG, NULL, 'a', arg_int, APTR(&G.addsteps), N_("move focuser to relative position")},
|
||||||
|
{"wheel-get",NO_ARGS, NULL, 0, arg_none, APTR(&G.getwheel), N_("get current wheel position")},
|
||||||
|
{"wheel-set",NEED_ARG, NULL, 'w', arg_int, APTR(&G.setwheel), N_("set wheel position")},
|
||||||
//{"", NEED_ARG, NULL, '', arg_int, APTR(&G.), N_("")},
|
//{"", NEED_ARG, NULL, '', arg_int, APTR(&G.), N_("")},
|
||||||
|
|
||||||
{"set-temp",NEED_ARG, NULL, 't', arg_double, APTR(&G.temperature),N_("set CCD temperature to given value (degr C)")},
|
{"set-temp",NEED_ARG, NULL, 't', arg_double, APTR(&G.temperature),N_("set CCD temperature to given value (degr C)")},
|
||||||
|
|||||||
@ -50,8 +50,10 @@ typedef struct{
|
|||||||
int setio; // set value of ioport
|
int setio; // set value of ioport
|
||||||
int confio; // configure ioport
|
int confio; // configure ioport
|
||||||
double temperature; // temperature of CCD
|
double temperature; // temperature of CCD
|
||||||
int gotopos; // move stepper motor of focuser/wheel to absolute position
|
int gotopos; // move stepper motor of focuser to absolute position
|
||||||
int addsteps; // move stepper motor of focuser/wheel to relative position
|
int addsteps; // move stepper motor of focuser to relative position
|
||||||
|
int getwheel; // get position of wheel
|
||||||
|
int setwheel; // set wheel position
|
||||||
int async; // asynchronous moving
|
int async; // asynchronous moving
|
||||||
} glob_pars;
|
} glob_pars;
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,12 @@
|
|||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
|
long fli_err;
|
||||||
|
#define TRYFUNC(f, ...) \
|
||||||
|
do{ if((fli_err = f(__VA_ARGS__))) \
|
||||||
|
WARNX(#f "() failed"); \
|
||||||
|
}while(0)
|
||||||
|
|
||||||
#ifdef USEPNG
|
#ifdef USEPNG
|
||||||
int writepng(char *filename, int width, int height, void *data);
|
int writepng(char *filename, int width, int height, void *data);
|
||||||
#endif /* USEPNG */
|
#endif /* USEPNG */
|
||||||
@ -105,7 +111,7 @@ int main(int argc, char **argv){
|
|||||||
#endif */
|
#endif */
|
||||||
TRYFUNC(FLIGetLibVersion, libver, LIBVERSIZ);
|
TRYFUNC(FLIGetLibVersion, libver, LIBVERSIZ);
|
||||||
// ÷ÅÒÓÉÑ ÂÉÂÌÉÏÔÅËÉ '%s'
|
// ÷ÅÒÓÉÑ ÂÉÂÌÉÏÔÅËÉ '%s'
|
||||||
info(_("Library version '%s'"), libver);
|
if(!fli_err) info(_("Library version '%s'"), libver);
|
||||||
/*
|
/*
|
||||||
* Find CCDs and work with each of them
|
* Find CCDs and work with each of them
|
||||||
*/
|
*/
|
||||||
@ -118,29 +124,29 @@ int main(int argc, char **argv){
|
|||||||
// ëÁÍÅÒÁ '%s' ÉÚ ÄÏÍÅÎÁ %s
|
// ëÁÍÅÒÁ '%s' ÉÚ ÄÏÍÅÎÁ %s
|
||||||
info(_("Camera '%s', domain %s"), cam[i].name, cam[i].dname);
|
info(_("Camera '%s', domain %s"), cam[i].name, cam[i].dname);
|
||||||
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
||||||
if(r) continue;
|
if(fli_err) continue;
|
||||||
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
||||||
// íÏÄÅÌØ:\t\t%s
|
// íÏÄÅÌØ:\t\t%s
|
||||||
info(_("Model:\t\t%s"), buff);
|
if(!fli_err) info(_("Model:\t\t%s"), buff);
|
||||||
camera = strdup(buff);
|
camera = strdup(buff);
|
||||||
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
||||||
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
||||||
info(_("HW revision: %ld"), ltmp);
|
if(!fli_err) info(_("HW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
||||||
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
||||||
info(_("SW revision: %ld"), ltmp);
|
if(!fli_err) info(_("SW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIGetPixelSize, dev, &pixX, &pixY);
|
TRYFUNC(FLIGetPixelSize, dev, &pixX, &pixY);
|
||||||
// òÁÚÍÅÒ ÐÉËÓÅÌÑ: %g x %g
|
// òÁÚÍÅÒ ÐÉËÓÅÌÑ: %g x %g
|
||||||
info(_("Pixel size: %g x %g"), pixX, pixY);
|
if(!fli_err) info(_("Pixel size: %g x %g"), pixX, pixY);
|
||||||
TRYFUNC(FLIGetVisibleArea, dev, &x0, &y0, &x1, &y1);
|
TRYFUNC(FLIGetVisibleArea, dev, &x0, &y0, &x1, &y1);
|
||||||
snprintf(viewfield, 80, "(%ld, %ld)(%ld, %ld)", x0, y0, x1, y1);
|
snprintf(viewfield, 80, "(%ld, %ld)(%ld, %ld)", x0, y0, x1, y1);
|
||||||
// ÷ÉÄÉÍÏÅ ÐÏÌÅ: %s
|
// ÷ÉÄÉÍÏÅ ÐÏÌÅ: %s
|
||||||
info(_("Field of view: %s"), viewfield);
|
if(!fli_err) info(_("Field of view: %s"), viewfield);
|
||||||
if(G->X1 > x1) G->X1 = x1;
|
if(G->X1 > x1) G->X1 = x1;
|
||||||
if(G->Y1 > y1) G->Y1 = y1;
|
if(G->Y1 > y1) G->Y1 = y1;
|
||||||
TRYFUNC(FLIGetArrayArea, dev, &x0, &y0, &x1, &y1);
|
TRYFUNC(FLIGetArrayArea, dev, &x0, &y0, &x1, &y1);
|
||||||
// ðÏÌÅ ÉÚÏÂÒÁÖÅÎÉÑ: (%ld, %ld)(%ld, %ld)
|
// ðÏÌÅ ÉÚÏÂÒÁÖÅÎÉÑ: (%ld, %ld)(%ld, %ld)
|
||||||
info(_("Array field: (%ld, %ld)(%ld, %ld)"), x0, y0, x1, y1);
|
if(!fli_err) info(_("Array field: (%ld, %ld)(%ld, %ld)"), x0, y0, x1, y1);
|
||||||
TRYFUNC(FLISetHBin, dev, G->hbin);
|
TRYFUNC(FLISetHBin, dev, G->hbin);
|
||||||
TRYFUNC(FLISetVBin, dev, G->vbin);
|
TRYFUNC(FLISetVBin, dev, G->vbin);
|
||||||
if(G->X0 == -1) G->X0 = x0; // default values
|
if(G->X0 == -1) G->X0 = x0; // default values
|
||||||
@ -159,10 +165,10 @@ int main(int argc, char **argv){
|
|||||||
}
|
}
|
||||||
TRYFUNC(FLIGetTemperature, dev, &t_int);
|
TRYFUNC(FLIGetTemperature, dev, &t_int);
|
||||||
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÕÔÒ.): %f
|
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÕÔÒ.): %f
|
||||||
green(_("Inner temperature: %f\n"), t_int);
|
if(!fli_err) green(_("Inner temperature: %f\n"), t_int);
|
||||||
TRYFUNC(FLIReadTemperature, dev, FLI_TEMPERATURE_EXTERNAL, &t_ext);
|
TRYFUNC(FLIReadTemperature, dev, FLI_TEMPERATURE_EXTERNAL, &t_ext);
|
||||||
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÅÛÎ.): %f
|
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÅÛÎ.): %f
|
||||||
green(_("Outern temperature: %f\n"), t_ext);
|
if(!fli_err) green(_("Outern temperature: %f\n"), t_ext);
|
||||||
if(G->shtr_cmd > -1){
|
if(G->shtr_cmd > -1){
|
||||||
flishutter_t shtr = G->shtr_cmd;
|
flishutter_t shtr = G->shtr_cmd;
|
||||||
char *str = NULL;
|
char *str = NULL;
|
||||||
@ -200,7 +206,7 @@ int main(int argc, char **argv){
|
|||||||
long iop;
|
long iop;
|
||||||
TRYFUNC(FLIReadIOPort, dev, &iop);
|
TRYFUNC(FLIReadIOPort, dev, &iop);
|
||||||
// "äÁÎÎÙÅ ÎÁ ÐÏÒÔÕ I/O: %ld\n"
|
// "äÁÎÎÙÅ ÎÁ ÐÏÒÔÕ I/O: %ld\n"
|
||||||
if(!r) green(_("I/O port data: 0x%02lx\n"), iop);
|
if(!fli_err) green(_("I/O port data: 0x%02lx\n"), iop);
|
||||||
}
|
}
|
||||||
if(G->setio > -1){
|
if(G->setio > -1){
|
||||||
// "ðÏÐÙÔËÁ ÚÁÐÉÓÉ %d × ÐÏÒÔ I/O\n"
|
// "ðÏÐÙÔËÁ ÚÁÐÉÓÉ %d × ÐÏÒÔ I/O\n"
|
||||||
@ -230,7 +236,7 @@ int main(int argc, char **argv){
|
|||||||
}
|
}
|
||||||
else WARNX("curtime() error");
|
else WARNX("curtime() error");
|
||||||
TRYFUNC(FLIGetExposureStatus, dev, <mp);
|
TRYFUNC(FLIGetExposureStatus, dev, <mp);
|
||||||
if(r) continue;
|
if(fli_err) continue;
|
||||||
if(G->shtr_cmd > 0 && G->shtr_cmd & FLI_SHUTTER_EXTERNAL_EXPOSURE_CONTROL && ltmp == G->exptime){
|
if(G->shtr_cmd > 0 && G->shtr_cmd & FLI_SHUTTER_EXTERNAL_EXPOSURE_CONTROL && ltmp == G->exptime){
|
||||||
// "ÏÖÉÄÁÎÉÅ ×ÎÅÛÎÅÇÏ ÔÒÉÇÇÅÒÁ"
|
// "ÏÖÉÄÁÎÉÅ ×ÎÅÛÎÅÇÏ ÔÒÉÇÇÅÒÁ"
|
||||||
printf(_("wait for external trigger...\n"));
|
printf(_("wait for external trigger...\n"));
|
||||||
@ -247,7 +253,7 @@ int main(int argc, char **argv){
|
|||||||
int portion = 0;
|
int portion = 0;
|
||||||
for (row = 0; row < img_rows; row++){
|
for (row = 0; row < img_rows; row++){
|
||||||
TRYFUNC(FLIGrabRow, dev, &img[row * row_width], row_width);
|
TRYFUNC(FLIGrabRow, dev, &img[row * row_width], row_width);
|
||||||
if(r) break;
|
if(fli_err) break;
|
||||||
int progress = (int)(((float)row / (float)img_rows) * 100.);
|
int progress = (int)(((float)row / (float)img_rows) * 100.);
|
||||||
if(progress/5 > portion){
|
if(progress/5 > portion){
|
||||||
if((++portion)%2) printf("..");
|
if((++portion)%2) printf("..");
|
||||||
@ -270,7 +276,7 @@ int main(int argc, char **argv){
|
|||||||
}
|
}
|
||||||
TRYFUNC(writefn, buff, row_width, img_rows, img);
|
TRYFUNC(writefn, buff, row_width, img_rows, img);
|
||||||
// æÁÊÌ ÚÁÐÉÓÁÎ × '%s'
|
// æÁÊÌ ÚÁÐÉÓÁÎ × '%s'
|
||||||
if (r == 0) info(_("File saved as '%s'"), buff);
|
if (fli_err == 0) info(_("File saved as '%s'"), buff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef USERAW
|
#ifdef USERAW
|
||||||
@ -308,12 +314,12 @@ int main(int argc, char **argv){
|
|||||||
* Find focusers and work with each of them
|
* Find focusers and work with each of them
|
||||||
*/
|
*/
|
||||||
num = findcams(FLIDOMAIN_USB | FLIDEVICE_FOCUSER, &cam);
|
num = findcams(FLIDOMAIN_USB | FLIDEVICE_FOCUSER, &cam);
|
||||||
if(!num) WARNX(_("No focusers found"));
|
int nfocs = 0;
|
||||||
for (i = 0; i < num; i++){
|
for (i = 0; i < num; i++){
|
||||||
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
||||||
if(r) continue;
|
if(fli_err) continue;
|
||||||
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
||||||
if(!r){
|
if(!fli_err){
|
||||||
if(!strcasestr(buff, "focuser")){ // not focuser
|
if(!strcasestr(buff, "focuser")){ // not focuser
|
||||||
TRYFUNC(FLIClose, dev);
|
TRYFUNC(FLIClose, dev);
|
||||||
continue;
|
continue;
|
||||||
@ -321,25 +327,26 @@ int main(int argc, char **argv){
|
|||||||
// íÏÄÅÌØ:\t\t%s
|
// íÏÄÅÌØ:\t\t%s
|
||||||
info(_("Model:\t\t%s"), buff);
|
info(_("Model:\t\t%s"), buff);
|
||||||
}
|
}
|
||||||
|
++nfocs;
|
||||||
info(_("Focuser '%s', domain %s"), cam[i].name, cam[i].dname);
|
info(_("Focuser '%s', domain %s"), cam[i].name, cam[i].dname);
|
||||||
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
||||||
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
||||||
if(!r) info(_("HW revision: %ld"), ltmp);
|
if(!fli_err) info(_("HW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
||||||
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
||||||
if(!r) info(_("SW revision: %ld"), ltmp);
|
if(!fli_err) info(_("SW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIReadTemperature, dev, FLI_TEMPERATURE_INTERNAL, &t_ext);
|
TRYFUNC(FLIReadTemperature, dev, FLI_TEMPERATURE_INTERNAL, &t_ext);
|
||||||
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÅÛÎ.): %f
|
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÅÛÎ.): %f
|
||||||
if(!r) green(_("Focuser temperature: %f\n"), t_ext);
|
if(!fli_err) green(_("Focuser temperature: %f\n"), t_ext);
|
||||||
long curpos = -1, maxpos = -1;
|
long curpos = -1, maxpos = -1;
|
||||||
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
||||||
if(!r){
|
if(!fli_err){
|
||||||
// ðÏÚÉÃÉÑ ÆÏËÕÓÅÒÁ: %ld
|
// ðÏÚÉÃÉÑ ÆÏËÕÓÅÒÁ: %ld
|
||||||
info(_("Focuser position %ld"), ltmp);
|
info(_("Focuser position %ld"), ltmp);
|
||||||
curpos = ltmp;
|
curpos = ltmp;
|
||||||
}
|
}
|
||||||
TRYFUNC(FLIGetFocuserExtent, dev, <mp);
|
TRYFUNC(FLIGetFocuserExtent, dev, <mp);
|
||||||
if(!r){
|
if(!fli_err){
|
||||||
// íÁËÓÉÍÁÌØÎÁÑ ÐÏÚÉÃÉÑ ÆÏËÕÓÅÒÁ: %ld
|
// íÁËÓÉÍÁÌØÎÁÑ ÐÏÚÉÃÉÑ ÆÏËÕÓÅÒÁ: %ld
|
||||||
info(_("Focuser extent: %ld"), ltmp);
|
info(_("Focuser extent: %ld"), ltmp);
|
||||||
maxpos = ltmp;
|
maxpos = ltmp;
|
||||||
@ -385,49 +392,83 @@ int main(int argc, char **argv){
|
|||||||
}
|
}
|
||||||
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
||||||
// äÏÓÔÉÇÎÕÔÁ ÐÏÚÉÃÉÑ %ls
|
// äÏÓÔÉÇÎÕÔÁ ÐÏÚÉÃÉÑ %ls
|
||||||
if(!r) info(_("Reached position %ld"), ltmp);
|
if(!fli_err) info(_("Reached position %ld"), ltmp);
|
||||||
}while(0);
|
}while(0);
|
||||||
;
|
;
|
||||||
TRYFUNC(FLIClose, dev);
|
TRYFUNC(FLIClose, dev);
|
||||||
}
|
}
|
||||||
|
if(!nfocs) WARNX(_("No focusers found"));
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
FREE(cam[i].name);
|
FREE(cam[i].name);
|
||||||
FREE(cam);
|
FREE(cam);
|
||||||
/*
|
/*
|
||||||
* Find wheels and work with each of them
|
* Find wheels and work with each of them
|
||||||
*
|
*/
|
||||||
num = findcams(FLIDOMAIN_USB | FLIDEVICE_FILTERWHEEL, &cam);
|
num = findcams(FLIDOMAIN_USB | FLIDEVICE_FILTERWHEEL, &cam);
|
||||||
if(!num) WARNX(_("No wheels found"));
|
int nwheels = 0;
|
||||||
for (i = 0; i < num; i++){
|
for (i = 0; i < num; i++){
|
||||||
info(_("Wheel '%s', domain %s"), cam[i].name, cam[i].dname);
|
info(_("Wheel '%s', domain %s"), cam[i].name, cam[i].dname);
|
||||||
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
TRYFUNC(FLIOpen, &dev, cam[i].name, cam[i].domain);
|
||||||
if(r) continue;
|
if(fli_err) continue;
|
||||||
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
TRYFUNC(FLIGetModel, dev, buff, BUFF_SIZ);
|
||||||
// íÏÄÅÌØ:\t\t%s
|
// íÏÄÅÌØ:\t\t%s
|
||||||
info(_("Model:\t\t%s"), buff);
|
if(!fli_err) info(_("Model:\t\t%s"), buff);
|
||||||
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
TRYFUNC(FLIGetHWRevision, dev, <mp);
|
||||||
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
// áÐÐ. ×ÅÒÓÉÑ: %ld
|
||||||
info(_("HW revision: %ld"), ltmp);
|
if(!fli_err) info(_("HW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
TRYFUNC(FLIGetFWRevision, dev, <mp);
|
||||||
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
// ðÒÏÇÒ. ×ÅÒÓÉÑ: %ld
|
||||||
info(_("SW revision: %ld"), ltmp);
|
if(!fli_err) info(_("SW revision: %ld"), ltmp);
|
||||||
TRYFUNC(FLIReadTemperature, dev, FLI_TEMPERATURE_INTERNAL, &t_ext);
|
TRYFUNC(FLIGetFilterCount, dev, <mp);
|
||||||
// ôÅÍÐÅÒÁÔÕÒÁ (×ÎÅÛÎ.): %f
|
if(!fli_err) info(_("Amount of positions: %ld"), ltmp);
|
||||||
green(_("Wheel temperature: %f\n"), t_ext);
|
else goto closewheeldev;
|
||||||
// ðÏÚÉÃÉÑ ÔÕÒÅÌÉ: %ld
|
if(G->setwheel > -1 && G->setwheel >= ltmp){
|
||||||
TRYFUNC(FLIGetFilterPos, dev, <mp);
|
G->setwheel = -1;
|
||||||
info(_("Filter position"), ltmp);
|
WARNX(_("Wheel position should be from 0 to %ld"), ltmp - 1);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
TRYFUNC(FLIHomeDevice, dev);
|
||||||
|
int ii;
|
||||||
|
for(ii = 0; ii < 100; ++ii){
|
||||||
|
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
||||||
|
if(!fli_err) printf("%ld\t", ltmp);
|
||||||
|
TRYFUNC( FLIGetStepsRemaining, dev, <mp);
|
||||||
|
if(!fli_err) printf("%ld\t", ltmp);
|
||||||
|
TRYFUNC(FLIGetFilterPos, dev, <mp);
|
||||||
|
if(!fli_err) printf("%ld\n", ltmp);
|
||||||
|
usleep(50000);
|
||||||
|
}
|
||||||
|
long curpos = -1;
|
||||||
|
TRYFUNC(FLIGetFilterPos, dev, &curpos);
|
||||||
|
if(!fli_err){
|
||||||
|
// ðÏÚÉÃÉÑ ÔÕÒÅÌÉ: %ld
|
||||||
|
info(_("Wheel position: %ld"), curpos);
|
||||||
|
if(G->getwheel) printf("%ld\n", curpos);
|
||||||
|
}else goto closewheeldev;
|
||||||
|
*
|
||||||
|
TRYFUNC(FLIGetActiveWheel, dev, <mp);
|
||||||
|
if(!fli_err) info(_("Wheel number: %ld"), ltmp);
|
||||||
|
TRYFUNC(FLIGetStepperPosition, dev, <mp);
|
||||||
|
if(!fli_err) info(_("stepper position: %ld"), ltmp);
|
||||||
|
*/
|
||||||
|
++nwheels;
|
||||||
|
if(G->setwheel > -1){
|
||||||
|
ltmp = G->setwheel;
|
||||||
|
TRYFUNC(FLISetFilterPos, dev, ltmp);
|
||||||
|
if(!fli_err) info(_("Arrive to position"));
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
closewheeldev:
|
||||||
TRYFUNC(FLIClose, dev);
|
TRYFUNC(FLIClose, dev);
|
||||||
}
|
}
|
||||||
|
if(!nwheels) WARNX(_("No wheels found"));
|
||||||
for (i = 0; i < num; i++)
|
for (i = 0; i < num; i++)
|
||||||
FREE(cam[i].name);
|
FREE(cam[i].name);
|
||||||
FREE(cam);*/
|
FREE(cam);
|
||||||
exit(0);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int findcams(flidomain_t domain, cam_t **cam){
|
int findcams(flidomain_t domain, cam_t **cam){
|
||||||
long r;
|
|
||||||
char **tmplist;
|
char **tmplist;
|
||||||
int numcams = 0;
|
int numcams = 0;
|
||||||
TRYFUNC(FLIList, domain, &tmplist);
|
TRYFUNC(FLIList, domain, &tmplist);
|
||||||
|
|||||||
@ -33,12 +33,6 @@
|
|||||||
|
|
||||||
#include <libfli.h>
|
#include <libfli.h>
|
||||||
|
|
||||||
long r;
|
|
||||||
#define TRYFUNC(f, ...) \
|
|
||||||
do{ if((r = f(__VA_ARGS__))) \
|
|
||||||
WARNX(#f "() failed"); \
|
|
||||||
}while(0)
|
|
||||||
|
|
||||||
#define LIBVERSIZ 1024
|
#define LIBVERSIZ 1024
|
||||||
|
|
||||||
typedef struct{
|
typedef struct{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user