little fix

This commit is contained in:
eddyem 2017-03-15 10:18:49 +03:00
parent c2a06aac3a
commit f08fe7fc31
8 changed files with 67 additions and 45 deletions

View File

@ -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 $@

View File

@ -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
View File

@ -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"));

View File

@ -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

View File

@ -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
View File

@ -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
View File

@ -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'

View File

@ -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...");
if(ioctl(comfd,TCGETA,&oldtty) < 0){ // Get 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){
/// "ïÛÉÂËÁ ÚÁÐÉÓÉ!"