fixed some bugs in apogee

This commit is contained in:
Edward Emelianov 2023-03-09 11:36:11 +03:00
parent 64a2ec11a0
commit 72db4c0eab
5 changed files with 139 additions and 105 deletions

View File

@ -53,17 +53,23 @@ static int isexposuring = 0;
static void disconnect(){ static void disconnect(){
FNAME(); FNAME();
if(!isopened) return; if(!isopened) return;
ApnGlueExpAbort(); ApnGlueReset();
//ApnGlueExpAbort();
ApnGlueClose(); ApnGlueClose();
isopened = FALSE; isopened = FALSE;
} }
static void cancel(){ static void cancel(){
//if(!isexposuring) return;
FNAME(); FNAME();
ApnGlueReset(); if(isexposuring){
isexposuring = 0;
DBG("Abort exposition");
ApnGlueStopExposure();
//ApnGlueExpAbort(); //ApnGlueExpAbort();
//ApnGlueStopExposure(); }
//uint16_t b1;
//ApnGlueReadPixels(&b1, 1, NULL);
ApnGlueReset();
DBG("OK"); DBG("OK");
} }
@ -119,7 +125,7 @@ static int setdevno(int n){
FNAME(); FNAME();
if(n > ncameras - 1) return FALSE; if(n > ncameras - 1) return FALSE;
if(ApnGlueOpen(n)) return FALSE; if(ApnGlueOpen(n)) return FALSE;
ApnGlueExpAbort(); //ApnGlueExpAbort();
ApnGluePowerResume(); ApnGluePowerResume();
ApnGlueReset(); ApnGlueReset();
char *msg = ApnGlueGetInfo(&pid, &vid); char *msg = ApnGlueGetInfo(&pid, &vid);
@ -139,6 +145,7 @@ static int setdevno(int n){
camera.pixX = x, camera.pixY = y; camera.pixX = x, camera.pixY = y;
camera.field.w = camera.array.w - osw; camera.field.w = camera.array.w - osw;
camera.field.h = camera.array.h; camera.field.h = camera.array.h;
camera.geometry = camera.array;
DBG("Pixel size W/H: %g/%g; field w/h: %d/%d", x, y, camera.field.w, camera.field.h); DBG("Pixel size W/H: %g/%g; field w/h: %d/%d", x, y, camera.field.w, camera.field.h);
; ;
return TRUE; return TRUE;
@ -195,14 +202,29 @@ static int setfastspeed(int fast){
static int setgeometry(frameformat *f){ static int setgeometry(frameformat *f){
if(!f) return FALSE; if(!f) return FALSE;
int ow = (f->w > camera.field.w) ? camera.array.w - f->w : f->w; if(f->xoff > camera.field.w - 1) f->xoff = camera.field.w - 1;
if(f->yoff > camera.field.h - 1) f->yoff = camera.field.h - 1;
if(f->w - f->xoff > camera.array.w) f->w = camera.array.w - f->xoff;
if(f->h - f->yoff > camera.array.h) f->h = camera.array.h - f->yoff;
int ow = (f->w > camera.field.w) ? f->w - camera.field.w: 0;
if(ow < 0) ow = 0; if(ow < 0) ow = 0;
if(ApnGlueSetExpGeom(f->w * hbin, f->h * vbin, ow, 0, hbin, vbin, if(f->xoff && f->w + f->xoff >= camera.field.w){
f->w = camera.field.w - f->xoff;
ow = 0;
}
//f->w -= ow;
DBG("f->w=%d, camfw=%d, camaw=%d", f->w, camera.field.w, camera.array.w);
DBG("ow=%d", ow);
if(ApnGlueSetExpGeom(f->w, f->h, ow, 0, hbin, vbin,
f->xoff, f->yoff, &imW, &imH, whynot)){ f->xoff, f->yoff, &imW, &imH, whynot)){
WARNX("Can't set geometry: %s", whynot); WARNX("Can't set geometry: %s", whynot);
imW = f->w;
imH = f->h;
}else{ }else{
camera.geometry = *f; camera.geometry = *f;
} }
DBG("ApnGlueSetExpGeom(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)",
f->w, f->h, ow, 0, hbin, vbin, f->xoff, f->yoff, imW, imH);
return TRUE; return TRUE;
} }
@ -228,12 +250,14 @@ static int thot(float *t){
static int startexp(){ static int startexp(){
tstart = dtime(); tstart = dtime();
DBG("Start exposition"); DBG("Start exposition %g seconds (isobject=%d)", exptime, isobject);
CCDerr r = ApnGlueStartExp(&exptime, isobject); CCDerr r = ApnGlueStartExp(&exptime, isobject);
if(ALTA_OK != r){ if(ALTA_OK != r){
/*reset_usb_port(); /*reset_usb_port();
r = ApnGlueStartExp(&exptime, isobject); r = ApnGlueStartExp(&exptime, isobject);
if(ALTA_OK != r){*/ if(ALTA_OK != r){*/
//uint16_t b[4096];
//ApnGlueReadPixels(b, 4096, NULL);
ApnGlueReset(); ApnGlueReset();
DBG("Error starting exp: %d", (int)r); DBG("Error starting exp: %d", (int)r);
return FALSE; return FALSE;
@ -250,7 +274,7 @@ static int frametype(int islight){
} }
static int setexp(float t){ static int setexp(float t){
DBG("start exp %g, min: %g, max: %g", t, expt[0], expt[1]); DBG("set exp %g, min: %g, max: %g", t, expt[0], expt[1]);
if(t < expt[0] || t > expt[1]) return FALSE; // too big or too small exptime if(t < expt[0] || t > expt[1]) return FALSE; // too big or too small exptime
exptime = t; exptime = t;
return TRUE; return TRUE;
@ -264,25 +288,34 @@ static int getbin(int *h, int *v){
} }
static int pollcapt(capture_status *st, float *remain){ static int pollcapt(capture_status *st, float *remain){
DBG("Poll capture, tremain=%g", dtime() - tstart);
if(dtime() - tstart > 5.){ // capture error?
ApnGlueExpAbort();
if(*st) *st = CAPTURE_ABORTED;
return FALSE;
}
if(remain) *remain = dtime() - tstart;
if(st) *st = CAPTURE_PROCESS; if(st) *st = CAPTURE_PROCESS;
if(ApnGlueExpDone()){ if(ApnGlueExpDone()){
if(st) *st = CAPTURE_READY; if(st) *st = CAPTURE_READY;
isexposuring = 0; isexposuring = 0;
DBG("Capture ready"); DBG("Capture ready");
if(remain) *remain = 0.f;
return TRUE;
}else DBG("Capture in process");
double d = exptime - (dtime() - tstart);
DBG("Poll capture, tremain=%g", d);
if(d < -5.){ // capture error?
WARNX("Abort capture");
ApnGlueExpAbort();
//ApnGlueStopExposure();
DBG("ABORTED!");
if(*st) *st = CAPTURE_ABORTED;
return FALSE;
} }
if(d < 0.) d = 0.1;
DBG("Poll capture, tremain=%g", d);
if(remain) *remain = d;
return TRUE; return TRUE;
} }
static int capture(IMG *ima){ static int capture(IMG *ima){
FNAME(); FNAME();
if(!ima || !ima->data) return FALSE; if(!ima || !ima->data) return FALSE;
DBG("ApnGlueReadPixels(%dx%d=%d)", imW, imH, imW * imH);
if(ApnGlueReadPixels((uint16_t*)ima->data, imW * imH, whynot)){ if(ApnGlueReadPixels((uint16_t*)ima->data, imW * imH, whynot)){
WARNX("Can't read image: %s", whynot); WARNX("Can't read image: %s", whynot);
return FALSE; return FALSE;

View File

@ -596,6 +596,7 @@ static capture_status capt(){
else usleep((int)(1e6*tremain) + 100000); else usleep((int)(1e6*tremain) + 100000);
if(!camera) return CAPTURE_ABORTED; if(!camera) return CAPTURE_ABORTED;
} }
DBG("Poll ends with %d", cs);
return cs; return cs;
} }

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-06 17:25+0300\n" "POT-Creation-Date: 2023-03-09 11:35+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -364,185 +364,185 @@ msgstr ""
msgid "%.1f seconds till exposition ends" msgid "%.1f seconds till exposition ends"
msgstr "" msgstr ""
#: ccdfunc.c:604 #: ccdfunc.c:605
msgid "Camera device not pointed" msgid "Camera device not pointed"
msgstr "" msgstr ""
#: ccdfunc.c:611 ccdfunc.c:612 #: ccdfunc.c:612 ccdfunc.c:613
msgid "No cameras found" msgid "No cameras found"
msgstr "" msgstr ""
#: ccdfunc.c:642 #: ccdfunc.c:643
#, c-format #, c-format
msgid "Found %d cameras, you point number %d" msgid "Found %d cameras, you point number %d"
msgstr "" msgstr ""
#: ccdfunc.c:646 #: ccdfunc.c:647
msgid "Can't set active camera number" msgid "Can't set active camera number"
msgstr "" msgstr ""
#: ccdfunc.c:652 #: ccdfunc.c:653
msgid "Can't set fan speed" msgid "Can't set fan speed"
msgstr "" msgstr ""
#: ccdfunc.c:653 #: ccdfunc.c:654
#, c-format #, c-format
msgid "Set fan speed to %d" msgid "Set fan speed to %d"
msgstr "" msgstr ""
#: ccdfunc.c:658 #: ccdfunc.c:659
#, c-format #, c-format
msgid "Camera model: %s" msgid "Camera model: %s"
msgstr "" msgstr ""
#: ccdfunc.c:659 #: ccdfunc.c:660
#, c-format #, c-format
msgid "Pixel size: %g x %g" msgid "Pixel size: %g x %g"
msgstr "" msgstr ""
#: ccdfunc.c:665 #: ccdfunc.c:666
#, c-format #, c-format
msgid "Full array: %s" msgid "Full array: %s"
msgstr "" msgstr ""
#: ccdfunc.c:668 #: ccdfunc.c:669
#, c-format #, c-format
msgid "Field of view: %s" msgid "Field of view: %s"
msgstr "" msgstr ""
#: ccdfunc.c:671 #: ccdfunc.c:672
#, c-format #, c-format
msgid "Current format: %s" msgid "Current format: %s"
msgstr "" msgstr ""
#: ccdfunc.c:674 #: ccdfunc.c:675
#, c-format #, c-format
msgid "Can't set T to %g degC" msgid "Can't set T to %g degC"
msgstr "" msgstr ""
#: ccdfunc.c:682 #: ccdfunc.c:683
#, c-format #, c-format
msgid "Shutter command: %s\n" msgid "Shutter command: %s\n"
msgstr "" msgstr ""
#: ccdfunc.c:684 #: ccdfunc.c:685
#, c-format #, c-format
msgid "Can't run shutter command %s (unsupported?)" msgid "Can't run shutter command %s (unsupported?)"
msgstr "" msgstr ""
#. "Попытка сконфигурировать порт I/O как %d\n" #. "Попытка сконфигурировать порт I/O как %d\n"
#: ccdfunc.c:688 #: ccdfunc.c:689
#, c-format #, c-format
msgid "Try to configure I/O port as %d" msgid "Try to configure I/O port as %d"
msgstr "" msgstr ""
#: ccdfunc.c:690 #: ccdfunc.c:691
msgid "Can't configure (unsupported?)" msgid "Can't configure (unsupported?)"
msgstr "" msgstr ""
#: ccdfunc.c:697 #: ccdfunc.c:698
msgid "Can't get IOport state (unsupported?)" msgid "Can't get IOport state (unsupported?)"
msgstr "" msgstr ""
#. "Попытка записи %d в порт I/O\n" #. "Попытка записи %d в порт I/O\n"
#: ccdfunc.c:701 #: ccdfunc.c:702
#, c-format #, c-format
msgid "Try to write %d to I/O port" msgid "Try to write %d to I/O port"
msgstr "" msgstr ""
#: ccdfunc.c:703 #: ccdfunc.c:704
msgid "Can't set IOport" msgid "Can't set IOport"
msgstr "" msgstr ""
#: ccdfunc.c:710
#, c-format
msgid "Set gain to %g"
msgstr ""
#: ccdfunc.c:711 #: ccdfunc.c:711
#, c-format #, c-format
msgid "Can't set gain to %g" msgid "Set gain to %g"
msgstr "" msgstr ""
#: ccdfunc.c:716 #: ccdfunc.c:712
#, c-format #, c-format
msgid "Set brightness to %g" msgid "Can't set gain to %g"
msgstr "" msgstr ""
#: ccdfunc.c:717 #: ccdfunc.c:717
#, c-format #, c-format
msgid "Set brightness to %g"
msgstr ""
#: ccdfunc.c:718
#, c-format
msgid "Can't set brightness to %g" msgid "Can't set brightness to %g"
msgstr "" msgstr ""
#: ccdfunc.c:725 server.c:229 #: ccdfunc.c:726 server.c:229
#, c-format #, c-format
msgid "Can't set binning %dx%d" msgid "Can't set binning %dx%d"
msgstr "" msgstr ""
#: ccdfunc.c:737 server.c:230 #: ccdfunc.c:738 server.c:230
msgid "Can't set given geometry" msgid "Can't set given geometry"
msgstr "" msgstr ""
#: ccdfunc.c:741 #: ccdfunc.c:742
#, c-format #, c-format
msgid "Can't set %d flushes" msgid "Can't set %d flushes"
msgstr "" msgstr ""
#: ccdfunc.c:745 #: ccdfunc.c:746
#, c-format #, c-format
msgid "Can't set exposure time to %f seconds" msgid "Can't set exposure time to %f seconds"
msgstr "" msgstr ""
#: ccdfunc.c:748 #: ccdfunc.c:749
msgid "Can't change frame type" msgid "Can't change frame type"
msgstr "" msgstr ""
#: ccdfunc.c:751 #: ccdfunc.c:752
msgid "Can't set bit depth" msgid "Can't set bit depth"
msgstr "" msgstr ""
#: ccdfunc.c:753 #: ccdfunc.c:754
msgid "Can't set readout speed" msgid "Can't set readout speed"
msgstr "" msgstr ""
#: ccdfunc.c:754 #: ccdfunc.c:755
#, c-format #, c-format
msgid "Readout mode: %s" msgid "Readout mode: %s"
msgstr "" msgstr ""
#: ccdfunc.c:755 #: ccdfunc.c:756
msgid "Only show statistics" msgid "Only show statistics"
msgstr "" msgstr ""
#. GET binning should be AFTER setgeometry! #. GET binning should be AFTER setgeometry!
#: ccdfunc.c:757 #: ccdfunc.c:758
msgid "Can't get current binning" msgid "Can't get current binning"
msgstr "" msgstr ""
#. Захват кадра %d\n #. Захват кадра %d\n
#: ccdfunc.c:779 #: ccdfunc.c:780
#, c-format #, c-format
msgid "Capture frame %d" msgid "Capture frame %d"
msgstr "" msgstr ""
#: ccdfunc.c:781 ccdfunc.c:831 server.c:124 #: ccdfunc.c:782 ccdfunc.c:832 server.c:124
msgid "Can't start exposition" msgid "Can't start exposition"
msgstr "" msgstr ""
#: ccdfunc.c:785 #: ccdfunc.c:786
msgid "Can't capture image" msgid "Can't capture image"
msgstr "" msgstr ""
#: ccdfunc.c:788 #: ccdfunc.c:789
msgid "Read grabbed image" msgid "Read grabbed image"
msgstr "" msgstr ""
#: ccdfunc.c:791 ccdfunc.c:839 #: ccdfunc.c:792 ccdfunc.c:840
msgid "Can't grab image" msgid "Can't grab image"
msgstr "" msgstr ""
#. %d секунд до окончания паузы\n #. %d секунд до окончания паузы\n
#: ccdfunc.c:800 client.c:282 #: ccdfunc.c:801 client.c:282
#, c-format #, c-format
msgid "%d seconds till pause ends\n" msgid "%d seconds till pause ends\n"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "Project-Id-Version: PACKAGE VERSION\n" msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-01 08:54+0300\n" "POT-Creation-Date: 2023-03-09 11:35+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -22,7 +22,7 @@ msgid "%.1f seconds till exposition ends"
msgstr "%.1f ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÜËÓÐÏÚÉÃÉÉ" msgstr "%.1f ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÜËÓÐÏÚÉÃÉÉ"
#. %d Ñ<>екунд до окончаниÑ<C2B8> паузы\n #. %d Ñ<>екунд до окончаниÑ<C2B8> паузы\n
#: ccdfunc.c:800 client.c:282 #: ccdfunc.c:801 client.c:282
#, c-format #, c-format
msgid "%d seconds till pause ends\n" msgid "%d seconds till pause ends\n"
msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n" msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n"
@ -39,7 +39,7 @@ msgstr "
msgid "CMOS gain level" msgid "CMOS gain level"
msgstr "ÕÒÏ×ÅÎØ Gain CMOS" msgstr "ÕÒÏ×ÅÎØ Gain CMOS"
#: ccdfunc.c:604 #: ccdfunc.c:605
msgid "Camera device not pointed" msgid "Camera device not pointed"
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÐÏÄËÌÀÞÅÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÐÏÄËÌÀÞÅÎÏ"
@ -47,20 +47,20 @@ msgstr "
msgid "Camera device unknown" msgid "Camera device unknown"
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÏÐÏÚÎÁÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÏÐÏÚÎÁÎÏ"
#: ccdfunc.c:658 #: ccdfunc.c:659
#, c-format #, c-format
msgid "Camera model: %s" msgid "Camera model: %s"
msgstr "íÏÄÅÌØ Ó×ÅÔÏÐÒÉÅÍÎÉËÁ: %s" msgstr "íÏÄÅÌØ Ó×ÅÔÏÐÒÉÅÍÎÉËÁ: %s"
#: ccdfunc.c:785 #: ccdfunc.c:786
msgid "Can't capture image" msgid "Can't capture image"
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ" msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
#: ccdfunc.c:748 #: ccdfunc.c:749
msgid "Can't change frame type" msgid "Can't change frame type"
msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÉÐ ËÁÄÒÁ" msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÉÐ ËÁÄÒÁ"
#: ccdfunc.c:690 #: ccdfunc.c:691
msgid "Can't configure (unsupported?)" msgid "Can't configure (unsupported?)"
msgstr "îÅ ÍÏÇÕ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ (ÏÐÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)" msgstr "îÅ ÍÏÇÕ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ (ÏÐÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
@ -84,12 +84,12 @@ msgstr "
msgid "Can't find wheel in plugin %s: %s" msgid "Can't find wheel in plugin %s: %s"
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÔÕÒÅÌÉ %s: %s" msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÔÕÒÅÌÉ %s: %s"
#: ccdfunc.c:697 #: ccdfunc.c:698
msgid "Can't get IOport state (unsupported?)" msgid "Can't get IOport state (unsupported?)"
msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÁ I/O (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)" msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÁ I/O (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
#. GET binning should be AFTER setgeometry! #. GET binning should be AFTER setgeometry!
#: ccdfunc.c:757 #: ccdfunc.c:758
msgid "Can't get current binning" msgid "Can't get current binning"
msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÂÉÎÎÉÎÇÁ" msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÂÉÎÎÉÎÇÁ"
@ -105,7 +105,7 @@ msgstr "
msgid "Can't get max wheel position" msgid "Can't get max wheel position"
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ËÏÌÅÓÁ" msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ËÏÌÅÓÁ"
#: ccdfunc.c:791 ccdfunc.c:839 #: ccdfunc.c:792 ccdfunc.c:840
msgid "Can't grab image" msgid "Can't grab image"
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ" msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
@ -125,7 +125,7 @@ msgstr "
msgid "Can't open OpenGL window, image preview will be inaccessible" msgid "Can't open OpenGL window, image preview will be inaccessible"
msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÏËÎÏ OpenGL, ÏÔÏÂÒÁÖÅÎÉÅ ÂÕÄÅÔ ÎÅÄÏÓÔÕÐÎÏ" msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÏËÎÏ OpenGL, ÏÔÏÂÒÁÖÅÎÉÅ ÂÕÄÅÔ ÎÅÄÏÓÔÕÐÎÏ"
#: ccdfunc.c:684 #: ccdfunc.c:685
#, c-format #, c-format
msgid "Can't run shutter command %s (unsupported?)" msgid "Can't run shutter command %s (unsupported?)"
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÚÁÔ×ÏÒÁ %s (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)" msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÚÁÔ×ÏÒÁ %s (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
@ -136,21 +136,21 @@ msgstr "
msgid "Can't save file with prefix %s" msgid "Can't save file with prefix %s"
msgstr "îÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÆÁÊÌ Ó ÐÒÅÆÉËÓÏÍ %s" msgstr "îÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÆÁÊÌ Ó ÐÒÅÆÉËÓÏÍ %s"
#: ccdfunc.c:741 #: ccdfunc.c:742
#, c-format #, c-format
msgid "Can't set %d flushes" msgid "Can't set %d flushes"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ %d ÓÂÒÏÓÏ×" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ %d ÓÂÒÏÓÏ×"
#: ccdfunc.c:703 #: ccdfunc.c:704
msgid "Can't set IOport" msgid "Can't set IOport"
msgstr "îÅ ÍÏÇÕ ÐÏÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ÐÏÒÔÁ I/O" msgstr "îÅ ÍÏÇÕ ÐÏÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ÐÏÒÔÁ I/O"
#: ccdfunc.c:674 #: ccdfunc.c:675
#, c-format #, c-format
msgid "Can't set T to %g degC" msgid "Can't set T to %g degC"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÔÅÍÐÅÒÁÔÕÒÕ × %g ÇÒÁÄã" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÔÅÍÐÅÒÁÔÕÒÕ × %g ÇÒÁÄã"
#: ccdfunc.c:646 #: ccdfunc.c:647
msgid "Can't set active camera number" msgid "Can't set active camera number"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÊ ËÁÍÅÒÙ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÊ ËÁÍÅÒÙ"
@ -162,35 +162,35 @@ msgstr "
msgid "Can't set active wheel number" msgid "Can't set active wheel number"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ËÏÌÅÓÁ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ËÏÌÅÓÁ"
#: ccdfunc.c:725 server.c:229 #: ccdfunc.c:726 server.c:229
#, c-format #, c-format
msgid "Can't set binning %dx%d" msgid "Can't set binning %dx%d"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÂÉÎÎÉÎÇ %dx%d" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÂÉÎÎÉÎÇ %dx%d"
#: ccdfunc.c:751 #: ccdfunc.c:752
msgid "Can't set bit depth" msgid "Can't set bit depth"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÒÑÄÎÏÓÔØ áãð" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÒÑÄÎÏÓÔØ áãð"
#: ccdfunc.c:717 #: ccdfunc.c:718
#, c-format #, c-format
msgid "Can't set brightness to %g" msgid "Can't set brightness to %g"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
#: ccdfunc.c:745 #: ccdfunc.c:746
#, c-format #, c-format
msgid "Can't set exposure time to %f seconds" msgid "Can't set exposure time to %f seconds"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÜËÓÐÏÚÉÃÉÀ × %f ÓÅËÕÎÄ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÜËÓÐÏÚÉÃÉÀ × %f ÓÅËÕÎÄ"
#: ccdfunc.c:652 #: ccdfunc.c:653
msgid "Can't set fan speed" msgid "Can't set fan speed"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ×" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ×"
#: ccdfunc.c:711 #: ccdfunc.c:712
#, c-format #, c-format
msgid "Can't set gain to %g" msgid "Can't set gain to %g"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ Gain × %g" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ Gain × %g"
#: ccdfunc.c:737 server.c:230 #: ccdfunc.c:738 server.c:230
msgid "Can't set given geometry" msgid "Can't set given geometry"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÇÅÏÍÅÔÒÉÀ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÇÅÏÍÅÔÒÉÀ"
@ -204,7 +204,7 @@ msgstr "
msgid "Can't set position %g: out of limits [%g, %g]" msgid "Can't set position %g: out of limits [%g, %g]"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÚÉÃÉÀ %g: ×ÎÅ ÐÒÅÄÅÌÏ× [%g, %g]" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÚÉÃÉÀ %g: ×ÎÅ ÐÒÅÄÅÌÏ× [%g, %g]"
#: ccdfunc.c:753 #: ccdfunc.c:754
msgid "Can't set readout speed" msgid "Can't set readout speed"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÓÞÉÔÙ×ÁÎÉÑ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÓÞÉÔÙ×ÁÎÉÑ"
@ -213,17 +213,17 @@ msgstr "
msgid "Can't set wheel position %d" msgid "Can't set wheel position %d"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÌÏÖÅÎÉÅ ËÏÌÅÓÁ %d" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÌÏÖÅÎÉÅ ËÏÌÅÓÁ %d"
#: ccdfunc.c:781 ccdfunc.c:831 server.c:124 #: ccdfunc.c:782 ccdfunc.c:832 server.c:124
msgid "Can't start exposition" msgid "Can't start exposition"
msgstr "îÅ ÍÏÇÕ ÎÁÞÁÔØ ÜËÓÐÏÚÉÃÉÀ" msgstr "îÅ ÍÏÇÕ ÎÁÞÁÔØ ÜËÓÐÏÚÉÃÉÀ"
#. Захват кадра %d\n #. Захват кадра %d\n
#: ccdfunc.c:779 #: ccdfunc.c:780
#, c-format #, c-format
msgid "Capture frame %d" msgid "Capture frame %d"
msgstr "úÁÈ×ÁÔ ËÁÄÒÁ %d" msgstr "úÁÈ×ÁÔ ËÁÄÒÁ %d"
#: ccdfunc.c:671 #: ccdfunc.c:672
#, c-format #, c-format
msgid "Current format: %s" msgid "Current format: %s"
msgstr "" msgstr ""
@ -241,7 +241,7 @@ msgstr "
msgid "Error saving file" msgid "Error saving file"
msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ" msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ"
#: ccdfunc.c:668 #: ccdfunc.c:669
#, c-format #, c-format
msgid "Field of view: %s" msgid "Field of view: %s"
msgstr "ðÏÌÅ ÚÒÅÎÉÑ: %s" msgstr "ðÏÌÅ ÚÒÅÎÉÑ: %s"
@ -255,7 +255,7 @@ msgstr "
msgid "Focuser device not pointed" msgid "Focuser device not pointed"
msgstr "õÓÔÒÏÊÓÔ×Ï ÆÏËÕÓÅÒÁ ÎÅ ÕËÁÚÁÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï ÆÏËÕÓÅÒÁ ÎÅ ÕËÁÚÁÎÏ"
#: ccdfunc.c:642 #: ccdfunc.c:643
#, c-format #, c-format
msgid "Found %d cameras, you point number %d" msgid "Found %d cameras, you point number %d"
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÁÍÅÒ, ×Ù ÕËÁÚÁÌÉ %d" msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÁÍÅÒ, ×Ù ÕËÁÚÁÌÉ %d"
@ -270,7 +270,7 @@ msgstr "
msgid "Found %d wheels, you point number %d" msgid "Found %d wheels, you point number %d"
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÏÌÅÓ, ×Ù ÕËÁÚÁÌÉ %d" msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÏÌÅÓ, ×Ù ÕËÁÚÁÌÉ %d"
#: ccdfunc.c:665 #: ccdfunc.c:666
#, c-format #, c-format
msgid "Full array: %s" msgid "Full array: %s"
msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s" msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s"
@ -293,7 +293,7 @@ msgstr "N
msgid "No camera device" msgid "No camera device"
msgstr "îÅ ÕËÁÚÁÎÏ ÕÓÔÒÏÊÓÔ×Ï ËÁÍÅÒÙ" msgstr "îÅ ÕËÁÚÁÎÏ ÕÓÔÒÏÊÓÔ×Ï ËÁÍÅÒÙ"
#: ccdfunc.c:611 ccdfunc.c:612 #: ccdfunc.c:612 ccdfunc.c:613
msgid "No cameras found" msgid "No cameras found"
msgstr "ëÁÍÅÒ ÎÅ ÏÂÎÁÒÕÖÅÎÏ" msgstr "ëÁÍÅÒ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
@ -305,7 +305,7 @@ msgstr "
msgid "No wheels found" msgid "No wheels found"
msgstr "ôÕÒÅÌÅÊ ÎÅ ÏÂÎÁÒÕÖÅÎÏ" msgstr "ôÕÒÅÌÅÊ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
#: ccdfunc.c:755 #: ccdfunc.c:756
msgid "Only show statistics" msgid "Only show statistics"
msgstr "ôÏÌØËÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÁÔÉÓÔÉËÕ" msgstr "ôÏÌØËÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÁÔÉÓÔÉËÕ"
@ -313,16 +313,16 @@ msgstr "
msgid "PID file (default: " msgid "PID file (default: "
msgstr "PID-ÆÁÊÌ (ÐÏ ÕÍÏÌÞÁÎÉÀ: " msgstr "PID-ÆÁÊÌ (ÐÏ ÕÍÏÌÞÁÎÉÀ: "
#: ccdfunc.c:659 #: ccdfunc.c:660
#, c-format #, c-format
msgid "Pixel size: %g x %g" msgid "Pixel size: %g x %g"
msgstr "òÁÚÍÅÒ ÐÉËÓÅÌÑ: %g x %g" msgstr "òÁÚÍÅÒ ÐÉËÓÅÌÑ: %g x %g"
#: ccdfunc.c:788 #: ccdfunc.c:789
msgid "Read grabbed image" msgid "Read grabbed image"
msgstr "óÞÉÔÙ×ÁÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ" msgstr "óÞÉÔÙ×ÁÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ"
#: ccdfunc.c:754 #: ccdfunc.c:755
#, c-format #, c-format
msgid "Readout mode: %s" msgid "Readout mode: %s"
msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s" msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s"
@ -331,34 +331,34 @@ msgstr "
msgid "Server timeout" msgid "Server timeout"
msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ" msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ"
#: ccdfunc.c:716 #: ccdfunc.c:717
#, c-format #, c-format
msgid "Set brightness to %g" msgid "Set brightness to %g"
msgstr "õÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g" msgstr "õÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
#: ccdfunc.c:653 #: ccdfunc.c:654
#, c-format #, c-format
msgid "Set fan speed to %d" msgid "Set fan speed to %d"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ× × %d" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ× × %d"
#: ccdfunc.c:710 #: ccdfunc.c:711
#, c-format #, c-format
msgid "Set gain to %g" msgid "Set gain to %g"
msgstr "õÓÔÁÎÏ×ÉÔØ Gain × %g" msgstr "õÓÔÁÎÏ×ÉÔØ Gain × %g"
#: ccdfunc.c:682 #: ccdfunc.c:683
#, c-format #, c-format
msgid "Shutter command: %s\n" msgid "Shutter command: %s\n"
msgstr "ëÏÍÁÎÄÁ ÚÁÔ×ÏÒÁ: %s\n" msgstr "ëÏÍÁÎÄÁ ÚÁÔ×ÏÒÁ: %s\n"
#. "Попытка Ñ<>конфигурироваÑÑŒ порт I/O как %d\n" #. "Попытка Ñ<>конфигурироваÑÑŒ порт I/O как %d\n"
#: ccdfunc.c:688 #: ccdfunc.c:689
#, c-format #, c-format
msgid "Try to configure I/O port as %d" msgid "Try to configure I/O port as %d"
msgstr "ðÏÐÙÔËÁ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÐÏÒÔ I/O ËÁË %d" msgstr "ðÏÐÙÔËÁ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÐÏÒÔ I/O ËÁË %d"
#. "Попытка запиÑ<C2B8>и %d в порт I/O\n" #. "Попытка запиÑ<C2B8>и %d в порт I/O\n"
#: ccdfunc.c:701 #: ccdfunc.c:702
#, c-format #, c-format
msgid "Try to write %d to I/O port" msgid "Try to write %d to I/O port"
msgstr "ðÏÐÙÔËÁ ÚÁÐÉÓÉ %d × ÐÏÒÔ I/O" msgstr "ðÏÐÙÔËÁ ÚÁÐÉÓÉ %d × ÐÏÒÔ I/O"

10
main.c
View File

@ -41,6 +41,10 @@ static pid_t childpid = 0;
void signals(int signo){ void signals(int signo){
if(signo) signal(signo, SIG_IGN); if(signo) signal(signo, SIG_IGN);
if(!GP->client){
DBG("Unlink pid file");
unlink(GP->pidfile);
}
if(childpid){ // master process if(childpid){ // master process
if(signo == SIGUSR1){ // kill child if(signo == SIGUSR1){ // kill child
kill(childpid, signo); kill(childpid, signo);
@ -49,10 +53,6 @@ void signals(int signo){
} }
WARNX("Master killed with sig=%d", signo); WARNX("Master killed with sig=%d", signo);
LOGERR("Master killed with sig=%d", signo); LOGERR("Master killed with sig=%d", signo);
if(!GP->client){
DBG("Unlink pid file");
unlink(GP->pidfile);
}
exit(signo); exit(signo);
} }
// slave: cancel exposition // slave: cancel exposition
@ -143,7 +143,7 @@ int main(int argc, char **argv){
} }
#endif #endif
if(camerainit) ccds(); if(camerainit) ccds();
return 0; signals(0);
} }
LOGMSG("Started"); LOGMSG("Started");
#ifndef EBUG #ifndef EBUG