fixed small speed in standalone mode; searching for reasons of the same for network mode

This commit is contained in:
Edward Emelianov 2023-04-06 16:01:28 +03:00
parent 070df2be89
commit e9f1c67055
10 changed files with 268 additions and 213 deletions

View File

@ -24,6 +24,7 @@
#include "basestructs.h" #include "basestructs.h"
#include "omp.h" #include "omp.h"
//#include "socket.h" // timestamp
extern Camera camera; extern Camera camera;
@ -32,7 +33,7 @@ static int isopened = FALSE, is16bit = FALSE;
static char camname[BUFSIZ] = {0}; static char camname[BUFSIZ] = {0};
static size_t payloadsize = 0; // size of imgBuf static size_t payloadsize = 0; // size of imgBuf
static unsigned char *imgBuf = NULL; static unsigned char *imgBuf = NULL;
static uint32_t expostime = 0.; // current exposition time (in microseconds) static uint32_t expostime = 0; // current exposition time (in microseconds)
static PYLON_DEVICECALLBACK_HANDLE hCb; static PYLON_DEVICECALLBACK_HANDLE hCb;
static int curhbin = 1, curvbin = 1; static int curhbin = 1, curvbin = 1;
@ -322,9 +323,11 @@ static int pollcapt(capture_status *st, float *remain){
static int capture(IMG *ima){ static int capture(IMG *ima){
FNAME(); FNAME();
//double __t0 = dtime();
if(!ima || !ima->data || !imgBuf || !isopened) return FALSE; if(!ima || !ima->data || !imgBuf || !isopened) return FALSE;
static int toohot = FALSE; static int toohot = FALSE;
float_values f; float_values f;
//TIMESTAMP("start capt");
if(!getFloat("DeviceTemperature", &f)) WARNX("Can't get temperature"); if(!getFloat("DeviceTemperature", &f)) WARNX("Can't get temperature");
else{ else{
DBG("Temperature: %.1f", f.val); DBG("Temperature: %.1f", f.val);
@ -338,17 +341,20 @@ static int capture(IMG *ima){
} }
PylonGrabResult_t grabResult; PylonGrabResult_t grabResult;
_Bool bufferReady; _Bool bufferReady;
//TIMESTAMP("grab single frame");
GENAPIC_RESULT res = PylonDeviceGrabSingleFrame(hDev, 0, imgBuf, payloadsize, GENAPIC_RESULT res = PylonDeviceGrabSingleFrame(hDev, 0, imgBuf, payloadsize,
&grabResult, &bufferReady, 500 + (uint32_t)expostime); &grabResult, &bufferReady, 1000 + expostime);
//TIMESTAMP("end of grabbing");
if(res != GENAPI_E_OK || !bufferReady){ if(res != GENAPI_E_OK || !bufferReady){
WARNX("res != GENAPI_E_OK || !bufferReady"); WARNX("res != GENAPI_E_OK || !bufferReady");
return FALSE; return FALSE;
} }
if(grabResult.Status != Grabbed){ if(grabResult.Status != Grabbed){
WARNX("grabResult.Status != Grabbed"); WARNX("grabResult.Status != Grabbed (%d)", grabResult.Status);
return FALSE; return FALSE;
} }
int width = grabResult.SizeX, height = grabResult.SizeY, stride = grabResult.SizeX + grabResult.PaddingX; int width = grabResult.SizeX, height = grabResult.SizeY, stride = grabResult.SizeX + grabResult.PaddingX;
//TIMESTAMP("start converting");
if(is16bit){ if(is16bit){
int s2 = stride<<1, w2 = width<<1; int s2 = stride<<1, w2 = width<<1;
OMP_FOR() OMP_FOR()
@ -367,6 +373,7 @@ static int capture(IMG *ima){
} }
} }
} }
//TIMESTAMP("image ready");
ima->bitpix = (is16bit) ? 16 : 8; ima->bitpix = (is16bit) ? 16 : 8;
return TRUE; return TRUE;
} }

View File

@ -26,6 +26,7 @@
#include <usefull_macros.h> #include <usefull_macros.h>
#include "basestructs.h" #include "basestructs.h"
#include "omp.h"
extern Camera camera; extern Camera camera;
extern Focuser focuser; extern Focuser focuser;
@ -67,12 +68,14 @@ static int startexp(){
static int camcapt(IMG *ima){ static int camcapt(IMG *ima){
static int n = 0; static int n = 0;
if(!ima || !ima->data) return FALSE; if(!ima || !ima->data) return FALSE;
uint16_t *d = ima->data; OMP_FOR()
for(int y = 0; y < ima->h; ++y) for(int y = 0; y < ima->h; ++y){
uint16_t *d = &ima->data[y*ima->w];
for(int x = 0; x < ima->w; ++x){ // sinusoide 100x200 for(int x = 0; x < ima->w; ++x){ // sinusoide 100x200
//*d++ = (uint16_t)(((n+x)%100)/99.*65535.); //*d++ = (uint16_t)(((n+x)%100)/99.*65535.);
*d++ = (uint16_t)((1 + sin((n+x) * M_PI/50)*sin((n+y) * M_PI/100))*32767.); *d++ = (uint16_t)((1 + sin((n+x) * M_PI/50)*sin((n+y) * M_PI/100))*32767.);
} }
}
++n; ++n;
ima->bitpix = 16; ima->bitpix = 16;
return TRUE; return TRUE;

View File

@ -28,6 +28,7 @@
#include "ccdfunc.h" #include "ccdfunc.h"
#include "cmdlnopts.h" #include "cmdlnopts.h"
#include "socket.h"
#ifdef IMAGEVIEW #ifdef IMAGEVIEW
#include "imageview.h" #include "imageview.h"
#endif #endif
@ -774,24 +775,31 @@ DBG("w=%d, h=%d", raw_width, raw_height);
IMG ima = {.data = img, .w = raw_width, .h = raw_height}; IMG ima = {.data = img, .w = raw_width, .h = raw_height};
if(GP->nframes < 1) GP->nframes = 1; if(GP->nframes < 1) GP->nframes = 1;
for(int j = 0; j < GP->nframes; ++j){ for(int j = 0; j < GP->nframes; ++j){
TIMESTAMP("Start next cycle");
TIMEINIT();
// úÁÈ×ÁÔ ËÁÄÒÁ %d\n // úÁÈ×ÁÔ ËÁÄÒÁ %d\n
verbose(1, _("Capture frame %d"), j); verbose(1, _("Capture frame %d"), j);
if(!camera->startexposition()){ if(!camera->startexposition()){
WARNX(_("Can't start exposition")); WARNX(_("Can't start exposition"));
break; break;
} }
TIMESTAMP("Check capture");
if(capt() != CAPTURE_READY){ if(capt() != CAPTURE_READY){
WARNX(_("Can't capture image")); WARNX(_("Can't capture image"));
break; break;
} }
verbose(2, _("Read grabbed image")); verbose(2, _("Read grabbed image"));
TIMESTAMP("Read grabbed");
//if(!camera) return; //if(!camera) return;
if(!camera->capture(&ima)){ if(!camera->capture(&ima)){
WARNX(_("Can't grab image")); WARNX(_("Can't grab image"));
break; break;
} }
TIMESTAMP("Calc stat");
calculate_stat(&ima); calculate_stat(&ima);
TIMESTAMP("Save fits");
saveFITS(&ima, NULL); saveFITS(&ima, NULL);
TIMESTAMP("Ready");
if(GP->pause_len && j != (GP->nframes - 1)){ if(GP->pause_len && j != (GP->nframes - 1)){
double delta, time1 = dtime() + GP->pause_len; double delta, time1 = dtime() + GP->pause_len;
while((delta = time1 - dtime()) > 0.){ while((delta = time1 - dtime()) > 0.){
@ -821,30 +829,28 @@ void camstop(){
#ifdef IMAGEVIEW #ifdef IMAGEVIEW
static volatile int grabends = 1; static volatile int grabno = 0, lastgrabno = 0, exitgrab = FALSE;
static void *grabnext(void *arg){ static void *grabnext(void *arg){
FNAME(); FNAME();
grabends = 0;
static int retval = FALSE;
IMG *ima = (IMG*) arg; IMG *ima = (IMG*) arg;
DBG("nxt"); do{
if(!ima || !camera) goto eof; if(exitgrab) return NULL;
if(!camera->startexposition()){ WARNX(_("Can't start exposition")); goto eof; } TIMESTAMP("Start next exp");
TIMEINIT();
if(!ima || !camera) return NULL;
if(!camera->startexposition()){ WARNX(_("Can't start exposition")); continue; }
capture_status cs; capture_status cs;
DBG("Poll"); TIMESTAMP("Poll");
while(!camera->pollcapture(&cs, NULL)){ while(!camera->pollcapture(&cs, NULL)){
usleep(10000); usleep(10000);
if(!camera) goto eof; if(!camera) return NULL;
} }
DBG("get"); TIMESTAMP("get");
if(!camera->capture(ima)){ WARNX(_("Can't grab image")); goto eof; } if(!camera->capture(ima)){ WARNX(_("Can't grab image")); continue; }
calculate_stat(ima); //calculate_stat(ima);
retval = TRUE; TIMESTAMP("OK");
DBG("OK"); ++grabno;
eof: }while(1);
grabends = 1;
pthread_exit((void*)&retval);
DBG("EXIT");
} }
@ -861,7 +867,8 @@ int ccdcaptured(IMG **imgptr){
if(imgptr == (void*)-1){ // kill `grabnext` if(imgptr == (void*)-1){ // kill `grabnext`
DBG("Wait for grabbing thread ends"); DBG("Wait for grabbing thread ends");
if(grabthread){ if(grabthread){
//pthread_cancel(grabthread); - this kills some cameras exitgrab = TRUE;
//pthread_cancel(grabthread); // this kills some cameras
//pthread_timedjoin_np //pthread_timedjoin_np
pthread_join(grabthread, NULL); pthread_join(grabthread, NULL);
grabthread = 0; grabthread = 0;
@ -884,26 +891,30 @@ int ccdcaptured(IMG **imgptr){
}else ima = *imgptr; }else ima = *imgptr;
if(!grabthread){ // start new grab if(!grabthread){ // start new grab
DBG("\n\n\nStart new grab"); TIMESTAMP("Start new grab");
TIMEINIT();
if(pthread_create(&grabthread, NULL, &grabnext, (void*)ima)){ if(pthread_create(&grabthread, NULL, &grabnext, (void*)ima)){
WARN("Can't create grabbing thread"); WARN("Can't create grabbing thread");
grabthread = 0; grabthread = 0;
} }
tlast = dtime(); tlast = dtime();
}else{ // grab in process }else{ // grab in process
if(grabends){ // thread is dead if(grabno != lastgrabno){ // done
DBG("Grab ends"); lastgrabno = grabno;
void *vr; TIMESTAMP("Grab ends");
pthread_join(grabthread, &vr); //void *vr;
int retcode = *(int*)vr; //pthread_join(grabthread, &vr);
DBG("retcode = %d", retcode); //int retcode = *(int*)vr;
grabthread = 0; //DBG("retcode = %d", retcode);
//grabthread = 0;
if(GP->verbose > 1){ if(GP->verbose > 1){
double t = dtime(); double t = dtime();
green("Framerate=%.2g\n", 1./(t-tlast)); green("Framerate=%.2g (%g seconds for exp)\n", 1./(t-tlast), t-tlast);
tlast = t; tlast = t;
} }
if(retcode) return TRUE; //TIMESTAMP("Framerate");
//if(retcode)
return TRUE;
} }
} }
return FALSE; return FALSE;

View File

@ -41,7 +41,7 @@ static int xc0,yc0,xc1,yc1; // current format
#ifdef IMAGEVIEW #ifdef IMAGEVIEW
static IMG ima = {0}; static IMG ima = {0};
static volatile atomic_int grabends = 0; static volatile atomic_int grabno = 0, oldgrabno = 0;
static int imdatalen = 0, imbufsz = 0; static int imdatalen = 0, imbufsz = 0;
#endif #endif
@ -74,6 +74,7 @@ static char *readmsg(int fd){
// parser of CCD server messages; return TRUE to exit from polling cycle of `getans` (if receive 'FAIL', 'OK' or 'BUSY') // parser of CCD server messages; return TRUE to exit from polling cycle of `getans` (if receive 'FAIL', 'OK' or 'BUSY')
static int parseans(char *ans){ static int parseans(char *ans){
if(!ans) return FALSE; if(!ans) return FALSE;
TIMESTAMP("parseans() begin");
//DBG("Parsing of '%s'", ans); //DBG("Parsing of '%s'", ans);
if(0 == strcmp(hresult2str(RESULT_BUSY), ans)){ if(0 == strcmp(hresult2str(RESULT_BUSY), ans)){
WARNX("Server busy"); WARNX("Server busy");
@ -103,6 +104,7 @@ static int parseans(char *ans){
imdatalen = ima.w * ima.h * 2; imdatalen = ima.w * ima.h * 2;
} }
#endif #endif
TIMESTAMP("parseans() end");
return FALSE; return FALSE;
} }
@ -119,7 +121,7 @@ static int getans(int sock, const char *msg){
} }
t0 = dtime(); t0 = dtime();
ans = s; ans = s;
DBG("Got from server: %s", ans); TIMESTAMP("Got from server: %s", ans);
verbose(1, "\t%s", ans); verbose(1, "\t%s", ans);
if(parseans(ans)){ if(parseans(ans)){
if(msg && strncmp(ans, msg, strlen(msg))) continue; if(msg && strncmp(ans, msg, strlen(msg))) continue;
@ -297,6 +299,7 @@ void init_grab_sock(int sock){
static void getimage(){ static void getimage(){
FNAME(); FNAME();
int sock = controlfd; int sock = controlfd;
TIMESTAMP("Get image sizes");
SENDMSG(CMD_IMWIDTH); SENDMSG(CMD_IMWIDTH);
SENDMSG(CMD_IMHEIGHT); SENDMSG(CMD_IMHEIGHT);
int imsock = open_socket(FALSE, GP->imageport, TRUE); int imsock = open_socket(FALSE, GP->imageport, TRUE);
@ -310,6 +313,7 @@ static void getimage(){
int got = 0; int got = 0;
while(dtime() - t0 < CLIENT_TIMEOUT){ while(dtime() - t0 < CLIENT_TIMEOUT){
if(!canberead(imsock)) continue; if(!canberead(imsock)) continue;
TIMESTAMP("Read data");
uint8_t *target = ((uint8_t*)ima.data)+got; uint8_t *target = ((uint8_t*)ima.data)+got;
int rd = read(imsock, target, imdatalen - got); int rd = read(imsock, target, imdatalen - got);
if(rd <= 0){ if(rd <= 0){
@ -320,12 +324,12 @@ static void getimage(){
DBG("Read %d bytes; total read %d from %d; first: %x %x %x %x", rd, got, imdatalen, target[0], DBG("Read %d bytes; total read %d from %d; first: %x %x %x %x", rd, got, imdatalen, target[0],
target[1], target[2], target[3]); target[1], target[2], target[3]);
if(got == imdatalen){ if(got == imdatalen){
DBG("Got image");
grabends = 1;
break; break;
} }
} }
if(dtime() - t0 > CLIENT_TIMEOUT) WARNX("Timeout, image didn't received"); if(dtime() - t0 > CLIENT_TIMEOUT) WARNX("Timeout, image didn't received");
TIMESTAMP("Got image");
++grabno;
close(imsock); close(imsock);
} }
@ -334,10 +338,9 @@ static void *grabnext(void _U_ *arg){ // daemon grabbing images through the net
if(controlfd < 0) return NULL; if(controlfd < 0) return NULL;
int sock = controlfd; int sock = controlfd;
while(1){ while(1){
DBG("WAIT");
while(grabends); // wait until image processed
expstate = CAMERA_CAPTURE; expstate = CAMERA_CAPTURE;
DBG("CAPT"); TIMESTAMP("End of cycle, start new");
TIMEINIT();
SENDMSG(CMD_EXPSTATE "=%d", CAMERA_CAPTURE); // start capture SENDMSG(CMD_EXPSTATE "=%d", CAMERA_CAPTURE); // start capture
double timeout = GP->exptime + CLIENT_TIMEOUT, t0 = dtime(); double timeout = GP->exptime + CLIENT_TIMEOUT, t0 = dtime();
useconds_t sleept = 500000; // 0.5s useconds_t sleept = 500000; // 0.5s
@ -346,18 +349,18 @@ static void *grabnext(void _U_ *arg){ // daemon grabbing images through the net
if(sleept < 1000) sleept = 1000; if(sleept < 1000) sleept = 1000;
} }
while(dtime() - t0 < timeout){ while(dtime() - t0 < timeout){
DBG("SLEEP!"); TIMESTAMP("Wait for exposition ends");
usleep(sleept); usleep(sleept);
//SENDMSG(CMD_EXPSTATE); TIMESTAMP("check answer");
getans(sock, NULL); getans(sock, NULL);
DBG("EXPSTATE ===> %d", expstate); TIMESTAMP("EXPSTATE ===> %d", expstate);
if(expstate != CAMERA_CAPTURE) break; if(expstate != CAMERA_CAPTURE) break;
} }
if(dtime() - t0 >= timeout || expstate != CAMERA_FRAMERDY){ if(dtime() - t0 >= timeout || expstate != CAMERA_FRAMERDY){
WARNX("Image wasn't received"); WARNX("Image wasn't received");
continue; continue;
} }
DBG("Frame ready"); TIMESTAMP("Frame ready");
getimage(); getimage();
} }
return NULL; return NULL;
@ -368,13 +371,13 @@ static void *waitimage(void _U_ *arg){ // passive waiting for next image
if(controlfd < 0) return NULL; if(controlfd < 0) return NULL;
int sock = controlfd; int sock = controlfd;
while(1){ while(1){
while(grabends); // wait until image processed
getans(sock, NULL); getans(sock, NULL);
if(expstate != CAMERA_FRAMERDY){ if(expstate != CAMERA_FRAMERDY){
usleep(1000); usleep(1000);
continue; continue;
} }
DBG("Image can be downloaded"); TIMESTAMP("End of cycle, start new");
TIMEINIT();
getimage(); getimage();
expstate = CAMERA_IDLE; expstate = CAMERA_IDLE;
} }
@ -398,12 +401,14 @@ int sockcaptured(IMG **imgptr){
} }
if(!grabthread || pthread_kill(grabthread, 0)){ // start new grab if(!grabthread || pthread_kill(grabthread, 0)){ // start new grab
if(GP->viewer){ if(GP->viewer){
TIMEINIT();
DBG("\n\n\nStart new waiting"); DBG("\n\n\nStart new waiting");
if(pthread_create(&grabthread, NULL, &waitimage, NULL)){ if(pthread_create(&grabthread, NULL, &waitimage, NULL)){
WARN("Can't create waiting thread"); WARN("Can't create waiting thread");
grabthread = 0; grabthread = 0;
} }
}else{ }else{
TIMEINIT();
DBG("\n\n\nStart new grab"); DBG("\n\n\nStart new grab");
if(pthread_create(&grabthread, NULL, &grabnext, NULL)){ if(pthread_create(&grabthread, NULL, &grabnext, NULL)){
WARN("Can't create grabbing thread"); WARN("Can't create grabbing thread");
@ -411,11 +416,11 @@ int sockcaptured(IMG **imgptr){
} }
} }
}else{ // grab in process }else{ // grab in process
if(grabends){ // image is ready if(grabno != oldgrabno){ // image is ready
DBG("Image ready"); TIMESTAMP("Image ready");
if(*imgptr && (*imgptr != &ima)) free(*imgptr); if(*imgptr && (*imgptr != &ima)) free(*imgptr);
*imgptr = &ima; *imgptr = &ima;
grabends = 0; oldgrabno = grabno;
return TRUE; return TRUE;
} }
} }

View File

@ -28,6 +28,7 @@
#include "imageview.h" #include "imageview.h"
#include "events.h" #include "events.h"
#include "omp.h" #include "omp.h"
//#include "socket.h" // for timestamp
windowData *win = NULL; // main window (common variable for events.c) windowData *win = NULL; // main window (common variable for events.c)
static pthread_t GLUTthread = 0; // main GLUT thread static pthread_t GLUTthread = 0; // main GLUT thread
@ -557,8 +558,10 @@ int viewer(imagefunc newimage){
} }
if((win->winevt & WINEVT_GETIMAGE) || !(win->winevt & WINEVT_PAUSE)){ if((win->winevt & WINEVT_GETIMAGE) || !(win->winevt & WINEVT_PAUSE)){
if(newimage(&img)){ if(newimage(&img)){
//TIMESTAMP("got image -> change");
win->winevt &= ~WINEVT_GETIMAGE; win->winevt &= ~WINEVT_GETIMAGE;
change_displayed_image(img); // change image if refreshed change_displayed_image(img); // change image if refreshed
//TIMESTAMP("changed");
} }
} }
if(!win->winevt){ if(!win->winevt){

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-04-05 18:17+0300\n" "POT-Creation-Date: 2023-04-06 15:51+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"
@ -253,346 +253,346 @@ msgstr ""
msgid "Display image in OpenGL window" msgid "Display image in OpenGL window"
msgstr "" msgstr ""
#: ccdfunc.c:64 #: ccdfunc.c:65
#, c-format #, c-format
msgid "Can't find plugin %s: %s" msgid "Can't find plugin %s: %s"
msgstr "" msgstr ""
#: ccdfunc.c:76 #: ccdfunc.c:77
#, c-format #, c-format
msgid "Can't find focuser in plugin %s: %s" msgid "Can't find focuser in plugin %s: %s"
msgstr "" msgstr ""
#: ccdfunc.c:87 #: ccdfunc.c:88
#, c-format #, c-format
msgid "Can't find camera in plugin %s: %s" msgid "Can't find camera in plugin %s: %s"
msgstr "" msgstr ""
#: ccdfunc.c:98 #: ccdfunc.c:99
#, c-format #, c-format
msgid "Can't find wheel in plugin %s: %s" msgid "Can't find wheel in plugin %s: %s"
msgstr "" msgstr ""
#: ccdfunc.c:184 #: ccdfunc.c:185
msgid "Camera device unknown" msgid "Camera device unknown"
msgstr "" msgstr ""
#. Не могу сохранить файл #. Не могу сохранить файл
#: ccdfunc.c:208 #: ccdfunc.c:209
#, c-format #, c-format
msgid "Can't save file with prefix %s" msgid "Can't save file with prefix %s"
msgstr "" msgstr ""
#: ccdfunc.c:356 #: ccdfunc.c:357
#, c-format #, c-format
msgid "File saved as '%s'" msgid "File saved as '%s'"
msgstr "" msgstr ""
#: ccdfunc.c:365 #: ccdfunc.c:366
msgid "Error saving file" msgid "Error saving file"
msgstr "" msgstr ""
#: ccdfunc.c:405 #: ccdfunc.c:406
#, c-format #, c-format
msgid "Image stat:\n" msgid "Image stat:\n"
msgstr "" msgstr ""
#: ccdfunc.c:413 #: ccdfunc.c:414
msgid "Focuser device not pointed" msgid "Focuser device not pointed"
msgstr "" msgstr ""
#: ccdfunc.c:420 #: ccdfunc.c:421
msgid "No focusers found" msgid "No focusers found"
msgstr "" msgstr ""
#: ccdfunc.c:451 #: ccdfunc.c:452
#, c-format #, c-format
msgid "Found %d focusers, you point number %d" msgid "Found %d focusers, you point number %d"
msgstr "" msgstr ""
#: ccdfunc.c:455 #: ccdfunc.c:456
msgid "Can't set active focuser number" msgid "Can't set active focuser number"
msgstr "" msgstr ""
#: ccdfunc.c:469 #: ccdfunc.c:470
msgid "Can't get focuser limit positions" msgid "Can't get focuser limit positions"
msgstr "" msgstr ""
#: ccdfunc.c:476 #: ccdfunc.c:477
msgid "Can't get current focuser position" msgid "Can't get current focuser position"
msgstr "" msgstr ""
#: ccdfunc.c:490 #: ccdfunc.c:491
#, c-format #, c-format
msgid "Can't set position %g: out of limits [%g, %g]" msgid "Can't set position %g: out of limits [%g, %g]"
msgstr "" msgstr ""
#: ccdfunc.c:494 #: ccdfunc.c:495
msgid "Can't home focuser" msgid "Can't home focuser"
msgstr "" msgstr ""
#: ccdfunc.c:496 #: ccdfunc.c:497
#, c-format #, c-format
msgid "Can't set position %g" msgid "Can't set position %g"
msgstr "" msgstr ""
#: ccdfunc.c:504 #: ccdfunc.c:505
msgid "Wheel device not pointed" msgid "Wheel device not pointed"
msgstr "" msgstr ""
#: ccdfunc.c:511 #: ccdfunc.c:512
msgid "No wheels found" msgid "No wheels found"
msgstr "" msgstr ""
#: ccdfunc.c:542 #: ccdfunc.c:543
#, c-format #, c-format
msgid "Found %d wheels, you point number %d" msgid "Found %d wheels, you point number %d"
msgstr "" msgstr ""
#: ccdfunc.c:546 #: ccdfunc.c:547
msgid "Can't set active wheel number" msgid "Can't set active wheel number"
msgstr "" msgstr ""
#: ccdfunc.c:562 #: ccdfunc.c:563
msgid "Can't get max wheel position" msgid "Can't get max wheel position"
msgstr "" msgstr ""
#: ccdfunc.c:569 #: ccdfunc.c:570
#, c-format #, c-format
msgid "Wheel position should be from 0 to %d" msgid "Wheel position should be from 0 to %d"
msgstr "" msgstr ""
#: ccdfunc.c:573 #: ccdfunc.c:574
#, c-format #, c-format
msgid "Can't set wheel position %d" msgid "Can't set wheel position %d"
msgstr "" msgstr ""
#: ccdfunc.c:590 #: ccdfunc.c:591
#, c-format #, c-format
msgid "%.1f seconds till exposition ends" msgid "%.1f seconds till exposition ends"
msgstr "" msgstr ""
#: ccdfunc.c:605 #: ccdfunc.c:606
msgid "Camera device not pointed" msgid "Camera device not pointed"
msgstr "" msgstr ""
#: ccdfunc.c:612 ccdfunc.c:613 #: ccdfunc.c:613 ccdfunc.c:614
msgid "No cameras found" msgid "No cameras found"
msgstr "" msgstr ""
#: ccdfunc.c:643 #: ccdfunc.c:644
#, c-format #, c-format
msgid "Found %d cameras, you point number %d" msgid "Found %d cameras, you point number %d"
msgstr "" msgstr ""
#: ccdfunc.c:647 #: ccdfunc.c:648
msgid "Can't set active camera number" msgid "Can't set active camera number"
msgstr "" msgstr ""
#: ccdfunc.c:653 #: ccdfunc.c:654
msgid "Can't set fan speed" msgid "Can't set fan speed"
msgstr "" msgstr ""
#: ccdfunc.c:654 #: ccdfunc.c:655
#, c-format #, c-format
msgid "Set fan speed to %d" msgid "Set fan speed to %d"
msgstr "" msgstr ""
#: ccdfunc.c:659 #: ccdfunc.c:660
#, c-format #, c-format
msgid "Camera model: %s" msgid "Camera model: %s"
msgstr "" msgstr ""
#: ccdfunc.c:660 #: ccdfunc.c:661
#, c-format #, c-format
msgid "Pixel size: %g x %g" msgid "Pixel size: %g x %g"
msgstr "" msgstr ""
#: ccdfunc.c:666 #: ccdfunc.c:667
#, c-format #, c-format
msgid "Full array: %s" msgid "Full array: %s"
msgstr "" msgstr ""
#: ccdfunc.c:669 #: ccdfunc.c:670
#, c-format #, c-format
msgid "Field of view: %s" msgid "Field of view: %s"
msgstr "" msgstr ""
#: ccdfunc.c:672 #: ccdfunc.c:673
#, c-format #, c-format
msgid "Current format: %s" msgid "Current format: %s"
msgstr "" msgstr ""
#: ccdfunc.c:675 #: ccdfunc.c:676
#, c-format #, c-format
msgid "Can't set T to %g degC" msgid "Can't set T to %g degC"
msgstr "" msgstr ""
#: ccdfunc.c:683 #: ccdfunc.c:684
#, c-format #, c-format
msgid "Shutter command: %s\n" msgid "Shutter command: %s\n"
msgstr "" msgstr ""
#: ccdfunc.c:685 #: ccdfunc.c:686
#, 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:689 #: ccdfunc.c:690
#, 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:691 #: ccdfunc.c:692
msgid "Can't configure (unsupported?)" msgid "Can't configure (unsupported?)"
msgstr "" msgstr ""
#: ccdfunc.c:698 #: ccdfunc.c:699
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:702 #: ccdfunc.c:703
#, 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:704 #: ccdfunc.c:705
msgid "Can't set IOport" msgid "Can't set IOport"
msgstr "" msgstr ""
#: ccdfunc.c:711
#, c-format
msgid "Set gain to %g"
msgstr ""
#: ccdfunc.c:712 #: ccdfunc.c:712
#, c-format #, c-format
msgid "Can't set gain to %g" msgid "Set gain to %g"
msgstr "" msgstr ""
#: ccdfunc.c:717 #: ccdfunc.c:713
#, c-format #, c-format
msgid "Set brightness to %g" msgid "Can't set gain to %g"
msgstr "" msgstr ""
#: ccdfunc.c:718 #: ccdfunc.c:718
#, c-format #, c-format
msgid "Set brightness to %g"
msgstr ""
#: ccdfunc.c:719
#, c-format
msgid "Can't set brightness to %g" msgid "Can't set brightness to %g"
msgstr "" msgstr ""
#: ccdfunc.c:724 server.c:227 #: ccdfunc.c:725 server.c:234
#, c-format #, c-format
msgid "Can't set binning %dx%d" msgid "Can't set binning %dx%d"
msgstr "" msgstr ""
#: ccdfunc.c:736 server.c:228 #: ccdfunc.c:737 server.c:235
msgid "Can't set given geometry" msgid "Can't set given geometry"
msgstr "" msgstr ""
#: ccdfunc.c:740 #: ccdfunc.c:741
#, c-format #, c-format
msgid "Can't set %d flushes" msgid "Can't set %d flushes"
msgstr "" msgstr ""
#: ccdfunc.c:744 #: ccdfunc.c:745
#, 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:747 #: ccdfunc.c:748
msgid "Can't change frame type" msgid "Can't change frame type"
msgstr "" msgstr ""
#: ccdfunc.c:750 #: ccdfunc.c:751
msgid "Can't set bit depth" msgid "Can't set bit depth"
msgstr "" msgstr ""
#: ccdfunc.c:752 #: ccdfunc.c:753
msgid "Can't set readout speed" msgid "Can't set readout speed"
msgstr "" msgstr ""
#: ccdfunc.c:753 #: ccdfunc.c:754
#, c-format #, c-format
msgid "Readout mode: %s" msgid "Readout mode: %s"
msgstr "" msgstr ""
#: ccdfunc.c:754 #: ccdfunc.c:755
msgid "Only show statistics" msgid "Only show statistics"
msgstr "" msgstr ""
#. GET binning should be AFTER setgeometry! #. GET binning should be AFTER setgeometry!
#: ccdfunc.c:756 #: ccdfunc.c:757
msgid "Can't get current binning" msgid "Can't get current binning"
msgstr "" msgstr ""
#. Захват кадра %d\n #. Захват кадра %d\n
#: ccdfunc.c:778 #: ccdfunc.c:781
#, c-format #, c-format
msgid "Capture frame %d" msgid "Capture frame %d"
msgstr "" msgstr ""
#: ccdfunc.c:780 ccdfunc.c:832 server.c:122 #: ccdfunc.c:783 ccdfunc.c:841 server.c:122
msgid "Can't start exposition" msgid "Can't start exposition"
msgstr "" msgstr ""
#: ccdfunc.c:784 #: ccdfunc.c:788
msgid "Can't capture image" msgid "Can't capture image"
msgstr "" msgstr ""
#: ccdfunc.c:787 #: ccdfunc.c:791
msgid "Read grabbed image" msgid "Read grabbed image"
msgstr "" msgstr ""
#: ccdfunc.c:790 ccdfunc.c:840 #: ccdfunc.c:795 ccdfunc.c:849
msgid "Can't grab image" msgid "Can't grab image"
msgstr "" msgstr ""
#. %d секунд до окончания паузы\n #. %d секунд до окончания паузы\n
#: ccdfunc.c:799 client.c:269 #: ccdfunc.c:807 client.c:271
#, c-format #, c-format
msgid "%d seconds till pause ends\n" msgid "%d seconds till pause ends\n"
msgstr "" msgstr ""
#: server.c:165 #: server.c:170
msgid "No camera device" msgid "No camera device"
msgstr "" msgstr ""
#: client.c:256 #: client.c:258
msgid "Can't make exposition" msgid "Can't make exposition"
msgstr "" msgstr ""
#: client.c:285 #: client.c:287
msgid "Server timeout" msgid "Server timeout"
msgstr "" msgstr ""
#: imageview.c:50 #: imageview.c:51
msgid "Already initialized!" msgid "Already initialized!"
msgstr "" msgstr ""
#: imageview.c:286 #: imageview.c:287
msgid "Can't init mutex!" msgid "Can't init mutex!"
msgstr "" msgstr ""
#: imageview.c:388 #: imageview.c:389
#, c-format #, c-format
msgid "Histogram conversion: %s" msgid "Histogram conversion: %s"
msgstr "" msgstr ""
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
#, c-format #, c-format
msgid "Equalization of histogram: %s" msgid "Equalization of histogram: %s"
msgstr "" msgstr ""
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
msgid "on" msgid "on"
msgstr "" msgstr ""
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
msgid "off" msgid "off"
msgstr "" msgstr ""
#: imageview.c:547 #: imageview.c:548
msgid "Can't open OpenGL window, image preview will be inaccessible" msgid "Can't open OpenGL window, image preview will be inaccessible"
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-04-05 18:17+0300\n" "POT-Creation-Date: 2023-04-06 15:49+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"
@ -16,18 +16,18 @@ msgstr "Project-Id-Version: PACKAGE VERSION\n"
"Content-Type: text/plain; charset=koi8-r\n" "Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ccdfunc.c:590 #: ccdfunc.c:591
#, c-format #, c-format
msgid "%.1f seconds till exposition ends" msgid "%.1f seconds till exposition ends"
msgstr "%.1f ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÜËÓÐÏÚÉÃÉÉ" msgstr "%.1f ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÜËÓÐÏÚÉÃÉÉ"
#. %d Ñ<>екунд до окончаниÑ<C2B8> паузы\n #. %d Ñ<>екунд до окончаниÑ<C2B8> паузы\n
#: ccdfunc.c:799 client.c:269 #: ccdfunc.c:807 client.c:271
#, c-format #, c-format
msgid "%d seconds till pause ends\n" msgid "%d seconds till pause ends\n"
msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n" msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n"
#: imageview.c:50 #: imageview.c:51
msgid "Already initialized!" msgid "Already initialized!"
msgstr "õÖÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÏ!" msgstr "õÖÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÏ!"
@ -39,191 +39,191 @@ msgstr "
msgid "CMOS gain level" msgid "CMOS gain level"
msgstr "ÕÒÏ×ÅÎØ Gain CMOS" msgstr "ÕÒÏ×ÅÎØ Gain CMOS"
#: ccdfunc.c:605 #: ccdfunc.c:606
msgid "Camera device not pointed" msgid "Camera device not pointed"
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÐÏÄËÌÀÞÅÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÐÏÄËÌÀÞÅÎÏ"
#: ccdfunc.c:184 #: ccdfunc.c:185
msgid "Camera device unknown" msgid "Camera device unknown"
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÏÐÏÚÎÁÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÏÐÏÚÎÁÎÏ"
#: ccdfunc.c:659 #: ccdfunc.c:660
#, c-format #, c-format
msgid "Camera model: %s" msgid "Camera model: %s"
msgstr "íÏÄÅÌØ Ó×ÅÔÏÐÒÉÅÍÎÉËÁ: %s" msgstr "íÏÄÅÌØ Ó×ÅÔÏÐÒÉÅÍÎÉËÁ: %s"
#: ccdfunc.c:784 #: ccdfunc.c:788
msgid "Can't capture image" msgid "Can't capture image"
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ" msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
#: ccdfunc.c:747 #: ccdfunc.c:748
msgid "Can't change frame type" msgid "Can't change frame type"
msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÉÐ ËÁÄÒÁ" msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÉÐ ËÁÄÒÁ"
#: ccdfunc.c:691 #: ccdfunc.c:692
msgid "Can't configure (unsupported?)" msgid "Can't configure (unsupported?)"
msgstr "îÅ ÍÏÇÕ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ (ÏÐÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)" msgstr "îÅ ÍÏÇÕ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ (ÏÐÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
#: ccdfunc.c:87 #: ccdfunc.c:88
#, c-format #, c-format
msgid "Can't find camera in plugin %s: %s" msgid "Can't find camera in plugin %s: %s"
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ËÁÍÅÒÙ %s: %s" msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ËÁÍÅÒÙ %s: %s"
#: ccdfunc.c:76 #: ccdfunc.c:77
#, c-format #, c-format
msgid "Can't find focuser in plugin %s: %s" msgid "Can't find focuser in plugin %s: %s"
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÆÏËÕÓÅÒÁ %s: %s" msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÆÏËÕÓÅÒÁ %s: %s"
#: ccdfunc.c:64 #: ccdfunc.c:65
#, c-format #, c-format
msgid "Can't find plugin %s: %s" msgid "Can't find plugin %s: %s"
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ %s: %s" msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ %s: %s"
#: ccdfunc.c:98 #: ccdfunc.c:99
#, c-format #, c-format
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:698 #: ccdfunc.c:699
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:756 #: ccdfunc.c:757
msgid "Can't get current binning" msgid "Can't get current binning"
msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÂÉÎÎÉÎÇÁ" msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÂÉÎÎÉÎÇÁ"
#: ccdfunc.c:476 #: ccdfunc.c:477
msgid "Can't get current focuser position" msgid "Can't get current focuser position"
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÔÅËÕÝÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ" msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÔÅËÕÝÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ"
#: ccdfunc.c:469 #: ccdfunc.c:470
msgid "Can't get focuser limit positions" msgid "Can't get focuser limit positions"
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ" msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ"
#: ccdfunc.c:562 #: ccdfunc.c:563
msgid "Can't get max wheel position" msgid "Can't get max wheel position"
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ËÏÌÅÓÁ" msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ËÏÌÅÓÁ"
#: ccdfunc.c:790 ccdfunc.c:840 #: ccdfunc.c:795 ccdfunc.c:849
msgid "Can't grab image" msgid "Can't grab image"
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ" msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
#: ccdfunc.c:494 #: ccdfunc.c:495
msgid "Can't home focuser" msgid "Can't home focuser"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÆÏËÕÓÅÒ × ÎÕÌØ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÆÏËÕÓÅÒ × ÎÕÌØ"
#: imageview.c:286 #: imageview.c:287
msgid "Can't init mutex!" msgid "Can't init mutex!"
msgstr "îÅ ÍÏÇÕ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÍØÀÔÅËÓ!" msgstr "îÅ ÍÏÇÕ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÍØÀÔÅËÓ!"
#: client.c:256 #: client.c:258
msgid "Can't make exposition" msgid "Can't make exposition"
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÜËÓÐÏÚÉÃÉÀ" msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÜËÓÐÏÚÉÃÉÀ"
#: imageview.c:547 #: imageview.c:548
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:685 #: ccdfunc.c:686
#, c-format #, c-format
msgid "Can't run shutter command %s (unsupported?)" msgid "Can't run shutter command %s (unsupported?)"
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÚÁÔ×ÏÒÁ %s (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)" msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÚÁÔ×ÏÒÁ %s (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
#. Ð<>е могу Ñ<>охраниÑÑŒ файл #. Ð<>е могу Ñ<>охраниÑÑŒ файл
#: ccdfunc.c:208 #: ccdfunc.c:209
#, c-format #, c-format
msgid "Can't save file with prefix %s" msgid "Can't save file with prefix %s"
msgstr "îÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÆÁÊÌ Ó ÐÒÅÆÉËÓÏÍ %s" msgstr "îÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÆÁÊÌ Ó ÐÒÅÆÉËÓÏÍ %s"
#: ccdfunc.c:740 #: ccdfunc.c:741
#, c-format #, c-format
msgid "Can't set %d flushes" msgid "Can't set %d flushes"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ %d ÓÂÒÏÓÏ×" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ %d ÓÂÒÏÓÏ×"
#: ccdfunc.c:704 #: ccdfunc.c:705
msgid "Can't set IOport" msgid "Can't set IOport"
msgstr "îÅ ÍÏÇÕ ÐÏÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ÐÏÒÔÁ I/O" msgstr "îÅ ÍÏÇÕ ÐÏÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ÐÏÒÔÁ I/O"
#: ccdfunc.c:675 #: ccdfunc.c:676
#, 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:647 #: ccdfunc.c:648
msgid "Can't set active camera number" msgid "Can't set active camera number"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÊ ËÁÍÅÒÙ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÊ ËÁÍÅÒÙ"
#: ccdfunc.c:455 #: ccdfunc.c:456
msgid "Can't set active focuser number" msgid "Can't set active focuser number"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ÆÏËÕÓÅÒÁ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ÆÏËÕÓÅÒÁ"
#: ccdfunc.c:546 #: ccdfunc.c:547
msgid "Can't set active wheel number" msgid "Can't set active wheel number"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ËÏÌÅÓÁ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ËÏÌÅÓÁ"
#: ccdfunc.c:724 server.c:227 #: ccdfunc.c:725 server.c:234
#, 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:750 #: ccdfunc.c:751
msgid "Can't set bit depth" msgid "Can't set bit depth"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÒÑÄÎÏÓÔØ áãð" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÒÑÄÎÏÓÔØ áãð"
#: ccdfunc.c:718 #: ccdfunc.c:719
#, c-format #, c-format
msgid "Can't set brightness to %g" msgid "Can't set brightness to %g"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
#: ccdfunc.c:744 #: ccdfunc.c:745
#, 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:653 #: ccdfunc.c:654
msgid "Can't set fan speed" msgid "Can't set fan speed"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ×" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ×"
#: ccdfunc.c:712 #: ccdfunc.c:713
#, 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:736 server.c:228 #: ccdfunc.c:737 server.c:235
msgid "Can't set given geometry" msgid "Can't set given geometry"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÇÅÏÍÅÔÒÉÀ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÇÅÏÍÅÔÒÉÀ"
#: ccdfunc.c:496 #: ccdfunc.c:497
#, c-format #, c-format
msgid "Can't set position %g" msgid "Can't set position %g"
msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÐÏÚÉÃÉÀ ÎÁ %g" msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÐÏÚÉÃÉÀ ÎÁ %g"
#: ccdfunc.c:490 #: ccdfunc.c:491
#, c-format #, c-format
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:752 #: ccdfunc.c:753
msgid "Can't set readout speed" msgid "Can't set readout speed"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÓÞÉÔÙ×ÁÎÉÑ" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÓÞÉÔÙ×ÁÎÉÑ"
#: ccdfunc.c:573 #: ccdfunc.c:574
#, c-format #, c-format
msgid "Can't set wheel position %d" msgid "Can't set wheel position %d"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÌÏÖÅÎÉÅ ËÏÌÅÓÁ %d" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÌÏÖÅÎÉÅ ËÏÌÅÓÁ %d"
#: ccdfunc.c:780 ccdfunc.c:832 server.c:122 #: ccdfunc.c:783 ccdfunc.c:841 server.c:122
msgid "Can't start exposition" msgid "Can't start exposition"
msgstr "îÅ ÍÏÇÕ ÎÁÞÁÔØ ÜËÓÐÏÚÉÃÉÀ" msgstr "îÅ ÍÏÇÕ ÎÁÞÁÔØ ÜËÓÐÏÚÉÃÉÀ"
#. Захват кадра %d\n #. Захват кадра %d\n
#: ccdfunc.c:778 #: ccdfunc.c:781
#, c-format #, c-format
msgid "Capture frame %d" msgid "Capture frame %d"
msgstr "úÁÈ×ÁÔ ËÁÄÒÁ %d" msgstr "úÁÈ×ÁÔ ËÁÄÒÁ %d"
#: ccdfunc.c:672 #: ccdfunc.c:673
#, c-format #, c-format
msgid "Current format: %s" msgid "Current format: %s"
msgstr "" msgstr ""
@ -232,55 +232,55 @@ msgstr ""
msgid "Display image in OpenGL window" msgid "Display image in OpenGL window"
msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ × ÏËÎÅ OpenGL" msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ × ÏËÎÅ OpenGL"
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
#, c-format #, c-format
msgid "Equalization of histogram: %s" msgid "Equalization of histogram: %s"
msgstr "üË×ÁÌÉÚÁÃÉÑ ÇÉÓÔÏÇÒÁÍÍÙ: %s" msgstr "üË×ÁÌÉÚÁÃÉÑ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
#: ccdfunc.c:365 #: ccdfunc.c:366
msgid "Error saving file" msgid "Error saving file"
msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ" msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ"
#: ccdfunc.c:669 #: ccdfunc.c:670
#, c-format #, c-format
msgid "Field of view: %s" msgid "Field of view: %s"
msgstr "ðÏÌÅ ÚÒÅÎÉÑ: %s" msgstr "ðÏÌÅ ÚÒÅÎÉÑ: %s"
#: ccdfunc.c:356 #: ccdfunc.c:357
#, c-format #, c-format
msgid "File saved as '%s'" msgid "File saved as '%s'"
msgstr "æÁÊÌ ÓÏÈÒÁÎÅÎ ËÁË '%s'" msgstr "æÁÊÌ ÓÏÈÒÁÎÅÎ ËÁË '%s'"
#: ccdfunc.c:413 #: ccdfunc.c:414
msgid "Focuser device not pointed" msgid "Focuser device not pointed"
msgstr "õÓÔÒÏÊÓÔ×Ï ÆÏËÕÓÅÒÁ ÎÅ ÕËÁÚÁÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï ÆÏËÕÓÅÒÁ ÎÅ ÕËÁÚÁÎÏ"
#: ccdfunc.c:643 #: ccdfunc.c:644
#, 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"
#: ccdfunc.c:451 #: ccdfunc.c:452
#, c-format #, c-format
msgid "Found %d focusers, you point number %d" msgid "Found %d focusers, you point number %d"
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ÆÏËÕÓÅÒÏ×, ×Ù ÕËÁÚÁÌÉ %d" msgstr "ïÂÎÁÒÕÖÅÎÏ %d ÆÏËÕÓÅÒÏ×, ×Ù ÕËÁÚÁÌÉ %d"
#: ccdfunc.c:542 #: ccdfunc.c:543
#, c-format #, c-format
msgid "Found %d wheels, you point number %d" msgid "Found %d wheels, you point number %d"
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÏÌÅÓ, ×Ù ÕËÁÚÁÌÉ %d" msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÏÌÅÓ, ×Ù ÕËÁÚÁÌÉ %d"
#: ccdfunc.c:666 #: ccdfunc.c:667
#, c-format #, c-format
msgid "Full array: %s" msgid "Full array: %s"
msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s" msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s"
#: imageview.c:388 #: imageview.c:389
#, c-format #, c-format
msgid "Histogram conversion: %s" msgid "Histogram conversion: %s"
msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÇÉÓÔÏÇÒÁÍÍÙ: %s" msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
#: ccdfunc.c:405 #: ccdfunc.c:406
#, c-format #, c-format
msgid "Image stat:\n" msgid "Image stat:\n"
msgstr "óÔÁÔÉÓÔÉËÁ ÐÏ ÉÚÏÂÒÁÖÅÎÉÀ: \n" msgstr "óÔÁÔÉÓÔÉËÁ ÐÏ ÉÚÏÂÒÁÖÅÎÉÀ: \n"
@ -289,23 +289,23 @@ msgstr "
msgid "N flushes before exposing (default: 1)" msgid "N flushes before exposing (default: 1)"
msgstr "N ÚÁÓ×ÅÞÉ×ÁÎÉÊ ÐÅÒÅÄ ÜËÓÐÏÚÉÃÉÅÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ: 1)" msgstr "N ÚÁÓ×ÅÞÉ×ÁÎÉÊ ÐÅÒÅÄ ÜËÓÐÏÚÉÃÉÅÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ: 1)"
#: server.c:165 #: server.c:170
msgid "No camera device" msgid "No camera device"
msgstr "îÅ ÕËÁÚÁÎÏ ÕÓÔÒÏÊÓÔ×Ï ËÁÍÅÒÙ" msgstr "îÅ ÕËÁÚÁÎÏ ÕÓÔÒÏÊÓÔ×Ï ËÁÍÅÒÙ"
#: ccdfunc.c:612 ccdfunc.c:613 #: ccdfunc.c:613 ccdfunc.c:614
msgid "No cameras found" msgid "No cameras found"
msgstr "ëÁÍÅÒ ÎÅ ÏÂÎÁÒÕÖÅÎÏ" msgstr "ëÁÍÅÒ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
#: ccdfunc.c:420 #: ccdfunc.c:421
msgid "No focusers found" msgid "No focusers found"
msgstr "æÏËÕÓÅÒÏ× ÎÅ ÏÂÎÁÒÕÖÅÎÏ" msgstr "æÏËÕÓÅÒÏ× ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
#: ccdfunc.c:511 #: ccdfunc.c:512
msgid "No wheels found" msgid "No wheels found"
msgstr "ôÕÒÅÌÅÊ ÎÅ ÏÂÎÁÒÕÖÅÎÏ" msgstr "ôÕÒÅÌÅÊ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
#: ccdfunc.c:754 #: ccdfunc.c:755
msgid "Only show statistics" msgid "Only show statistics"
msgstr "ôÏÌØËÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÁÔÉÓÔÉËÕ" msgstr "ôÏÌØËÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÁÔÉÓÔÉËÕ"
@ -313,52 +313,52 @@ msgstr "
msgid "PID file (default: " msgid "PID file (default: "
msgstr "PID-ÆÁÊÌ (ÐÏ ÕÍÏÌÞÁÎÉÀ: " msgstr "PID-ÆÁÊÌ (ÐÏ ÕÍÏÌÞÁÎÉÀ: "
#: ccdfunc.c:660 #: ccdfunc.c:661
#, 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:787 #: ccdfunc.c:791
msgid "Read grabbed image" msgid "Read grabbed image"
msgstr "óÞÉÔÙ×ÁÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ" msgstr "óÞÉÔÙ×ÁÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ"
#: ccdfunc.c:753 #: ccdfunc.c:754
#, c-format #, c-format
msgid "Readout mode: %s" msgid "Readout mode: %s"
msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s" msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s"
#: client.c:285 #: client.c:287
msgid "Server timeout" msgid "Server timeout"
msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ" msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ"
#: ccdfunc.c:717 #: ccdfunc.c:718
#, c-format #, c-format
msgid "Set brightness to %g" msgid "Set brightness to %g"
msgstr "õÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g" msgstr "õÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
#: ccdfunc.c:654 #: ccdfunc.c:655
#, c-format #, c-format
msgid "Set fan speed to %d" msgid "Set fan speed to %d"
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ× × %d" msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ× × %d"
#: ccdfunc.c:711 #: ccdfunc.c:712
#, c-format #, c-format
msgid "Set gain to %g" msgid "Set gain to %g"
msgstr "õÓÔÁÎÏ×ÉÔØ Gain × %g" msgstr "õÓÔÁÎÏ×ÉÔØ Gain × %g"
#: ccdfunc.c:683 #: ccdfunc.c:684
#, 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:689 #: ccdfunc.c:690
#, 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:702 #: ccdfunc.c:703
#, 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"
@ -367,11 +367,11 @@ msgstr "
msgid "UNIX socket name" msgid "UNIX socket name"
msgstr "éÍÑ UNIX-ÓÏËÅÔÁ" msgstr "éÍÑ UNIX-ÓÏËÅÔÁ"
#: ccdfunc.c:504 #: ccdfunc.c:505
msgid "Wheel device not pointed" msgid "Wheel device not pointed"
msgstr "õÓÔÒÏÊÓÔ×Ï ÔÕÒÅÌÉ ÎÅ ÕËÁÚÁÎÏ" msgstr "õÓÔÒÏÊÓÔ×Ï ÔÕÒÅÌÉ ÎÅ ÕËÁÚÁÎÏ"
#: ccdfunc.c:569 #: ccdfunc.c:570
#, c-format #, c-format
msgid "Wheel position should be from 0 to %d" msgid "Wheel position should be from 0 to %d"
msgstr "ðÏÚÉÃÉÑ ËÏÌÅÓÁ ÄÏÌÖÎÁ ÂÙÔØ ÏÔ 0 ÄÏ %d" msgstr "ðÏÚÉÃÉÑ ËÏÌÅÓÁ ÄÏÌÖÎÁ ÂÙÔØ ÏÔ 0 ÄÏ %d"
@ -510,11 +510,11 @@ msgstr "
msgid "observing program name" msgid "observing program name"
msgstr "ÎÁÚ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ" msgstr "ÎÁÚ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ"
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
msgid "off" msgid "off"
msgstr "×ÙËÌ" msgstr "×ÙËÌ"
#: imageview.c:508 imageview.c:581 #: imageview.c:509 imageview.c:584
msgid "on" msgid "on"
msgstr "×ËÌ" msgstr "×ËÌ"

View File

@ -113,7 +113,7 @@ static void fixima(){
// functions for processCAM finite state machine // functions for processCAM finite state machine
static inline void cameraidlestate(){ // idle - wait for capture commands static inline void cameraidlestate(){ // idle - wait for capture commands
if(camflags & FLAG_STARTCAPTURE){ // start capturing if(camflags & FLAG_STARTCAPTURE){ // start capturing
DBG("Start exposition"); TIMESTAMP("Start exposition");
camflags &= ~(FLAG_STARTCAPTURE | FLAG_CANCEL); camflags &= ~(FLAG_STARTCAPTURE | FLAG_CANCEL);
camstate = CAMERA_CAPTURE; camstate = CAMERA_CAPTURE;
fixima(); fixima();
@ -137,20 +137,25 @@ static inline void cameracapturestate(){ // capturing - wait for exposition ends
capture_status cs; capture_status cs;
if(camera->pollcapture(&cs, &tremain)){ if(camera->pollcapture(&cs, &tremain)){
if(cs != CAPTURE_PROCESS){ if(cs != CAPTURE_PROCESS){
DBG("Capture ready"); TIMESTAMP("Capture ready");
tremain = 0.; tremain = 0.;
// now save frame // now save frame
if(!ima.data) LOGERR("Can't save image: not initialized"); if(!ima.data) LOGERR("Can't save image: not initialized");
else{ else{
TIMESTAMP("start capture");
if(!camera->capture(&ima)){ if(!camera->capture(&ima)){
LOGERR("Can't capture image"); LOGERR("Can't capture image");
camstate = CAMERA_ERROR; camstate = CAMERA_ERROR;
return; return;
}else{ }else{
if(lastfile){
TIMESTAMP("Calc stat");
calculate_stat(&ima); calculate_stat(&ima);
}
if(saveFITS(&ima, &lastfile)){ if(saveFITS(&ima, &lastfile)){
DBG("LAST file name changed"); DBG("LAST file name changed");
} }
TIMESTAMP("Image saved");
} }
} }
camstate = CAMERA_FRAMERDY; camstate = CAMERA_FRAMERDY;
@ -221,6 +226,8 @@ static int camdevini(int n){
curformat = frmformatmax; curformat = frmformatmax;
DBG("\n\nGeometry format (offx/offy) w/h: (%d/%d) %d/%d", curformat.xoff, curformat.yoff, DBG("\n\nGeometry format (offx/offy) w/h: (%d/%d) %d/%d", curformat.xoff, curformat.yoff,
curformat.w, curformat.h); curformat.w, curformat.h);
curformat.xoff = 0;
curformat.yoff = 0;
if(GP->hbin < 1) GP->hbin = 1; if(GP->hbin < 1) GP->hbin = 1;
if(GP->vbin < 1) GP->vbin = 1; if(GP->vbin < 1) GP->vbin = 1;
fixima(); fixima();
@ -560,6 +567,8 @@ static hresult expstatehandler(_U_ int fd, _U_ const char *key, _U_ const char *
return RESULT_OK; return RESULT_OK;
} }
else if(n == CAMERA_CAPTURE){ // start exposition else if(n == CAMERA_CAPTURE){ // start exposition
TIMESTAMP("End of cycle - start new");
TIMEINIT();
camflags |= FLAG_STARTCAPTURE; camflags |= FLAG_STARTCAPTURE;
return RESULT_OK; return RESULT_OK;
} }
@ -1028,6 +1037,7 @@ void server(int sock, int imsock){
close(client); close(client);
DBG("%d closed", client); DBG("%d closed", client);
}else{WARN("accept()"); DBG("disconnected");} }else{WARN("accept()"); DBG("disconnected");}
TIMESTAMP("Image sent");
} }
if(poll_set[0].revents & POLLIN){ // check main for accept() if(poll_set[0].revents & POLLIN){ // check main for accept()
struct sockaddr_in addr; struct sockaddr_in addr;
@ -1053,8 +1063,10 @@ void server(int sock, int imsock){
char buff[PATH_MAX+32]; char buff[PATH_MAX+32];
snprintf(buff, PATH_MAX, CMD_EXPSTATE "=%d", camstate); snprintf(buff, PATH_MAX, CMD_EXPSTATE "=%d", camstate);
DBG("Send %s to %d clients", buff, nfd - 2); DBG("Send %s to %d clients", buff, nfd - 2);
for(int i = 2; i < nfd; ++i) for(int i = 2; i < nfd; ++i){
TIMESTAMP("Send message that all ready");
sendstrmessage(poll_set[i].fd, buff); sendstrmessage(poll_set[i].fd, buff);
}
if(camstate == CAMERA_FRAMERDY){ // send to all last file name if(camstate == CAMERA_FRAMERDY){ // send to all last file name
snprintf(buff, PATH_MAX+31, CMD_LASTFNAME "=%s", lastfile); snprintf(buff, PATH_MAX+31, CMD_LASTFNAME "=%s", lastfile);
for(int i = 2; i < nfd; ++i) for(int i = 2; i < nfd; ++i)

View File

@ -34,6 +34,10 @@
#include "server.h" #include "server.h"
#include "socket.h" #include "socket.h"
#ifdef EBUG
double __t0 = 0.;
#endif
pthread_mutex_t locmutex = PTHREAD_MUTEX_INITIALIZER; // mutex for wheel/camera/focuser functions pthread_mutex_t locmutex = PTHREAD_MUTEX_INITIALIZER; // mutex for wheel/camera/focuser functions
/** /**

View File

@ -19,6 +19,7 @@
#pragma once #pragma once
#include <pthread.h> #include <pthread.h>
#include <stdint.h> #include <stdint.h>
#include <usefull_macros.h>
// max & min TCP socket port number // max & min TCP socket port number
#define PORTN_MAX (65535) #define PORTN_MAX (65535)
@ -37,6 +38,15 @@
// client will disconnect after this time from last server message // client will disconnect after this time from last server message
#define CLIENT_TIMEOUT (3.0) #define CLIENT_TIMEOUT (3.0)
#ifdef EBUG
extern double __t0;
#define TIMEINIT() do{__t0 = dtime();}while(0)
#define TIMESTAMP(...) do{DBG(__VA_ARGS__); fprintf(stderr, COLOR_GREEN "%g" COLOR_OLD "\n", dtime()-__t0);}while(0)
#else
#define TIMEINIT()
#define TIMESTAMP()
#endif
extern pthread_mutex_t locmutex; extern pthread_mutex_t locmutex;
typedef enum{ typedef enum{