mirror of
https://github.com/eddyem/CCD_Capture.git
synced 2025-12-06 10:45:13 +03:00
fixed small speed in standalone mode; searching for reasons of the same for network mode
This commit is contained in:
parent
070df2be89
commit
e9f1c67055
@ -24,6 +24,7 @@
|
||||
|
||||
#include "basestructs.h"
|
||||
#include "omp.h"
|
||||
//#include "socket.h" // timestamp
|
||||
|
||||
extern Camera camera;
|
||||
|
||||
@ -32,7 +33,7 @@ static int isopened = FALSE, is16bit = FALSE;
|
||||
static char camname[BUFSIZ] = {0};
|
||||
static size_t payloadsize = 0; // size of imgBuf
|
||||
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 int curhbin = 1, curvbin = 1;
|
||||
|
||||
@ -322,9 +323,11 @@ static int pollcapt(capture_status *st, float *remain){
|
||||
|
||||
static int capture(IMG *ima){
|
||||
FNAME();
|
||||
//double __t0 = dtime();
|
||||
if(!ima || !ima->data || !imgBuf || !isopened) return FALSE;
|
||||
static int toohot = FALSE;
|
||||
float_values f;
|
||||
//TIMESTAMP("start capt");
|
||||
if(!getFloat("DeviceTemperature", &f)) WARNX("Can't get temperature");
|
||||
else{
|
||||
DBG("Temperature: %.1f", f.val);
|
||||
@ -338,17 +341,20 @@ static int capture(IMG *ima){
|
||||
}
|
||||
PylonGrabResult_t grabResult;
|
||||
_Bool bufferReady;
|
||||
//TIMESTAMP("grab single frame");
|
||||
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){
|
||||
WARNX("res != GENAPI_E_OK || !bufferReady");
|
||||
return FALSE;
|
||||
}
|
||||
if(grabResult.Status != Grabbed){
|
||||
WARNX("grabResult.Status != Grabbed");
|
||||
WARNX("grabResult.Status != Grabbed (%d)", grabResult.Status);
|
||||
return FALSE;
|
||||
}
|
||||
int width = grabResult.SizeX, height = grabResult.SizeY, stride = grabResult.SizeX + grabResult.PaddingX;
|
||||
//TIMESTAMP("start converting");
|
||||
if(is16bit){
|
||||
int s2 = stride<<1, w2 = width<<1;
|
||||
OMP_FOR()
|
||||
@ -367,6 +373,7 @@ static int capture(IMG *ima){
|
||||
}
|
||||
}
|
||||
}
|
||||
//TIMESTAMP("image ready");
|
||||
ima->bitpix = (is16bit) ? 16 : 8;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -26,6 +26,7 @@
|
||||
#include <usefull_macros.h>
|
||||
|
||||
#include "basestructs.h"
|
||||
#include "omp.h"
|
||||
|
||||
extern Camera camera;
|
||||
extern Focuser focuser;
|
||||
@ -67,12 +68,14 @@ static int startexp(){
|
||||
static int camcapt(IMG *ima){
|
||||
static int n = 0;
|
||||
if(!ima || !ima->data) return FALSE;
|
||||
uint16_t *d = ima->data;
|
||||
for(int y = 0; y < ima->h; ++y)
|
||||
OMP_FOR()
|
||||
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
|
||||
//*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.);
|
||||
}
|
||||
}
|
||||
++n;
|
||||
ima->bitpix = 16;
|
||||
return TRUE;
|
||||
|
||||
75
ccdfunc.c
75
ccdfunc.c
@ -28,6 +28,7 @@
|
||||
|
||||
#include "ccdfunc.h"
|
||||
#include "cmdlnopts.h"
|
||||
#include "socket.h"
|
||||
#ifdef IMAGEVIEW
|
||||
#include "imageview.h"
|
||||
#endif
|
||||
@ -774,24 +775,31 @@ DBG("w=%d, h=%d", raw_width, raw_height);
|
||||
IMG ima = {.data = img, .w = raw_width, .h = raw_height};
|
||||
if(GP->nframes < 1) GP->nframes = 1;
|
||||
for(int j = 0; j < GP->nframes; ++j){
|
||||
TIMESTAMP("Start next cycle");
|
||||
TIMEINIT();
|
||||
// úÁÈ×ÁÔ ËÁÄÒÁ %d\n
|
||||
verbose(1, _("Capture frame %d"), j);
|
||||
if(!camera->startexposition()){
|
||||
WARNX(_("Can't start exposition"));
|
||||
break;
|
||||
}
|
||||
TIMESTAMP("Check capture");
|
||||
if(capt() != CAPTURE_READY){
|
||||
WARNX(_("Can't capture image"));
|
||||
break;
|
||||
}
|
||||
verbose(2, _("Read grabbed image"));
|
||||
TIMESTAMP("Read grabbed");
|
||||
//if(!camera) return;
|
||||
if(!camera->capture(&ima)){
|
||||
WARNX(_("Can't grab image"));
|
||||
break;
|
||||
}
|
||||
TIMESTAMP("Calc stat");
|
||||
calculate_stat(&ima);
|
||||
TIMESTAMP("Save fits");
|
||||
saveFITS(&ima, NULL);
|
||||
TIMESTAMP("Ready");
|
||||
if(GP->pause_len && j != (GP->nframes - 1)){
|
||||
double delta, time1 = dtime() + GP->pause_len;
|
||||
while((delta = time1 - dtime()) > 0.){
|
||||
@ -821,30 +829,28 @@ void camstop(){
|
||||
|
||||
|
||||
#ifdef IMAGEVIEW
|
||||
static volatile int grabends = 1;
|
||||
static volatile int grabno = 0, lastgrabno = 0, exitgrab = FALSE;
|
||||
static void *grabnext(void *arg){
|
||||
FNAME();
|
||||
grabends = 0;
|
||||
static int retval = FALSE;
|
||||
IMG *ima = (IMG*) arg;
|
||||
DBG("nxt");
|
||||
if(!ima || !camera) goto eof;
|
||||
if(!camera->startexposition()){ WARNX(_("Can't start exposition")); goto eof; }
|
||||
capture_status cs;
|
||||
DBG("Poll");
|
||||
while(!camera->pollcapture(&cs, NULL)){
|
||||
usleep(10000);
|
||||
if(!camera) goto eof;
|
||||
}
|
||||
DBG("get");
|
||||
if(!camera->capture(ima)){ WARNX(_("Can't grab image")); goto eof; }
|
||||
calculate_stat(ima);
|
||||
retval = TRUE;
|
||||
DBG("OK");
|
||||
eof:
|
||||
grabends = 1;
|
||||
pthread_exit((void*)&retval);
|
||||
DBG("EXIT");
|
||||
do{
|
||||
if(exitgrab) return NULL;
|
||||
TIMESTAMP("Start next exp");
|
||||
TIMEINIT();
|
||||
if(!ima || !camera) return NULL;
|
||||
if(!camera->startexposition()){ WARNX(_("Can't start exposition")); continue; }
|
||||
capture_status cs;
|
||||
TIMESTAMP("Poll");
|
||||
while(!camera->pollcapture(&cs, NULL)){
|
||||
usleep(10000);
|
||||
if(!camera) return NULL;
|
||||
}
|
||||
TIMESTAMP("get");
|
||||
if(!camera->capture(ima)){ WARNX(_("Can't grab image")); continue; }
|
||||
//calculate_stat(ima);
|
||||
TIMESTAMP("OK");
|
||||
++grabno;
|
||||
}while(1);
|
||||
}
|
||||
|
||||
|
||||
@ -861,7 +867,8 @@ int ccdcaptured(IMG **imgptr){
|
||||
if(imgptr == (void*)-1){ // kill `grabnext`
|
||||
DBG("Wait for grabbing thread ends");
|
||||
if(grabthread){
|
||||
//pthread_cancel(grabthread); - this kills some cameras
|
||||
exitgrab = TRUE;
|
||||
//pthread_cancel(grabthread); // this kills some cameras
|
||||
//pthread_timedjoin_np
|
||||
pthread_join(grabthread, NULL);
|
||||
grabthread = 0;
|
||||
@ -884,26 +891,30 @@ int ccdcaptured(IMG **imgptr){
|
||||
}else ima = *imgptr;
|
||||
|
||||
if(!grabthread){ // start new grab
|
||||
DBG("\n\n\nStart new grab");
|
||||
TIMESTAMP("Start new grab");
|
||||
TIMEINIT();
|
||||
if(pthread_create(&grabthread, NULL, &grabnext, (void*)ima)){
|
||||
WARN("Can't create grabbing thread");
|
||||
grabthread = 0;
|
||||
}
|
||||
tlast = dtime();
|
||||
}else{ // grab in process
|
||||
if(grabends){ // thread is dead
|
||||
DBG("Grab ends");
|
||||
void *vr;
|
||||
pthread_join(grabthread, &vr);
|
||||
int retcode = *(int*)vr;
|
||||
DBG("retcode = %d", retcode);
|
||||
grabthread = 0;
|
||||
if(grabno != lastgrabno){ // done
|
||||
lastgrabno = grabno;
|
||||
TIMESTAMP("Grab ends");
|
||||
//void *vr;
|
||||
//pthread_join(grabthread, &vr);
|
||||
//int retcode = *(int*)vr;
|
||||
//DBG("retcode = %d", retcode);
|
||||
//grabthread = 0;
|
||||
if(GP->verbose > 1){
|
||||
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;
|
||||
}
|
||||
if(retcode) return TRUE;
|
||||
//TIMESTAMP("Framerate");
|
||||
//if(retcode)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
37
client.c
37
client.c
@ -41,7 +41,7 @@ static int xc0,yc0,xc1,yc1; // current format
|
||||
|
||||
#ifdef IMAGEVIEW
|
||||
static IMG ima = {0};
|
||||
static volatile atomic_int grabends = 0;
|
||||
static volatile atomic_int grabno = 0, oldgrabno = 0;
|
||||
static int imdatalen = 0, imbufsz = 0;
|
||||
#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')
|
||||
static int parseans(char *ans){
|
||||
if(!ans) return FALSE;
|
||||
TIMESTAMP("parseans() begin");
|
||||
//DBG("Parsing of '%s'", ans);
|
||||
if(0 == strcmp(hresult2str(RESULT_BUSY), ans)){
|
||||
WARNX("Server busy");
|
||||
@ -103,6 +104,7 @@ static int parseans(char *ans){
|
||||
imdatalen = ima.w * ima.h * 2;
|
||||
}
|
||||
#endif
|
||||
TIMESTAMP("parseans() end");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -119,7 +121,7 @@ static int getans(int sock, const char *msg){
|
||||
}
|
||||
t0 = dtime();
|
||||
ans = s;
|
||||
DBG("Got from server: %s", ans);
|
||||
TIMESTAMP("Got from server: %s", ans);
|
||||
verbose(1, "\t%s", ans);
|
||||
if(parseans(ans)){
|
||||
if(msg && strncmp(ans, msg, strlen(msg))) continue;
|
||||
@ -297,6 +299,7 @@ void init_grab_sock(int sock){
|
||||
static void getimage(){
|
||||
FNAME();
|
||||
int sock = controlfd;
|
||||
TIMESTAMP("Get image sizes");
|
||||
SENDMSG(CMD_IMWIDTH);
|
||||
SENDMSG(CMD_IMHEIGHT);
|
||||
int imsock = open_socket(FALSE, GP->imageport, TRUE);
|
||||
@ -310,6 +313,7 @@ static void getimage(){
|
||||
int got = 0;
|
||||
while(dtime() - t0 < CLIENT_TIMEOUT){
|
||||
if(!canberead(imsock)) continue;
|
||||
TIMESTAMP("Read data");
|
||||
uint8_t *target = ((uint8_t*)ima.data)+got;
|
||||
int rd = read(imsock, target, imdatalen - got);
|
||||
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],
|
||||
target[1], target[2], target[3]);
|
||||
if(got == imdatalen){
|
||||
DBG("Got image");
|
||||
grabends = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(dtime() - t0 > CLIENT_TIMEOUT) WARNX("Timeout, image didn't received");
|
||||
TIMESTAMP("Got image");
|
||||
++grabno;
|
||||
close(imsock);
|
||||
}
|
||||
|
||||
@ -334,10 +338,9 @@ static void *grabnext(void _U_ *arg){ // daemon grabbing images through the net
|
||||
if(controlfd < 0) return NULL;
|
||||
int sock = controlfd;
|
||||
while(1){
|
||||
DBG("WAIT");
|
||||
while(grabends); // wait until image processed
|
||||
expstate = CAMERA_CAPTURE;
|
||||
DBG("CAPT");
|
||||
TIMESTAMP("End of cycle, start new");
|
||||
TIMEINIT();
|
||||
SENDMSG(CMD_EXPSTATE "=%d", CAMERA_CAPTURE); // start capture
|
||||
double timeout = GP->exptime + CLIENT_TIMEOUT, t0 = dtime();
|
||||
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;
|
||||
}
|
||||
while(dtime() - t0 < timeout){
|
||||
DBG("SLEEP!");
|
||||
TIMESTAMP("Wait for exposition ends");
|
||||
usleep(sleept);
|
||||
//SENDMSG(CMD_EXPSTATE);
|
||||
TIMESTAMP("check answer");
|
||||
getans(sock, NULL);
|
||||
DBG("EXPSTATE ===> %d", expstate);
|
||||
TIMESTAMP("EXPSTATE ===> %d", expstate);
|
||||
if(expstate != CAMERA_CAPTURE) break;
|
||||
}
|
||||
if(dtime() - t0 >= timeout || expstate != CAMERA_FRAMERDY){
|
||||
WARNX("Image wasn't received");
|
||||
continue;
|
||||
}
|
||||
DBG("Frame ready");
|
||||
TIMESTAMP("Frame ready");
|
||||
getimage();
|
||||
}
|
||||
return NULL;
|
||||
@ -368,13 +371,13 @@ static void *waitimage(void _U_ *arg){ // passive waiting for next image
|
||||
if(controlfd < 0) return NULL;
|
||||
int sock = controlfd;
|
||||
while(1){
|
||||
while(grabends); // wait until image processed
|
||||
getans(sock, NULL);
|
||||
if(expstate != CAMERA_FRAMERDY){
|
||||
usleep(1000);
|
||||
continue;
|
||||
}
|
||||
DBG("Image can be downloaded");
|
||||
TIMESTAMP("End of cycle, start new");
|
||||
TIMEINIT();
|
||||
getimage();
|
||||
expstate = CAMERA_IDLE;
|
||||
}
|
||||
@ -398,12 +401,14 @@ int sockcaptured(IMG **imgptr){
|
||||
}
|
||||
if(!grabthread || pthread_kill(grabthread, 0)){ // start new grab
|
||||
if(GP->viewer){
|
||||
TIMEINIT();
|
||||
DBG("\n\n\nStart new waiting");
|
||||
if(pthread_create(&grabthread, NULL, &waitimage, NULL)){
|
||||
WARN("Can't create waiting thread");
|
||||
grabthread = 0;
|
||||
}
|
||||
}else{
|
||||
TIMEINIT();
|
||||
DBG("\n\n\nStart new grab");
|
||||
if(pthread_create(&grabthread, NULL, &grabnext, NULL)){
|
||||
WARN("Can't create grabbing thread");
|
||||
@ -411,11 +416,11 @@ int sockcaptured(IMG **imgptr){
|
||||
}
|
||||
}
|
||||
}else{ // grab in process
|
||||
if(grabends){ // image is ready
|
||||
DBG("Image ready");
|
||||
if(grabno != oldgrabno){ // image is ready
|
||||
TIMESTAMP("Image ready");
|
||||
if(*imgptr && (*imgptr != &ima)) free(*imgptr);
|
||||
*imgptr = &ima;
|
||||
grabends = 0;
|
||||
oldgrabno = grabno;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
#include "imageview.h"
|
||||
#include "events.h"
|
||||
#include "omp.h"
|
||||
//#include "socket.h" // for timestamp
|
||||
|
||||
windowData *win = NULL; // main window (common variable for events.c)
|
||||
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(newimage(&img)){
|
||||
//TIMESTAMP("got image -> change");
|
||||
win->winevt &= ~WINEVT_GETIMAGE;
|
||||
change_displayed_image(img); // change image if refreshed
|
||||
//TIMESTAMP("changed");
|
||||
}
|
||||
}
|
||||
if(!win->winevt){
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -253,346 +253,346 @@ msgstr ""
|
||||
msgid "Display image in OpenGL window"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:64
|
||||
#: ccdfunc.c:65
|
||||
#, c-format
|
||||
msgid "Can't find plugin %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:76
|
||||
#: ccdfunc.c:77
|
||||
#, c-format
|
||||
msgid "Can't find focuser in plugin %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:87
|
||||
#: ccdfunc.c:88
|
||||
#, c-format
|
||||
msgid "Can't find camera in plugin %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:98
|
||||
#: ccdfunc.c:99
|
||||
#, c-format
|
||||
msgid "Can't find wheel in plugin %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:184
|
||||
#: ccdfunc.c:185
|
||||
msgid "Camera device unknown"
|
||||
msgstr ""
|
||||
|
||||
#. Не могу сохранить файл
|
||||
#: ccdfunc.c:208
|
||||
#: ccdfunc.c:209
|
||||
#, c-format
|
||||
msgid "Can't save file with prefix %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:356
|
||||
#: ccdfunc.c:357
|
||||
#, c-format
|
||||
msgid "File saved as '%s'"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:365
|
||||
#: ccdfunc.c:366
|
||||
msgid "Error saving file"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:405
|
||||
#: ccdfunc.c:406
|
||||
#, c-format
|
||||
msgid "Image stat:\n"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:413
|
||||
#: ccdfunc.c:414
|
||||
msgid "Focuser device not pointed"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:420
|
||||
#: ccdfunc.c:421
|
||||
msgid "No focusers found"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:451
|
||||
#: ccdfunc.c:452
|
||||
#, c-format
|
||||
msgid "Found %d focusers, you point number %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:455
|
||||
#: ccdfunc.c:456
|
||||
msgid "Can't set active focuser number"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:469
|
||||
#: ccdfunc.c:470
|
||||
msgid "Can't get focuser limit positions"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:476
|
||||
#: ccdfunc.c:477
|
||||
msgid "Can't get current focuser position"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:490
|
||||
#: ccdfunc.c:491
|
||||
#, c-format
|
||||
msgid "Can't set position %g: out of limits [%g, %g]"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:494
|
||||
#: ccdfunc.c:495
|
||||
msgid "Can't home focuser"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:496
|
||||
#: ccdfunc.c:497
|
||||
#, c-format
|
||||
msgid "Can't set position %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:504
|
||||
#: ccdfunc.c:505
|
||||
msgid "Wheel device not pointed"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:511
|
||||
#: ccdfunc.c:512
|
||||
msgid "No wheels found"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:542
|
||||
#: ccdfunc.c:543
|
||||
#, c-format
|
||||
msgid "Found %d wheels, you point number %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:546
|
||||
#: ccdfunc.c:547
|
||||
msgid "Can't set active wheel number"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:562
|
||||
#: ccdfunc.c:563
|
||||
msgid "Can't get max wheel position"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:569
|
||||
#: ccdfunc.c:570
|
||||
#, c-format
|
||||
msgid "Wheel position should be from 0 to %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:573
|
||||
#: ccdfunc.c:574
|
||||
#, c-format
|
||||
msgid "Can't set wheel position %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:590
|
||||
#: ccdfunc.c:591
|
||||
#, c-format
|
||||
msgid "%.1f seconds till exposition ends"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:605
|
||||
#: ccdfunc.c:606
|
||||
msgid "Camera device not pointed"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:612 ccdfunc.c:613
|
||||
#: ccdfunc.c:613 ccdfunc.c:614
|
||||
msgid "No cameras found"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:643
|
||||
#: ccdfunc.c:644
|
||||
#, c-format
|
||||
msgid "Found %d cameras, you point number %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:647
|
||||
#: ccdfunc.c:648
|
||||
msgid "Can't set active camera number"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:653
|
||||
#: ccdfunc.c:654
|
||||
msgid "Can't set fan speed"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:654
|
||||
#: ccdfunc.c:655
|
||||
#, c-format
|
||||
msgid "Set fan speed to %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:659
|
||||
#: ccdfunc.c:660
|
||||
#, c-format
|
||||
msgid "Camera model: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:660
|
||||
#: ccdfunc.c:661
|
||||
#, c-format
|
||||
msgid "Pixel size: %g x %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:666
|
||||
#: ccdfunc.c:667
|
||||
#, c-format
|
||||
msgid "Full array: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:669
|
||||
#: ccdfunc.c:670
|
||||
#, c-format
|
||||
msgid "Field of view: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:672
|
||||
#: ccdfunc.c:673
|
||||
#, c-format
|
||||
msgid "Current format: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:675
|
||||
#: ccdfunc.c:676
|
||||
#, c-format
|
||||
msgid "Can't set T to %g degC"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:683
|
||||
#: ccdfunc.c:684
|
||||
#, c-format
|
||||
msgid "Shutter command: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:685
|
||||
#: ccdfunc.c:686
|
||||
#, c-format
|
||||
msgid "Can't run shutter command %s (unsupported?)"
|
||||
msgstr ""
|
||||
|
||||
#. "Попытка сконфигурировать порт I/O как %d\n"
|
||||
#: ccdfunc.c:689
|
||||
#: ccdfunc.c:690
|
||||
#, c-format
|
||||
msgid "Try to configure I/O port as %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:691
|
||||
#: ccdfunc.c:692
|
||||
msgid "Can't configure (unsupported?)"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:698
|
||||
#: ccdfunc.c:699
|
||||
msgid "Can't get IOport state (unsupported?)"
|
||||
msgstr ""
|
||||
|
||||
#. "Попытка записи %d в порт I/O\n"
|
||||
#: ccdfunc.c:702
|
||||
#: ccdfunc.c:703
|
||||
#, c-format
|
||||
msgid "Try to write %d to I/O port"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:704
|
||||
#: ccdfunc.c:705
|
||||
msgid "Can't set IOport"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:711
|
||||
#, c-format
|
||||
msgid "Set gain to %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:712
|
||||
#, c-format
|
||||
msgid "Can't set gain to %g"
|
||||
msgid "Set gain to %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:717
|
||||
#: ccdfunc.c:713
|
||||
#, c-format
|
||||
msgid "Set brightness to %g"
|
||||
msgid "Can't set gain to %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:718
|
||||
#, c-format
|
||||
msgid "Set brightness to %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:719
|
||||
#, c-format
|
||||
msgid "Can't set brightness to %g"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:724 server.c:227
|
||||
#: ccdfunc.c:725 server.c:234
|
||||
#, c-format
|
||||
msgid "Can't set binning %dx%d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:736 server.c:228
|
||||
#: ccdfunc.c:737 server.c:235
|
||||
msgid "Can't set given geometry"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:740
|
||||
#: ccdfunc.c:741
|
||||
#, c-format
|
||||
msgid "Can't set %d flushes"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:744
|
||||
#: ccdfunc.c:745
|
||||
#, c-format
|
||||
msgid "Can't set exposure time to %f seconds"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:747
|
||||
#: ccdfunc.c:748
|
||||
msgid "Can't change frame type"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:750
|
||||
#: ccdfunc.c:751
|
||||
msgid "Can't set bit depth"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:752
|
||||
#: ccdfunc.c:753
|
||||
msgid "Can't set readout speed"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:753
|
||||
#: ccdfunc.c:754
|
||||
#, c-format
|
||||
msgid "Readout mode: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:754
|
||||
#: ccdfunc.c:755
|
||||
msgid "Only show statistics"
|
||||
msgstr ""
|
||||
|
||||
#. GET binning should be AFTER setgeometry!
|
||||
#: ccdfunc.c:756
|
||||
#: ccdfunc.c:757
|
||||
msgid "Can't get current binning"
|
||||
msgstr ""
|
||||
|
||||
#. Захват кадра %d\n
|
||||
#: ccdfunc.c:778
|
||||
#: ccdfunc.c:781
|
||||
#, c-format
|
||||
msgid "Capture frame %d"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:780 ccdfunc.c:832 server.c:122
|
||||
#: ccdfunc.c:783 ccdfunc.c:841 server.c:122
|
||||
msgid "Can't start exposition"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:784
|
||||
#: ccdfunc.c:788
|
||||
msgid "Can't capture image"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:787
|
||||
#: ccdfunc.c:791
|
||||
msgid "Read grabbed image"
|
||||
msgstr ""
|
||||
|
||||
#: ccdfunc.c:790 ccdfunc.c:840
|
||||
#: ccdfunc.c:795 ccdfunc.c:849
|
||||
msgid "Can't grab image"
|
||||
msgstr ""
|
||||
|
||||
#. %d секунд до окончания паузы\n
|
||||
#: ccdfunc.c:799 client.c:269
|
||||
#: ccdfunc.c:807 client.c:271
|
||||
#, c-format
|
||||
msgid "%d seconds till pause ends\n"
|
||||
msgstr ""
|
||||
|
||||
#: server.c:165
|
||||
#: server.c:170
|
||||
msgid "No camera device"
|
||||
msgstr ""
|
||||
|
||||
#: client.c:256
|
||||
#: client.c:258
|
||||
msgid "Can't make exposition"
|
||||
msgstr ""
|
||||
|
||||
#: client.c:285
|
||||
#: client.c:287
|
||||
msgid "Server timeout"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:50
|
||||
#: imageview.c:51
|
||||
msgid "Already initialized!"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:286
|
||||
#: imageview.c:287
|
||||
msgid "Can't init mutex!"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:388
|
||||
#: imageview.c:389
|
||||
#, c-format
|
||||
msgid "Histogram conversion: %s"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
#, c-format
|
||||
msgid "Equalization of histogram: %s"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
msgid "on"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
msgid "off"
|
||||
msgstr ""
|
||||
|
||||
#: imageview.c:547
|
||||
#: imageview.c:548
|
||||
msgid "Can't open OpenGL window, image preview will be inaccessible"
|
||||
msgstr ""
|
||||
|
||||
152
locale/ru/ru.po
152
locale/ru/ru.po
@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: ccdfunc.c:590
|
||||
#: ccdfunc.c:591
|
||||
#, c-format
|
||||
msgid "%.1f seconds till exposition ends"
|
||||
msgstr "%.1f ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÜËÓÐÏÚÉÃÉÉ"
|
||||
|
||||
#. %d Ñ<>екунд до окончаниÑ<C2B8> паузы\n
|
||||
#: ccdfunc.c:799 client.c:269
|
||||
#: ccdfunc.c:807 client.c:271
|
||||
#, c-format
|
||||
msgid "%d seconds till pause ends\n"
|
||||
msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n"
|
||||
|
||||
#: imageview.c:50
|
||||
#: imageview.c:51
|
||||
msgid "Already initialized!"
|
||||
msgstr "õÖÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÏ!"
|
||||
|
||||
@ -39,191 +39,191 @@ msgstr "
|
||||
msgid "CMOS gain level"
|
||||
msgstr "ÕÒÏ×ÅÎØ Gain CMOS"
|
||||
|
||||
#: ccdfunc.c:605
|
||||
#: ccdfunc.c:606
|
||||
msgid "Camera device not pointed"
|
||||
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÐÏÄËÌÀÞÅÎÏ"
|
||||
|
||||
#: ccdfunc.c:184
|
||||
#: ccdfunc.c:185
|
||||
msgid "Camera device unknown"
|
||||
msgstr "õÓÔÒÏÊÓÔ×Ï Ó×ÅÏÐÒÉÅÍÎÉËÁ ÎÅ ÏÐÏÚÎÁÎÏ"
|
||||
|
||||
#: ccdfunc.c:659
|
||||
#: ccdfunc.c:660
|
||||
#, c-format
|
||||
msgid "Camera model: %s"
|
||||
msgstr "íÏÄÅÌØ Ó×ÅÔÏÐÒÉÅÍÎÉËÁ: %s"
|
||||
|
||||
#: ccdfunc.c:784
|
||||
#: ccdfunc.c:788
|
||||
msgid "Can't capture image"
|
||||
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
|
||||
|
||||
#: ccdfunc.c:747
|
||||
#: ccdfunc.c:748
|
||||
msgid "Can't change frame type"
|
||||
msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÉÐ ËÁÄÒÁ"
|
||||
|
||||
#: ccdfunc.c:691
|
||||
#: ccdfunc.c:692
|
||||
msgid "Can't configure (unsupported?)"
|
||||
msgstr "îÅ ÍÏÇÕ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ (ÏÐÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
|
||||
|
||||
#: ccdfunc.c:87
|
||||
#: ccdfunc.c:88
|
||||
#, c-format
|
||||
msgid "Can't find camera in plugin %s: %s"
|
||||
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ËÁÍÅÒÙ %s: %s"
|
||||
|
||||
#: ccdfunc.c:76
|
||||
#: ccdfunc.c:77
|
||||
#, c-format
|
||||
msgid "Can't find focuser in plugin %s: %s"
|
||||
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÆÏËÕÓÅÒÁ %s: %s"
|
||||
|
||||
#: ccdfunc.c:64
|
||||
#: ccdfunc.c:65
|
||||
#, c-format
|
||||
msgid "Can't find plugin %s: %s"
|
||||
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ %s: %s"
|
||||
|
||||
#: ccdfunc.c:98
|
||||
#: ccdfunc.c:99
|
||||
#, c-format
|
||||
msgid "Can't find wheel in plugin %s: %s"
|
||||
msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÐÌÁÇÉÎ ÔÕÒÅÌÉ %s: %s"
|
||||
|
||||
#: ccdfunc.c:698
|
||||
#: ccdfunc.c:699
|
||||
msgid "Can't get IOport state (unsupported?)"
|
||||
msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÁ I/O (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
|
||||
|
||||
#. GET binning should be AFTER setgeometry!
|
||||
#: ccdfunc.c:756
|
||||
#: ccdfunc.c:757
|
||||
msgid "Can't get current binning"
|
||||
msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ ÂÉÎÎÉÎÇÁ"
|
||||
|
||||
#: ccdfunc.c:476
|
||||
#: ccdfunc.c:477
|
||||
msgid "Can't get current focuser position"
|
||||
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÔÅËÕÝÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ"
|
||||
|
||||
#: ccdfunc.c:469
|
||||
#: ccdfunc.c:470
|
||||
msgid "Can't get focuser limit positions"
|
||||
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ÆÏËÕÓÅÒÁ"
|
||||
|
||||
#: ccdfunc.c:562
|
||||
#: ccdfunc.c:563
|
||||
msgid "Can't get max wheel position"
|
||||
msgstr "îÅ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ ÐÒÅÄÅÌØÎÕÀ ÐÏÚÉÃÉÀ ËÏÌÅÓÁ"
|
||||
|
||||
#: ccdfunc.c:790 ccdfunc.c:840
|
||||
#: ccdfunc.c:795 ccdfunc.c:849
|
||||
msgid "Can't grab image"
|
||||
msgstr "îÅ ÍÏÇÕ ÚÁÈ×ÁÔÉÔØ ÉÚÏÂÒÁÖÅÎÉÅ"
|
||||
|
||||
#: ccdfunc.c:494
|
||||
#: ccdfunc.c:495
|
||||
msgid "Can't home focuser"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÆÏËÕÓÅÒ × ÎÕÌØ"
|
||||
|
||||
#: imageview.c:286
|
||||
#: imageview.c:287
|
||||
msgid "Can't init mutex!"
|
||||
msgstr "îÅ ÍÏÇÕ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÍØÀÔÅËÓ!"
|
||||
|
||||
#: client.c:256
|
||||
#: client.c:258
|
||||
msgid "Can't make exposition"
|
||||
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÜËÓÐÏÚÉÃÉÀ"
|
||||
|
||||
#: imageview.c:547
|
||||
#: imageview.c:548
|
||||
msgid "Can't open OpenGL window, image preview will be inaccessible"
|
||||
msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÏËÎÏ OpenGL, ÏÔÏÂÒÁÖÅÎÉÅ ÂÕÄÅÔ ÎÅÄÏÓÔÕÐÎÏ"
|
||||
|
||||
#: ccdfunc.c:685
|
||||
#: ccdfunc.c:686
|
||||
#, c-format
|
||||
msgid "Can't run shutter command %s (unsupported?)"
|
||||
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÚÁÔ×ÏÒÁ %s (ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ?)"
|
||||
|
||||
#. Ð<>е могу Ñ<>охранить файл
|
||||
#: ccdfunc.c:208
|
||||
#: ccdfunc.c:209
|
||||
#, c-format
|
||||
msgid "Can't save file with prefix %s"
|
||||
msgstr "îÅ ÍÏÇÕ ÓÏÈÒÁÎÉÔØ ÆÁÊÌ Ó ÐÒÅÆÉËÓÏÍ %s"
|
||||
|
||||
#: ccdfunc.c:740
|
||||
#: ccdfunc.c:741
|
||||
#, c-format
|
||||
msgid "Can't set %d flushes"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ %d ÓÂÒÏÓÏ×"
|
||||
|
||||
#: ccdfunc.c:704
|
||||
#: ccdfunc.c:705
|
||||
msgid "Can't set IOport"
|
||||
msgstr "îÅ ÍÏÇÕ ÐÏÍÅÎÑÔØ ÚÎÁÞÅÎÉÑ ÐÏÒÔÁ I/O"
|
||||
|
||||
#: ccdfunc.c:675
|
||||
#: ccdfunc.c:676
|
||||
#, c-format
|
||||
msgid "Can't set T to %g degC"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÔÅÍÐÅÒÁÔÕÒÕ × %g ÇÒÁÄã"
|
||||
|
||||
#: ccdfunc.c:647
|
||||
#: ccdfunc.c:648
|
||||
msgid "Can't set active camera number"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÊ ËÁÍÅÒÙ"
|
||||
|
||||
#: ccdfunc.c:455
|
||||
#: ccdfunc.c:456
|
||||
msgid "Can't set active focuser number"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ÆÏËÕÓÅÒÁ"
|
||||
|
||||
#: ccdfunc.c:546
|
||||
#: ccdfunc.c:547
|
||||
msgid "Can't set active wheel number"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÎÏÍÅÒ ÁËÔÉ×ÎÏÇÏ ËÏÌÅÓÁ"
|
||||
|
||||
#: ccdfunc.c:724 server.c:227
|
||||
#: ccdfunc.c:725 server.c:234
|
||||
#, c-format
|
||||
msgid "Can't set binning %dx%d"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÂÉÎÎÉÎÇ %dx%d"
|
||||
|
||||
#: ccdfunc.c:750
|
||||
#: ccdfunc.c:751
|
||||
msgid "Can't set bit depth"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÒÑÄÎÏÓÔØ áãð"
|
||||
|
||||
#: ccdfunc.c:718
|
||||
#: ccdfunc.c:719
|
||||
#, c-format
|
||||
msgid "Can't set brightness to %g"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
|
||||
|
||||
#: ccdfunc.c:744
|
||||
#: ccdfunc.c:745
|
||||
#, c-format
|
||||
msgid "Can't set exposure time to %f seconds"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÜËÓÐÏÚÉÃÉÀ × %f ÓÅËÕÎÄ"
|
||||
|
||||
#: ccdfunc.c:653
|
||||
#: ccdfunc.c:654
|
||||
msgid "Can't set fan speed"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ×"
|
||||
|
||||
#: ccdfunc.c:712
|
||||
#: ccdfunc.c:713
|
||||
#, c-format
|
||||
msgid "Can't set gain to %g"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ Gain × %g"
|
||||
|
||||
#: ccdfunc.c:736 server.c:228
|
||||
#: ccdfunc.c:737 server.c:235
|
||||
msgid "Can't set given geometry"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÇÅÏÍÅÔÒÉÀ"
|
||||
|
||||
#: ccdfunc.c:496
|
||||
#: ccdfunc.c:497
|
||||
#, c-format
|
||||
msgid "Can't set position %g"
|
||||
msgstr "îÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÐÏÚÉÃÉÀ ÎÁ %g"
|
||||
|
||||
#: ccdfunc.c:490
|
||||
#: ccdfunc.c:491
|
||||
#, c-format
|
||||
msgid "Can't set position %g: out of limits [%g, %g]"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÐÏÚÉÃÉÀ %g: ×ÎÅ ÐÒÅÄÅÌÏ× [%g, %g]"
|
||||
|
||||
#: ccdfunc.c:752
|
||||
#: ccdfunc.c:753
|
||||
msgid "Can't set readout speed"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ÓÞÉÔÙ×ÁÎÉÑ"
|
||||
|
||||
#: ccdfunc.c:573
|
||||
#: ccdfunc.c:574
|
||||
#, c-format
|
||||
msgid "Can't set wheel position %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"
|
||||
msgstr "îÅ ÍÏÇÕ ÎÁÞÁÔØ ÜËÓÐÏÚÉÃÉÀ"
|
||||
|
||||
#. Захват кадра %d\n
|
||||
#: ccdfunc.c:778
|
||||
#: ccdfunc.c:781
|
||||
#, c-format
|
||||
msgid "Capture frame %d"
|
||||
msgstr "úÁÈ×ÁÔ ËÁÄÒÁ %d"
|
||||
|
||||
#: ccdfunc.c:672
|
||||
#: ccdfunc.c:673
|
||||
#, c-format
|
||||
msgid "Current format: %s"
|
||||
msgstr ""
|
||||
@ -232,55 +232,55 @@ msgstr ""
|
||||
msgid "Display image in OpenGL window"
|
||||
msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ × ÏËÎÅ OpenGL"
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
#, c-format
|
||||
msgid "Equalization of histogram: %s"
|
||||
msgstr "üË×ÁÌÉÚÁÃÉÑ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
||||
|
||||
#: ccdfunc.c:365
|
||||
#: ccdfunc.c:366
|
||||
msgid "Error saving file"
|
||||
msgstr "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÆÁÊÌÁ"
|
||||
|
||||
#: ccdfunc.c:669
|
||||
#: ccdfunc.c:670
|
||||
#, c-format
|
||||
msgid "Field of view: %s"
|
||||
msgstr "ðÏÌÅ ÚÒÅÎÉÑ: %s"
|
||||
|
||||
#: ccdfunc.c:356
|
||||
#: ccdfunc.c:357
|
||||
#, c-format
|
||||
msgid "File saved as '%s'"
|
||||
msgstr "æÁÊÌ ÓÏÈÒÁÎÅÎ ËÁË '%s'"
|
||||
|
||||
#: ccdfunc.c:413
|
||||
#: ccdfunc.c:414
|
||||
msgid "Focuser device not pointed"
|
||||
msgstr "õÓÔÒÏÊÓÔ×Ï ÆÏËÕÓÅÒÁ ÎÅ ÕËÁÚÁÎÏ"
|
||||
|
||||
#: ccdfunc.c:643
|
||||
#: ccdfunc.c:644
|
||||
#, c-format
|
||||
msgid "Found %d cameras, you point number %d"
|
||||
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÁÍÅÒ, ×Ù ÕËÁÚÁÌÉ %d"
|
||||
|
||||
#: ccdfunc.c:451
|
||||
#: ccdfunc.c:452
|
||||
#, c-format
|
||||
msgid "Found %d focusers, you point number %d"
|
||||
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ÆÏËÕÓÅÒÏ×, ×Ù ÕËÁÚÁÌÉ %d"
|
||||
|
||||
#: ccdfunc.c:542
|
||||
#: ccdfunc.c:543
|
||||
#, c-format
|
||||
msgid "Found %d wheels, you point number %d"
|
||||
msgstr "ïÂÎÁÒÕÖÅÎÏ %d ËÏÌÅÓ, ×Ù ÕËÁÚÁÌÉ %d"
|
||||
|
||||
#: ccdfunc.c:666
|
||||
#: ccdfunc.c:667
|
||||
#, c-format
|
||||
msgid "Full array: %s"
|
||||
msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s"
|
||||
|
||||
#: imageview.c:388
|
||||
#: imageview.c:389
|
||||
#, c-format
|
||||
msgid "Histogram conversion: %s"
|
||||
msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
||||
|
||||
#: ccdfunc.c:405
|
||||
#: ccdfunc.c:406
|
||||
#, c-format
|
||||
msgid "Image stat:\n"
|
||||
msgstr "óÔÁÔÉÓÔÉËÁ ÐÏ ÉÚÏÂÒÁÖÅÎÉÀ: \n"
|
||||
@ -289,23 +289,23 @@ msgstr "
|
||||
msgid "N flushes before exposing (default: 1)"
|
||||
msgstr "N ÚÁÓ×ÅÞÉ×ÁÎÉÊ ÐÅÒÅÄ ÜËÓÐÏÚÉÃÉÅÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ: 1)"
|
||||
|
||||
#: server.c:165
|
||||
#: server.c:170
|
||||
msgid "No camera device"
|
||||
msgstr "îÅ ÕËÁÚÁÎÏ ÕÓÔÒÏÊÓÔ×Ï ËÁÍÅÒÙ"
|
||||
|
||||
#: ccdfunc.c:612 ccdfunc.c:613
|
||||
#: ccdfunc.c:613 ccdfunc.c:614
|
||||
msgid "No cameras found"
|
||||
msgstr "ëÁÍÅÒ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
|
||||
|
||||
#: ccdfunc.c:420
|
||||
#: ccdfunc.c:421
|
||||
msgid "No focusers found"
|
||||
msgstr "æÏËÕÓÅÒÏ× ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
|
||||
|
||||
#: ccdfunc.c:511
|
||||
#: ccdfunc.c:512
|
||||
msgid "No wheels found"
|
||||
msgstr "ôÕÒÅÌÅÊ ÎÅ ÏÂÎÁÒÕÖÅÎÏ"
|
||||
|
||||
#: ccdfunc.c:754
|
||||
#: ccdfunc.c:755
|
||||
msgid "Only show statistics"
|
||||
msgstr "ôÏÌØËÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÁÔÉÓÔÉËÕ"
|
||||
|
||||
@ -313,52 +313,52 @@ msgstr "
|
||||
msgid "PID file (default: "
|
||||
msgstr "PID-ÆÁÊÌ (ÐÏ ÕÍÏÌÞÁÎÉÀ: "
|
||||
|
||||
#: ccdfunc.c:660
|
||||
#: ccdfunc.c:661
|
||||
#, c-format
|
||||
msgid "Pixel size: %g x %g"
|
||||
msgstr "òÁÚÍÅÒ ÐÉËÓÅÌÑ: %g x %g"
|
||||
|
||||
#: ccdfunc.c:787
|
||||
#: ccdfunc.c:791
|
||||
msgid "Read grabbed image"
|
||||
msgstr "óÞÉÔÙ×ÁÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ"
|
||||
|
||||
#: ccdfunc.c:753
|
||||
#: ccdfunc.c:754
|
||||
#, c-format
|
||||
msgid "Readout mode: %s"
|
||||
msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s"
|
||||
|
||||
#: client.c:285
|
||||
#: client.c:287
|
||||
msgid "Server timeout"
|
||||
msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ"
|
||||
|
||||
#: ccdfunc.c:717
|
||||
#: ccdfunc.c:718
|
||||
#, c-format
|
||||
msgid "Set brightness to %g"
|
||||
msgstr "õÓÔÁÎÏ×ÉÔØ ÑÒËÏÓÔØ × %g"
|
||||
|
||||
#: ccdfunc.c:654
|
||||
#: ccdfunc.c:655
|
||||
#, c-format
|
||||
msgid "Set fan speed to %d"
|
||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÓËÏÒÏÓÔØ ×ÅÎÔÉÌÑÔÏÒÏ× × %d"
|
||||
|
||||
#: ccdfunc.c:711
|
||||
#: ccdfunc.c:712
|
||||
#, c-format
|
||||
msgid "Set gain to %g"
|
||||
msgstr "õÓÔÁÎÏ×ÉÔØ Gain × %g"
|
||||
|
||||
#: ccdfunc.c:683
|
||||
#: ccdfunc.c:684
|
||||
#, c-format
|
||||
msgid "Shutter command: %s\n"
|
||||
msgstr "ëÏÍÁÎÄÁ ÚÁÔ×ÏÒÁ: %s\n"
|
||||
|
||||
#. "Попытка Ñ<>конфигурировать порт I/O как %d\n"
|
||||
#: ccdfunc.c:689
|
||||
#: ccdfunc.c:690
|
||||
#, c-format
|
||||
msgid "Try to configure I/O port as %d"
|
||||
msgstr "ðÏÐÙÔËÁ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÐÏÒÔ I/O ËÁË %d"
|
||||
|
||||
#. "Попытка запиÑ<C2B8>и %d в порт I/O\n"
|
||||
#: ccdfunc.c:702
|
||||
#: ccdfunc.c:703
|
||||
#, c-format
|
||||
msgid "Try to write %d to I/O port"
|
||||
msgstr "ðÏÐÙÔËÁ ÚÁÐÉÓÉ %d × ÐÏÒÔ I/O"
|
||||
@ -367,11 +367,11 @@ msgstr "
|
||||
msgid "UNIX socket name"
|
||||
msgstr "éÍÑ UNIX-ÓÏËÅÔÁ"
|
||||
|
||||
#: ccdfunc.c:504
|
||||
#: ccdfunc.c:505
|
||||
msgid "Wheel device not pointed"
|
||||
msgstr "õÓÔÒÏÊÓÔ×Ï ÔÕÒÅÌÉ ÎÅ ÕËÁÚÁÎÏ"
|
||||
|
||||
#: ccdfunc.c:569
|
||||
#: ccdfunc.c:570
|
||||
#, c-format
|
||||
msgid "Wheel position should be from 0 to %d"
|
||||
msgstr "ðÏÚÉÃÉÑ ËÏÌÅÓÁ ÄÏÌÖÎÁ ÂÙÔØ ÏÔ 0 ÄÏ %d"
|
||||
@ -510,11 +510,11 @@ msgstr "
|
||||
msgid "observing program name"
|
||||
msgstr "ÎÁÚ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ"
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
msgid "off"
|
||||
msgstr "×ÙËÌ"
|
||||
|
||||
#: imageview.c:508 imageview.c:581
|
||||
#: imageview.c:509 imageview.c:584
|
||||
msgid "on"
|
||||
msgstr "×ËÌ"
|
||||
|
||||
|
||||
20
server.c
20
server.c
@ -113,7 +113,7 @@ static void fixima(){
|
||||
// functions for processCAM finite state machine
|
||||
static inline void cameraidlestate(){ // idle - wait for capture commands
|
||||
if(camflags & FLAG_STARTCAPTURE){ // start capturing
|
||||
DBG("Start exposition");
|
||||
TIMESTAMP("Start exposition");
|
||||
camflags &= ~(FLAG_STARTCAPTURE | FLAG_CANCEL);
|
||||
camstate = CAMERA_CAPTURE;
|
||||
fixima();
|
||||
@ -137,20 +137,25 @@ static inline void cameracapturestate(){ // capturing - wait for exposition ends
|
||||
capture_status cs;
|
||||
if(camera->pollcapture(&cs, &tremain)){
|
||||
if(cs != CAPTURE_PROCESS){
|
||||
DBG("Capture ready");
|
||||
TIMESTAMP("Capture ready");
|
||||
tremain = 0.;
|
||||
// now save frame
|
||||
if(!ima.data) LOGERR("Can't save image: not initialized");
|
||||
else{
|
||||
TIMESTAMP("start capture");
|
||||
if(!camera->capture(&ima)){
|
||||
LOGERR("Can't capture image");
|
||||
camstate = CAMERA_ERROR;
|
||||
return;
|
||||
}else{
|
||||
calculate_stat(&ima);
|
||||
if(lastfile){
|
||||
TIMESTAMP("Calc stat");
|
||||
calculate_stat(&ima);
|
||||
}
|
||||
if(saveFITS(&ima, &lastfile)){
|
||||
DBG("LAST file name changed");
|
||||
}
|
||||
TIMESTAMP("Image saved");
|
||||
}
|
||||
}
|
||||
camstate = CAMERA_FRAMERDY;
|
||||
@ -221,6 +226,8 @@ static int camdevini(int n){
|
||||
curformat = frmformatmax;
|
||||
DBG("\n\nGeometry format (offx/offy) w/h: (%d/%d) %d/%d", curformat.xoff, curformat.yoff,
|
||||
curformat.w, curformat.h);
|
||||
curformat.xoff = 0;
|
||||
curformat.yoff = 0;
|
||||
if(GP->hbin < 1) GP->hbin = 1;
|
||||
if(GP->vbin < 1) GP->vbin = 1;
|
||||
fixima();
|
||||
@ -560,6 +567,8 @@ static hresult expstatehandler(_U_ int fd, _U_ const char *key, _U_ const char *
|
||||
return RESULT_OK;
|
||||
}
|
||||
else if(n == CAMERA_CAPTURE){ // start exposition
|
||||
TIMESTAMP("End of cycle - start new");
|
||||
TIMEINIT();
|
||||
camflags |= FLAG_STARTCAPTURE;
|
||||
return RESULT_OK;
|
||||
}
|
||||
@ -1028,6 +1037,7 @@ void server(int sock, int imsock){
|
||||
close(client);
|
||||
DBG("%d closed", client);
|
||||
}else{WARN("accept()"); DBG("disconnected");}
|
||||
TIMESTAMP("Image sent");
|
||||
}
|
||||
if(poll_set[0].revents & POLLIN){ // check main for accept()
|
||||
struct sockaddr_in addr;
|
||||
@ -1053,8 +1063,10 @@ void server(int sock, int imsock){
|
||||
char buff[PATH_MAX+32];
|
||||
snprintf(buff, PATH_MAX, CMD_EXPSTATE "=%d", camstate);
|
||||
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);
|
||||
}
|
||||
if(camstate == CAMERA_FRAMERDY){ // send to all last file name
|
||||
snprintf(buff, PATH_MAX+31, CMD_LASTFNAME "=%s", lastfile);
|
||||
for(int i = 2; i < nfd; ++i)
|
||||
|
||||
4
socket.c
4
socket.c
@ -34,6 +34,10 @@
|
||||
#include "server.h"
|
||||
#include "socket.h"
|
||||
|
||||
#ifdef EBUG
|
||||
double __t0 = 0.;
|
||||
#endif
|
||||
|
||||
pthread_mutex_t locmutex = PTHREAD_MUTEX_INITIALIZER; // mutex for wheel/camera/focuser functions
|
||||
|
||||
/**
|
||||
|
||||
10
socket.h
10
socket.h
@ -19,6 +19,7 @@
|
||||
#pragma once
|
||||
#include <pthread.h>
|
||||
#include <stdint.h>
|
||||
#include <usefull_macros.h>
|
||||
|
||||
// max & min TCP socket port number
|
||||
#define PORTN_MAX (65535)
|
||||
@ -37,6 +38,15 @@
|
||||
// client will disconnect after this time from last server message
|
||||
#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;
|
||||
|
||||
typedef enum{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user