mirror of
https://github.com/eddyem/CCD_Capture.git
synced 2025-12-06 02:35:13 +03:00
fixed some bugs but still have a bug with exit from viewer mode
This commit is contained in:
parent
543a5a5b38
commit
aa8a3a30b1
@ -212,7 +212,7 @@ int saveFITS(IMG *img, char **outp){
|
|||||||
}
|
}
|
||||||
int width = img->w, height = img->h;
|
int width = img->w, height = img->h;
|
||||||
void *data = (void*) img->data;
|
void *data = (void*) img->data;
|
||||||
long naxes[2] = {width, height}, tmpl;
|
long naxes[2] = {width, height};
|
||||||
double tmpd = 0.0;
|
double tmpd = 0.0;
|
||||||
float tmpf = 0.0;
|
float tmpf = 0.0;
|
||||||
int tmpi = 0;
|
int tmpi = 0;
|
||||||
|
|||||||
27
client.c
27
client.c
@ -28,16 +28,17 @@
|
|||||||
#include "ccdfunc.h" // framerate
|
#include "ccdfunc.h" // framerate
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "cmdlnopts.h"
|
#include "cmdlnopts.h"
|
||||||
|
#include "imageview.h"
|
||||||
#include "server.h" // for common commands names
|
#include "server.h" // for common commands names
|
||||||
#include "socket.h"
|
#include "socket.h"
|
||||||
|
|
||||||
static char sendbuf[BUFSIZ];
|
static char sendbuf[BUFSIZ];
|
||||||
// send message and wait any answer
|
// send message and wait any answer
|
||||||
#define SENDMSG(...) do{snprintf(sendbuf, BUFSIZ-1, __VA_ARGS__); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf); getans(sock, NULL);}while(0)
|
#define SENDMSG(...) do{DBG("SENDMSG"); snprintf(sendbuf, BUFSIZ-1, __VA_ARGS__); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf); while(getans(sock, NULL));} while(0)
|
||||||
// send message and wait answer starting with 'cmd'
|
// send message and wait answer starting with 'cmd'
|
||||||
#define SENDMSGW(cmd, ...) do{snprintf(sendbuf, BUFSIZ-1, cmd __VA_ARGS__); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf); getans(sock, cmd);}while(0)
|
#define SENDMSGW(cmd, ...) do{DBG("SENDMSGW"); snprintf(sendbuf, BUFSIZ-1, cmd __VA_ARGS__); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf);}while(!getans(sock, cmd))
|
||||||
// send command and wait for answer on it
|
// send command and wait for answer on it
|
||||||
#define SENDCMDW(cmd) do{strncpy(sendbuf, cmd, BUFSIZ-1); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf); getans(sock, cmd);}while(0)
|
#define SENDCMDW(cmd) do{DBG("SENDCMDW"); strncpy(sendbuf, cmd, BUFSIZ-1); verbose(2, "\t> %s", sendbuf); sendstrmessage(sock, sendbuf);}while(!getans(sock, cmd))
|
||||||
static volatile atomic_int expstate = CAMERA_CAPTURE;
|
static volatile atomic_int expstate = CAMERA_CAPTURE;
|
||||||
static int xm0,ym0,xm1,ym1; // max format
|
static int xm0,ym0,xm1,ym1; // max format
|
||||||
static int xc0,yc0,xc1,yc1; // current format
|
static int xc0,yc0,xc1,yc1; // current format
|
||||||
@ -89,22 +90,27 @@ static int parseans(char *ans){
|
|||||||
if(0 == strcmp(CMD_EXPSTATE, ans)){
|
if(0 == strcmp(CMD_EXPSTATE, ans)){
|
||||||
expstate = atoi(val);
|
expstate = atoi(val);
|
||||||
DBG("Exposition state: %d", expstate);
|
DBG("Exposition state: %d", expstate);
|
||||||
|
return TRUE;
|
||||||
}else if(0 == strcmp(CMD_FRAMEMAX, ans)){
|
}else if(0 == strcmp(CMD_FRAMEMAX, ans)){
|
||||||
sscanf(val, "%d,%d,%d,%d", &xm0, &ym0, &xm1, &ym1);
|
sscanf(val, "%d,%d,%d,%d", &xm0, &ym0, &xm1, &ym1);
|
||||||
DBG("Got maxformat: %d,%d,%d,%d", xm0, ym0, xm1, ym1);
|
DBG("Got maxformat: %d,%d,%d,%d", xm0, ym0, xm1, ym1);
|
||||||
|
return TRUE;
|
||||||
}else if(0 == strcmp(CMD_FRAMEFORMAT, ans)){
|
}else if(0 == strcmp(CMD_FRAMEFORMAT, ans)){
|
||||||
sscanf(val, "%d,%d,%d,%d", &xc0, &yc0, &xc1, &yc1);
|
sscanf(val, "%d,%d,%d,%d", &xc0, &yc0, &xc1, &yc1);
|
||||||
DBG("Got current format: %d,%d,%d,%d", xc0, yc0, xc1, yc1);
|
DBG("Got current format: %d,%d,%d,%d", xc0, yc0, xc1, yc1);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
#ifdef IMAGEVIEW
|
#ifdef IMAGEVIEW
|
||||||
else if(0 == strcmp(CMD_IMWIDTH, ans)){
|
else if(0 == strcmp(CMD_IMWIDTH, ans)){
|
||||||
ima.w = atoi(val);
|
ima.w = atoi(val);
|
||||||
DBG("Get width: %d", ima.w);
|
DBG("Get width: %d", ima.w);
|
||||||
imdatalen = ima.w * ima.h * 2;
|
imdatalen = ima.w * ima.h * 2;
|
||||||
|
return TRUE;
|
||||||
}else if(0 == strcmp(CMD_IMHEIGHT, ans)){
|
}else if(0 == strcmp(CMD_IMHEIGHT, ans)){
|
||||||
ima.h = atoi(val);
|
ima.h = atoi(val);
|
||||||
DBG("Get height: %d", ima.h);
|
DBG("Get height: %d", ima.h);
|
||||||
imdatalen = ima.w * ima.h * 2;
|
imdatalen = ima.w * ima.h * 2;
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
//TIMESTAMP("parseans() end");
|
//TIMESTAMP("parseans() end");
|
||||||
@ -118,20 +124,24 @@ static int getans(int sock, const char *msg){
|
|||||||
char *ans = NULL;
|
char *ans = NULL;
|
||||||
while(dtime() - t0 < ANSWER_TIMEOUT){
|
while(dtime() - t0 < ANSWER_TIMEOUT){
|
||||||
char *s = readmsg(sock);
|
char *s = readmsg(sock);
|
||||||
if(!s){ // buffer is empty, return last message or wait for it
|
if(!s) continue;
|
||||||
if(ans) return TRUE;
|
/*if(!s){ // buffer is empty, return last message or wait for it
|
||||||
|
if(ans) return (msg ? FALSE : TRUE);
|
||||||
else continue;
|
else continue;
|
||||||
}
|
}*/
|
||||||
t0 = dtime();
|
t0 = dtime();
|
||||||
ans = s;
|
ans = s;
|
||||||
TIMESTAMP("Got from server: %s", ans);
|
TIMESTAMP("Got from server: %s", ans);
|
||||||
verbose(1, "\t%s", ans);
|
verbose(1, "\t%s", ans);
|
||||||
|
DBG("1 msg-> %s, ans -> %s", msg, ans);
|
||||||
if(parseans(ans)){
|
if(parseans(ans)){
|
||||||
|
DBG("2 msg-> %s, ans -> %s", msg, ans);
|
||||||
if(msg && strncmp(ans, msg, strlen(msg))) continue;
|
if(msg && strncmp(ans, msg, strlen(msg))) continue;
|
||||||
|
DBG("BREAK");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DBG("GETANS: timeout, ans: %s", ans);
|
DBG("GETANS: %s, %s", ans, (dtime()-t0 > ANSWER_TIMEOUT) ? "timeout" : "got answer");
|
||||||
return ((ans) ? TRUE : FALSE);
|
return ((ans) ? TRUE : FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,6 +355,8 @@ 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("xx");
|
||||||
|
if(!getWin()) exit(1);
|
||||||
expstate = CAMERA_CAPTURE;
|
expstate = CAMERA_CAPTURE;
|
||||||
TIMESTAMP("End of cycle, start new #%d", grabno+1);
|
TIMESTAMP("End of cycle, start new #%d", grabno+1);
|
||||||
TIMEINIT();
|
TIMEINIT();
|
||||||
@ -378,6 +390,7 @@ 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){
|
||||||
|
if(!getWin()) exit(1);
|
||||||
getans(sock, NULL);
|
getans(sock, NULL);
|
||||||
if(expstate != CAMERA_FRAMERDY){
|
if(expstate != CAMERA_FRAMERDY){
|
||||||
usleep(1000);
|
usleep(1000);
|
||||||
|
|||||||
43
imageview.c
43
imageview.c
@ -129,15 +129,12 @@ static void createWindow(){
|
|||||||
DBG("Window opened");
|
DBG("Window opened");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int killwindow(){
|
static void killwindow(){
|
||||||
if(!win) return 0;
|
if(!win) return;
|
||||||
if(!win->killthread){
|
if(!win->killthread){
|
||||||
// say threads to die
|
// say threads to die
|
||||||
win->killthread = 1;
|
win->killthread = 1;
|
||||||
}
|
}
|
||||||
//DBG("Lock mutex");
|
|
||||||
//pthread_mutex_lock(&win->mutex);
|
|
||||||
//pthread_join(win->thread, NULL); // wait while thread dies
|
|
||||||
if(win->menu){
|
if(win->menu){
|
||||||
DBG("Destroy menu");
|
DBG("Destroy menu");
|
||||||
glutDestroyMenu(win->menu);
|
glutDestroyMenu(win->menu);
|
||||||
@ -146,18 +143,25 @@ static int killwindow(){
|
|||||||
glutDestroyWindow(win->ID);
|
glutDestroyWindow(win->ID);
|
||||||
DBG("Delete textures");
|
DBG("Delete textures");
|
||||||
glDeleteTextures(1, &(win->Tex));
|
glDeleteTextures(1, &(win->Tex));
|
||||||
DBG("Cancel");
|
if(GLUTthread){
|
||||||
|
DBG("Leave mainloop");
|
||||||
|
glutLeaveMainLoop();
|
||||||
|
DBG("cancel GLUTthread");
|
||||||
|
pthread_cancel(GLUTthread);
|
||||||
|
GLUTthread = 0;
|
||||||
|
}
|
||||||
|
DBG("main GL thread cancelled");
|
||||||
|
initialized = 0;
|
||||||
windowData *old = win;
|
windowData *old = win;
|
||||||
win = NULL;
|
win = NULL;
|
||||||
DBG("free(rawdata)");
|
DBG("free(rawdata)");
|
||||||
FREE(old->image->rawdata);
|
FREE(old->image->rawdata);
|
||||||
DBG("free(image)");
|
DBG("free(image)");
|
||||||
FREE(old->image);
|
FREE(old->image);
|
||||||
//pthread_mutex_unlock(&old->mutex);
|
|
||||||
DBG("free(win)");
|
DBG("free(win)");
|
||||||
FREE(old);
|
FREE(old);
|
||||||
DBG("return");
|
DBG("return");
|
||||||
return 1;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -525,20 +529,15 @@ static void* image_thread(void *data){
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void closeGL(){
|
void closeGL(){ // killed by external signal or ctrl+c
|
||||||
if(win) win->killthread = 1;
|
|
||||||
usleep(1000);
|
|
||||||
if(!initialized) return;
|
if(!initialized) return;
|
||||||
initialized = 0;
|
DBG("KILLL");
|
||||||
camstop(); // cancel expositions
|
camstop(); // cancel expositions
|
||||||
//DBG("Leave mainloop");
|
win->killthread = 1;
|
||||||
//glutLeaveMainLoop();
|
while(initialized){
|
||||||
DBG("kill");
|
usleep(100000);
|
||||||
killwindow();
|
if(initialized) killwindow(); // kill here, if `viewer` died
|
||||||
DBG("join");
|
}
|
||||||
if(GLUTthread) pthread_join(GLUTthread, NULL); // wait while main thread exits
|
|
||||||
DBG("main GL thread cancelled");
|
|
||||||
usleep(1000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -562,9 +561,11 @@ int viewer(imagefunc newimage){
|
|||||||
IMG *img = NULL;
|
IMG *img = NULL;
|
||||||
//double t0 = dtime();
|
//double t0 = dtime();
|
||||||
while(1){
|
while(1){
|
||||||
if(!win || win->killthread){
|
if(!win || win->killthread){ // got kill from ctrl+q
|
||||||
DBG("got killthread");
|
DBG("got killthread");
|
||||||
newimage((void*)-1);
|
newimage((void*)-1);
|
||||||
|
DBG("kill");
|
||||||
|
killwindow();
|
||||||
signals(0); // just run common cleaner
|
signals(0); // just run common cleaner
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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-11 14:57+0300\n"
|
"POT-Creation-Date: 2023-05-06 14:36+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"
|
||||||
@ -546,7 +546,7 @@ msgid "Can't grab image"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. %d секунд до окончания паузы\n
|
#. %d секунд до окончания паузы\n
|
||||||
#: ccdfunc.c:807 client.c:278
|
#: ccdfunc.c:807 client.c:288
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d seconds till pause ends\n"
|
msgid "%d seconds till pause ends\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -559,11 +559,11 @@ msgstr ""
|
|||||||
msgid "No camera device"
|
msgid "No camera device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: client.c:265
|
#: client.c:275
|
||||||
msgid "Can't make exposition"
|
msgid "Can't make exposition"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: client.c:294
|
#: client.c:304
|
||||||
msgid "Server timeout"
|
msgid "Server timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -571,28 +571,28 @@ msgstr ""
|
|||||||
msgid "Already initialized!"
|
msgid "Already initialized!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:287
|
#: imageview.c:291
|
||||||
msgid "Can't init mutex!"
|
msgid "Can't init mutex!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:389
|
#: imageview.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Histogram conversion: %s"
|
msgid "Histogram conversion: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Equalization of histogram: %s"
|
msgid "Equalization of histogram: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
msgid "on"
|
msgid "on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
msgid "off"
|
msgid "off"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: imageview.c:559
|
#: imageview.c:558
|
||||||
msgid "Can't open OpenGL window, image preview will be inaccessible"
|
msgid "Can't open OpenGL window, image preview will be inaccessible"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@ -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-11 14:24+0300\n"
|
"POT-Creation-Date: 2023-05-06 14:36+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:807 client.c:278
|
#: ccdfunc.c:807 client.c:288
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d seconds till pause ends\n"
|
msgid "%d seconds till pause ends\n"
|
||||||
msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n"
|
msgstr "%d ÓÅËÕÎÄ ÄÏ ÏËÏÎÞÁÎÉÑ ÐÁÕÚÙ\n"
|
||||||
@ -113,15 +113,15 @@ msgstr "
|
|||||||
msgid "Can't home focuser"
|
msgid "Can't home focuser"
|
||||||
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÆÏËÕÓÅÒ × ÎÕÌØ"
|
msgstr "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ÆÏËÕÓÅÒ × ÎÕÌØ"
|
||||||
|
|
||||||
#: imageview.c:287
|
#: imageview.c:291
|
||||||
msgid "Can't init mutex!"
|
msgid "Can't init mutex!"
|
||||||
msgstr "îÅ ÍÏÇÕ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÍØÀÔÅËÓ!"
|
msgstr "îÅ ÍÏÇÕ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÔØ ÍØÀÔÅËÓ!"
|
||||||
|
|
||||||
#: client.c:265
|
#: client.c:275
|
||||||
msgid "Can't make exposition"
|
msgid "Can't make exposition"
|
||||||
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÜËÓÐÏÚÉÃÉÀ"
|
msgstr "îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ÜËÓÐÏÚÉÃÉÀ"
|
||||||
|
|
||||||
#: imageview.c:559
|
#: imageview.c:558
|
||||||
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, ÏÔÏÂÒÁÖÅÎÉÅ ÂÕÄÅÔ ÎÅÄÏÓÔÕÐÎÏ"
|
||||||
|
|
||||||
@ -232,7 +232,7 @@ msgstr ""
|
|||||||
msgid "Display image in OpenGL window"
|
msgid "Display image in OpenGL window"
|
||||||
msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ × ÏËÎÅ OpenGL"
|
msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ × ÏËÎÅ OpenGL"
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Equalization of histogram: %s"
|
msgid "Equalization of histogram: %s"
|
||||||
msgstr "üË×ÁÌÉÚÁÃÉÑ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
msgstr "üË×ÁÌÉÚÁÃÉÑ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
||||||
@ -275,7 +275,7 @@ msgstr "
|
|||||||
msgid "Full array: %s"
|
msgid "Full array: %s"
|
||||||
msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s"
|
msgstr "ðÏÌÎÙÊ ÆÏÒÍÁÔ: %s"
|
||||||
|
|
||||||
#: imageview.c:389
|
#: imageview.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Histogram conversion: %s"
|
msgid "Histogram conversion: %s"
|
||||||
msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
msgstr "ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÇÉÓÔÏÇÒÁÍÍÙ: %s"
|
||||||
@ -323,7 +323,7 @@ msgstr "
|
|||||||
msgid "Readout mode: %s"
|
msgid "Readout mode: %s"
|
||||||
msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s"
|
msgstr "òÅÖÉÍ ÓÞÉÔÙ×ÁÎÉÑ: %s"
|
||||||
|
|
||||||
#: client.c:294
|
#: client.c:304
|
||||||
msgid "Server timeout"
|
msgid "Server timeout"
|
||||||
msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ"
|
msgstr "ôÁÊÍÁÕÔ ÓÅÒ×ÅÒÁ"
|
||||||
|
|
||||||
@ -510,11 +510,11 @@ msgstr "
|
|||||||
msgid "observing program name"
|
msgid "observing program name"
|
||||||
msgstr "ÎÁÚ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ"
|
msgstr "ÎÁÚ×ÁÎÉÅ ÐÒÏÇÒÁÍÍÙ"
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
msgid "off"
|
msgid "off"
|
||||||
msgstr "×ÙËÌ"
|
msgstr "×ÙËÌ"
|
||||||
|
|
||||||
#: imageview.c:520 imageview.c:599
|
#: imageview.c:524 imageview.c:600
|
||||||
msgid "on"
|
msgid "on"
|
||||||
msgstr "×ËÌ"
|
msgstr "×ËÌ"
|
||||||
|
|
||||||
|
|||||||
5
main.c
5
main.c
@ -40,7 +40,8 @@ static int isserver = FALSE;
|
|||||||
static pid_t childpid = 0;
|
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);
|
||||||
|
DBG("signo=%d", signo);
|
||||||
if(childpid){ // master process
|
if(childpid){ // master process
|
||||||
if(signo == SIGUSR1){ // kill child
|
if(signo == SIGUSR1){ // kill child
|
||||||
kill(childpid, signo);
|
kill(childpid, signo);
|
||||||
@ -62,8 +63,8 @@ void signals(int signo){
|
|||||||
#ifdef IMAGEVIEW
|
#ifdef IMAGEVIEW
|
||||||
DBG("KILL GL");
|
DBG("KILL GL");
|
||||||
closeGL();
|
closeGL();
|
||||||
usleep(10000);
|
|
||||||
#endif
|
#endif
|
||||||
|
DBG("exit(%d)", signo);
|
||||||
exit(signo);
|
exit(signo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
socket.c
1
socket.c
@ -146,6 +146,7 @@ int start_socket(int isserver){
|
|||||||
if(!GP->viewer && GP->exptime < 0.00001) ERRX("Need exposition time!");
|
if(!GP->viewer && GP->exptime < 0.00001) ERRX("Need exposition time!");
|
||||||
init_grab_sock(sock);
|
init_grab_sock(sock);
|
||||||
viewer(sockcaptured); // start viewer with socket client parser
|
viewer(sockcaptured); // start viewer with socket client parser
|
||||||
|
DBG("done");
|
||||||
}else
|
}else
|
||||||
#endif
|
#endif
|
||||||
client(sock);
|
client(sock);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user