mirror of
https://github.com/eddyem/SBIG_340.git
synced 2025-12-06 10:45:10 +03:00
little fix
This commit is contained in:
parent
c2a06aac3a
commit
f08fe7fc31
2
Makefile
2
Makefile
@ -19,7 +19,7 @@ debayer.o : debayer.cpp
|
||||
|
||||
sbig340 : $(SRCS) debayer.o
|
||||
@echo -e "\t\tBuild sbig340"
|
||||
$(CC) -DDAEMON $(CFLAGS) -std=gnu99 $(DEFINES) $(LDFLAGS) $(LDIMG) $(SRCS) -o $@
|
||||
$(CC) $(CFLAGS) -std=gnu99 $(DEFINES) $(LDFLAGS) $(LDIMG) $(SRCS) debayer.o -o $@
|
||||
|
||||
# $(CC) -c $(CFLAGS) -std=gnu99 $(DEFINES) $(SRCS)
|
||||
# $(CPP) $(LDFLAGS) $(OBJS) debayer.o -o $@
|
||||
|
||||
13
debayer.cpp
13
debayer.cpp
@ -54,6 +54,19 @@ static int write_jpeg(const char *fname, const uint8_t *data, imstorage *img){
|
||||
gdFTUseFontConfig(1);
|
||||
char *ret = gdImageStringFT(im, NULL, 0xffffff, "monotype", 10, 0., 2, 12, date);
|
||||
if(ret) fprintf(stderr, "Error: %s\n", ret);
|
||||
const char *prefx = "";
|
||||
double ex = img->exptime;
|
||||
if(ex < 1.){
|
||||
if(ex < 0.001){ // micro
|
||||
prefx = "u";
|
||||
ex *= 1e6;
|
||||
}else{ // milli
|
||||
prefx = "m";
|
||||
ex *= 1e3;
|
||||
}
|
||||
}
|
||||
snprintf(date, 256, "exp=%.3g %ss", ex, prefx);
|
||||
gdImageStringFT(im, NULL, 0xffffff, "monotype", 10, 0., 2, img->H-4, date);
|
||||
im->tpixels[10][10] = 0XFF0000;
|
||||
im->tpixels[15][15] = 0XFF0000;
|
||||
gdImageJpeg(im, fp, 90);
|
||||
|
||||
7
main.c
7
main.c
@ -56,7 +56,10 @@ int main(int argc, char **argv){
|
||||
imsubframe *F = NULL;
|
||||
|
||||
#ifndef CLIENT
|
||||
if(G->splist) list_speeds();
|
||||
if(G->splist){
|
||||
list_speeds();
|
||||
return 0;
|
||||
}
|
||||
if(!try_connect(G->device, G->speed)){
|
||||
WARNX(_("Check power and connection: device not answer!"));
|
||||
return 1;
|
||||
@ -92,7 +95,7 @@ int main(int argc, char **argv){
|
||||
img->binning = G->binning;
|
||||
|
||||
if(start_exposition(img, G->imtype)){ // start test exposition even in daemon
|
||||
WARNX(_("Error starting exposition"));
|
||||
ERRX(_("Error starting exposition"));
|
||||
}else{
|
||||
if(!get_imdata(img)){
|
||||
WARNX(_("Error image transfer"));
|
||||
|
||||
@ -20,26 +20,21 @@ indent_mode=3
|
||||
[project]
|
||||
name=SBIG340
|
||||
base_path=/home/eddy/Docs/SAO/Cameras/SBIG/allsky_340/SBIG_340/
|
||||
description=
|
||||
|
||||
[long line marker]
|
||||
long_line_behaviour=1
|
||||
long_line_column=100
|
||||
|
||||
[files]
|
||||
current_page=12
|
||||
FILE_NAME_0=684;Make;0;EUTF-8;1;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2FMakefile;0;4
|
||||
FILE_NAME_1=1058;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fmain.c;0;4
|
||||
FILE_NAME_2=3665;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fcmdlnopts.c;0;4
|
||||
FILE_NAME_3=2158;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fcmdlnopts.h;0;4
|
||||
FILE_NAME_4=2541;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fterm.c;0;4
|
||||
FILE_NAME_5=3090;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fterm.h;0;4
|
||||
FILE_NAME_6=2204;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fimfunctions.h;0;4
|
||||
FILE_NAME_7=14598;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fimfunctions.c;0;4
|
||||
FILE_NAME_8=736;C++;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2Fdemosaic%2Fsrc%2Fio_tiff.cpp;0;4
|
||||
FILE_NAME_9=959;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2Fdemosaic%2Fsrc%2Fio_tiff.h;0;4
|
||||
FILE_NAME_10=4748;C++;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2Fdemosaic%2Fsrc%2FdemosaickingIpol.cpp;0;4
|
||||
FILE_NAME_11=1322;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Ftestimages%2Finotify.c;0;4
|
||||
FILE_NAME_12=67;Markdown;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2FReadme.md;0;4
|
||||
current_page=5
|
||||
FILE_NAME_0=2657;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fmain.c;0;4
|
||||
FILE_NAME_1=3442;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fimfunctions.c;0;4
|
||||
FILE_NAME_2=1637;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fimfunctions.h;0;4
|
||||
FILE_NAME_3=1077;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fdebayer.h;0;4
|
||||
FILE_NAME_4=2547;C++;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fdebayer.cpp;0;4
|
||||
FILE_NAME_5=707;Make;0;EUTF-8;1;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2FMakefile;0;4
|
||||
FILE_NAME_6=11756;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FCameras%2FSBIG%2Fallsky_340%2FSBIG_340%2Fsocket.c;0;4
|
||||
|
||||
[VTE]
|
||||
last_dir=/home/eddy/Docs/SAO/Cameras/FLI_camera/my/Mytakepic
|
||||
|
||||
6
socket.c
6
socket.c
@ -172,6 +172,8 @@ int send_ima(int sock, int webquery){
|
||||
return 0;
|
||||
}
|
||||
rest -= imS;
|
||||
// send data
|
||||
size_t send = BUFLEN10 - rest;
|
||||
// OK buffer ready, prepare to send it
|
||||
if(webquery){
|
||||
Len = snprintf((char*)obuff, BUFLEN,
|
||||
@ -179,7 +181,7 @@ int send_ima(int sock, int webquery){
|
||||
"Access-Control-Allow-Origin: *\r\n"
|
||||
"Access-Control-Allow-Methods: GET, POST\r\n"
|
||||
"Access-Control-Allow-Credentials: true\r\n"
|
||||
"Content-type: multipart/form-data\r\nContent-Length: %zd\r\n\r\n", Len);
|
||||
"Content-type: multipart/form-data\r\nContent-Length: %zd\r\n\r\n", send);
|
||||
if(Len < 0){
|
||||
WARN("sprintf()");
|
||||
return 0;
|
||||
@ -190,8 +192,6 @@ int send_ima(int sock, int webquery){
|
||||
}
|
||||
DBG("%s", obuff);
|
||||
}
|
||||
// send data
|
||||
size_t send = BUFLEN10 - rest;
|
||||
red("send %zd bytes\n", send);
|
||||
if(send != (size_t)write(sock, buf, send)){
|
||||
WARN("write()");
|
||||
|
||||
8
term.c
8
term.c
@ -99,7 +99,7 @@ trans_status wait_checksum(){
|
||||
double d0 = dtime();
|
||||
do{
|
||||
if((r = read_tty(&chr, 1)) && chr == last_chksum) break;
|
||||
DBG("wait..");
|
||||
//DBG("wait..");
|
||||
}while(dtime() - d0 < WAIT_TMOUT);
|
||||
if(dtime() - d0 >= WAIT_TMOUT) return TRANS_TIMEOUT;
|
||||
DBG("chksum: got 0x%x, need 0x%x", chr, last_chksum);
|
||||
@ -308,7 +308,7 @@ void run_terminal(){
|
||||
setup_con();
|
||||
while(1){
|
||||
if((L = read_tty(buf, BUFLEN))){
|
||||
printf(_("Get data: "));
|
||||
printf(_("Get %zd bytes: "), L);
|
||||
uint8_t *ptr = buf;
|
||||
while(L--){
|
||||
uint8_t c = *ptr++;
|
||||
@ -640,8 +640,8 @@ uint16_t *get_image(imstorage *img){
|
||||
l -= r;
|
||||
}
|
||||
}while(l && dtime() - d0 < IMTRANS_TMOUT);
|
||||
//DBG("got: %zd", got);
|
||||
if(got < 3){
|
||||
//DBG("got: %zd, time: %g, l=%zd", got, dtime()-d0, l);
|
||||
if(l){
|
||||
cs = IMTRANS_STOP;
|
||||
write_tty(&cs, 1);
|
||||
return NULL; // nothing to read
|
||||
|
||||
27
term.h
27
term.h
@ -23,6 +23,20 @@
|
||||
#define __TERM_H__
|
||||
#include "imfunctions.h"
|
||||
|
||||
// terminal timeout (seconds)
|
||||
#define WAIT_TMOUT (0.2)
|
||||
// timeout waitint 'D'
|
||||
#define EXP_DONE_TMOUT (5.0)
|
||||
// dataportion transfer timeout
|
||||
#define IMTRANS_TMOUT (3.0)
|
||||
// image size
|
||||
#define IMWIDTH (640)
|
||||
#define IM_CROPWIDTH (512)
|
||||
#define IMHEIGHT (480)
|
||||
#define MAX_SUBFRAME_SZ (127)
|
||||
// maximal expposition time in 100th of us
|
||||
#define MAX_EXPTIME_100 ((uint64_t)0x63ffff)
|
||||
|
||||
// communication errors
|
||||
typedef enum{
|
||||
TRANS_SUCCEED = 0, // no errors
|
||||
@ -40,19 +54,6 @@ typedef enum{
|
||||
HEATER_OFF // turn off
|
||||
} heater_cmd;
|
||||
|
||||
// terminal timeout (seconds)
|
||||
#define WAIT_TMOUT (0.2)
|
||||
// timeout waitint 'D'
|
||||
#define EXP_DONE_TMOUT (5.0)
|
||||
// dataportion transfer timeout
|
||||
#define IMTRANS_TMOUT (1.0)
|
||||
// image size
|
||||
#define IMWIDTH (640)
|
||||
#define IM_CROPWIDTH (512)
|
||||
#define IMHEIGHT (480)
|
||||
#define MAX_SUBFRAME_SZ (127)
|
||||
// maximal expposition time in 100th of us
|
||||
#define MAX_EXPTIME_100 ((uint64_t)0x63ffff)
|
||||
/******************************** Commands definition ********************************/
|
||||
// communications test
|
||||
#define CMD_COMM_TEST 'E'
|
||||
|
||||
@ -294,17 +294,25 @@ void tty_init(char *comdev, tcflag_t speed){
|
||||
signals(11);
|
||||
}
|
||||
DBG("Open port...");
|
||||
if ((comfd = open(comdev,O_RDWR|O_NOCTTY|O_NONBLOCK)) < 0){
|
||||
WARN("Can't use port %s\n",comdev);
|
||||
ioctl(comfd, TCSANOW, &oldtty); // return TTY to previous state
|
||||
close(comfd);
|
||||
signals(2); // quit?
|
||||
do{
|
||||
comfd = open(comdev,O_RDWR|O_NOCTTY|O_NONBLOCK);
|
||||
}while (comfd == -1 && errno == EINTR);
|
||||
if(comfd < 0){
|
||||
WARN(_("Can't open port %s"),comdev);
|
||||
signals(2);
|
||||
}
|
||||
DBG("OK\nGet current settings...");
|
||||
/* DBG("OK\nGet current settings...");
|
||||
if(ioctl(comfd, TCGETA, &oldtty) < 0){ // Get settings
|
||||
/// "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÎÁÓÔÒÏÊËÉ"
|
||||
WARN(_("Can't get settings"));
|
||||
signals(2);
|
||||
}*/
|
||||
DBG("Make exclusive");
|
||||
// make exclusive open
|
||||
if(ioctl(comfd, TIOCEXCL)){
|
||||
WARN(_("Can't do exclusive open"));
|
||||
close(comfd);
|
||||
signals(2);
|
||||
}
|
||||
}
|
||||
tty = oldtty;
|
||||
@ -327,13 +335,14 @@ void tty_init(char *comdev, tcflag_t speed){
|
||||
* @return amount of readed bytes
|
||||
*/
|
||||
size_t read_tty(uint8_t *buff, size_t length){
|
||||
if(comfd < 0) return 0;
|
||||
ssize_t L = 0;
|
||||
fd_set rfds;
|
||||
struct timeval tv;
|
||||
int retval;
|
||||
FD_ZERO(&rfds);
|
||||
FD_SET(comfd, &rfds);
|
||||
tv.tv_sec = 0; tv.tv_usec = 500000; // wait for 500ms
|
||||
tv.tv_sec = 0; tv.tv_usec = 50000; // wait for 50ms
|
||||
retval = select(comfd + 1, &rfds, NULL, NULL, &tv);
|
||||
if (!retval) return 0;
|
||||
if(FD_ISSET(comfd, &rfds)){
|
||||
@ -343,6 +352,7 @@ size_t read_tty(uint8_t *buff, size_t length){
|
||||
}
|
||||
|
||||
int write_tty(const uint8_t *buff, size_t length){
|
||||
if(comfd < 0) return 1;
|
||||
ssize_t L = write(comfd, buff, length);
|
||||
if((size_t)L != length){
|
||||
/// "ïÛÉÂËÁ ÚÁÐÉÓÉ!"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user