Mar. 1st, 2022

eddy_em: (Default)
Сел сейчас переделать утилитку, вычисляющую моменты восхода/захода Солнца (ну и заодно полудня). Она нужна для того, чтобы не писать вручную, во сколько времени автоматом закрыть телескоп при наблюдениях. Ну и решил, чтобы не плодить сущности, просто сделать симлинки 'sunrise' и 'sunset' на основную утилиту 'noon'.
Для этого основными целями делаем создание ссылок, а уже их ставим в зависимость от основной цели. Вот такой Makefile получился:
# run `make DEF=...` to add extra defines
PROGRAM = noon
LDFLAGS := -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,--discard-all
LDFLAGS += -lnova
SRCS := $(wildcard *.c)
DEFINES := $(DEF) -D_GNU_SOURCE -D_XOPEN_SOURCE=1111
CFLAGS += -O2 -Wno-trampolines -std=gnu99
CC = gcc

LINKS := sunrise sunset

all : $(LINKS)

$(LINKS) : $(PROGRAM)
        @echo "make links"
        ln -s $< $@ || true

$(PROGRAM): sun.c
        @echo -e "\t\tCC $<"
        $(CC) $(LDFLAGS) $(CFLAGS) $(DEFINES) -o $@ $<

А внутри просто проверяем, что собой представляет basename(argv[0]), выбирая соответствующие действия.
eddy_em: (Default)
В поисках совершенства (надоело уже туда-сюда тягать всякие фичи среди 100500 утилит для по сути одного и того же — получения FITS-файлов с CCD/CMOS), решил сделать эдакий универсал. Поддержка каждой камеры реализуется в виде модуля: динамической библиотеки, открываемой через dlopen. В каждой библиотеке экспортируется лишь 3 объекта: структуры Camera, Focuser и Wheel. А в них уже содержатся свойства и методы конкретной железки, реализованные в этой библиотеке.
Еще давно сделал для FLI (по сути это и содрано с fli_control), сейчас вожусь с поддержкой ZWO-ASI, понемногу приходится изменять содержимое структур, т.к. в CMOS кое-какие совсем иные вещи есть, и хочется их тоже поддерживать. Главное — после всех этих извращений с ZWO, проверить, все ли для FLI работает.

Вот, работая с ZWO, заметил, что я, дурья моя башка, забыл на TeA выделить место под блок питания камеры! С какого-то перепугу я решил, что она от USB будет питаться. Ага. Пельтьюха от USB! Как бы не так!!! В общем, придется опять колхоз разводить.
Да, у этой камеры (а скорей — ее библиотеки) есть очень паршивая особенность: каждый раз при инициализации камеры все значения сбрасываются в дефолт, т.е. температура тоже. А если хочешь установить температуру, нужно до экспозиции какое-то время выждать, пока не включится вентилятор (иначе после окончания экспозиции охладитель не заработает).

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 10:10 am
Powered by Dreamwidth Studios