Skip to content

(VB6) SETImap - tracks Seti@home datafiles and locates signals on a skymap

Notifications You must be signed in to change notification settings

Stats-M/vb6-1999-SETImap

Repository files navigation

vb6-1999-SETImap

Rade (C) 1999 (MS Visual Basic 6) Learning project of my youth. Hail to spaghetti code and a lot of emotional comments!

SETImap - tracks Seti@home datafiles and locate it on a skymap

SETImap project tracks work units (WU) of the Seti@home distributed client by Berkeley University (once it was a stand-alone application). Each WU is a data captured by a radiotelescope (mainly Arecibo) from a certain point at the sky. SETImap stores sky coordinates, signal strength and other data so the user can see all processed units marked on the skymap. See Versions.txt file to see version history.

Описание версий

1.01.0000

-Первая компиляция.

1.01.0002

-Минимальный набор команд.

1.01.0008

-Баг, связанный со статусной строкой, победил. Реализация строки будет изменена. -Добавлено окно журнала для просмотра записей файла журнала и выбора действий над ними.

1.01.0016

-Окно журнала получило возможность изменять свои размеры без "исчезновения" кнопок. Размеры таблицы также изменяются пропорционально размеру окна.

1.01.0018

-Подключено окно ввода базовой информации о новом блоке для последующей его идентификации. -Начало реализации функций идентификации. -Добавление новых методов в объект cWU. -Обнаружен первый баг в объекте cWU. -Модифицирован метод ReadHistory объекта cWU в сторону большей гибкости. Заодно в нем пофиксен обнаруженный ранее баг. -Методы CheckName и CheckID объединены в функцию CheckUnit (аргумент выбирает ветвь проверки если не требуется полноценная проверка).

1.01.0020

-Вся программная начинка для окна ввода базовой информации написана. Надеюсь, исправления в ходе дальнейшей разработки программы будут минимальны, поскольку код почти не зависит от внешних условий.

1.01.0023

-cWU продолжает дополняться новыми методами. -Работает показ точек на карте, куда был направлен радиотелескоп во время записи обработанных блоков! Пока работает только сам алгоритм без точных математических расчетов.

1.01.0027

-Закончен дизайн окна редактирования существующих блоков. -Пофиксены некоторые баги в декодере координат. -Показ точек на карте теперь совпадает с реальным масштабом карты. -Реализован показ координаты той точки на карте, на которую указывает мышь. -Исправлен странный баг с показом координат типа "0 град 300 мин 300 сек" -Исправлен баг неправильного показа текущей закладки при старте окна редактора информации о блоке.

1.01.0029

-Объект cWU дополнен новыми методами передачи данных. Теперь все его компоненты могут быть доступны из основной программы. Также существенно усовершенствован метод записи информации в журнал в связи с приближением конца работ над редактором. -Полностью написана функция инициализации окна редактора. Фактически, он уже работает, осталось только подключить функции сохранения результатов. -Усовершенствован редактор. -Обнаружена ошибка декодера записей файла журнала. В резервном поле в окне редактора стала появляться информация, которой там не должно было быть. Ближайшее рассмотрение выявило проблемы внутри объекта cWU, поверхностный анализ которого показал, что декодер не обрабатывает некоторые значения при дешифровке прочитанных записей журнала, хотя запись в журнал осуществляется корректно. Более детальный анализ будет проведен в ближайшее время. -Появление предыдущей ошибки вытащило на свет незапланированную возможность, которая приводит к появлению еще одного резервного поля данных. Принято решение оставить это поле без изменений.

1.01.0030

-Началось избавление от всяческих упрощений начального периода, что вылилось в уменьшение размера исполняемого файла в 3 раза. -Пофиксен баг в декодере; окна редактора и просмотра журнала перестали глючить. -Функция сохранения результатов работы редактора включена и работает!

1.01.0032

-Полностью работает редактор, установлена и отлажена связь редактора с окном просмотра журнала. Все средства для работы с заголовками рабочих блоков реализованы.

1.01.0033

-Пофиксены некоторые баги, обнаруженные в редакторе -Обнаружен баг связи редактора и окна просмотра журнала. Возможные причины выясняются. -Ошибка показа номера новой записи в окне журнала. Исправлена.

1.01.0034

-Улучшено окно просмотра журнала. -Кнопка редактирования записи в окне просмотра журнала становится доступной только после выбора конкретной записи из списка. -Ошибка связи редактора и журнала исправлена. -Обнаружена ошибка сортировки записей в окне журнала. Сортировка записей в файле журнала осуществляется корректно.

1.01.0035

-Определена стратегия работы с файлами результатов. Соответствующие функции с заглушками уже добавлены в новый объект. -Проведена оптимизация алгоритма там, где этого не было сделано ранее. -Обнаружена ошибка: при отсутствии текущего рабочего блока и добавлении информации о нем вручную (в конец журнала), сразу после записи этой информации в файл вызывает ошибку доступа к данным. После получения нового блока при рестарте программы обнаруживает несоответствие между номером последней записи и параметром в реестре. Корректно исправляя это значение, тем не менее не исправляет общее число записей в реестре, что приводит к сокрытию информации о текущем блоке на карте и в окне журнала. -Обнаружен баг: редактор не принимает значения градусов RA, равные нулю -Исправлено окно редактора. -Ошибка добавления блока вручную исправлена. -Ошибка нулевого значения градусов RA изучается. Попытка исправеления приводит к ошибке исполнения (runtime error).

1.01.0036

-Ошибка добавления блока вручную исправлена. -Ошибка нулевого значения градусов RA изучается. -Возникла ошибка при автоматической записи нового блока.

1.01.0037

-Ошибка нулевого значения градусов RA исправлена. -Обнаружена причина возникновения ошибки записи нового блока, изучаются пути ее устранения.

1.01.0038

-Причина возникновения ошибки записи нового блока устранена. Попутно выявлено несколько недостатков алгоритма, потенциально приводящих к ошибкам. Исправлены. -Продолжается оптимизация скорости исполнения программы.

1.01.0039

-Перевод программы на новый формат файлов в связи с переходом на SETI@home версии 2.00 -Улучшение индикации текущих результатов на карте. -Некоторые функции программы изменены для дополнительной обработки файлов данных клиента SETI@home для Linux.

1.01.0040

-В связи с отсутствием подробной информации о текущем блоке и промежуточных результатах в новой версии клиента, акцент разработки переносится на объект cState. Идет разработка методов объекта. -Добавлен полный цикл проверки заголовка блока для linux-клиента. -Исправлены некоторые методы объекта cWU в сторону их совместимости с linux-клиентом. -Минимально необходимый набор методов cState написан. -В SETIstat.dat будут храниться результаты обработки блоков (лучшие значения spike и gaussian). -Продолжается универсализация функций, результатом чего стало значительное сокращение числа строк кода. Универсальные функции обеспечивают простой интерфейс и готовы к работе как с существующими, так и с еще не реализованними объектами.

1.02.0041

-Стало доступным окно просмотра информации о текущем блоке. Кроме основной информации из заголовка блока выводятся также текущие результаты обработки. -Добавлены графические индикаторы текущих результатов. На данный момент подключены лишь 2 из них. -Усовершенствован объект cWU, что позволило программе делать автоматическое сохранение текущих результатов. С этого момента SETImap обрабатывает и сохраняет всю поступающую информацию без участия человека, за исключением случая отсутствия файла work_unit.sah.

1.02.0042

-Продолжена работа над объектом cOutResult, который будет обрабатывать файлы result.sah и outfile.sah. -Улучшен вывод в окно просмотра информации о текущем блоке. Все аналоговые индикаторы работают. -В объекте cOutResult написан код 2 новых функций.

1.02.0043

-Продолжается работа над cOutResult, добавлена возможность автоматического определения номера блока, даже если файл work_unit.sah отсутствует. -Написан текст функции, ответственной за разделение информации из файла Result.sah на отдельные блоки. -Добавлены еще 3 новых функции обработки данных.

1.02.0044

-Исправлена ошибка индексации блоков, которая могла бы привести к потере данных. Автоматическое определение номеров блоков работает корректно.

1.02.0045

-Написаны функции разделения и записи информации из файлов result.sah. На очереди включение вызовов этих функций в основную программу и отладка их связи. Сделан еще один шаг к приближению статистических вычислений. -Обнаружена ошибка работы функции Splitter. Исправлена. -Множественные ошибочные вызовы функций, написанных ДО начала усиленных работ над cOutResult: их код менялся, а заголовки - нет, что и привело к ошибкам. Исправлены. -Ошибка разделителя записей в Splitter: проверка начиналась каждый раз с одного и того же места, что приводило к бесконечным циклам в случае коротких (около 3 КБайт) файлов Result.sah и генерации значительного количества ложных записей в других случаях. Исправлена. -Обнаружен баг. Все записи одного типа из одного файла одинаковы: на диск записывается только первая найденная запись и повторяется нужное количество раз! Идут попытки исправления. -Splitter полностью работоспособен! Остались некоторые вопросы оптимизации. -Вызов функций проверки и обновления файлов журнала результатов (Results) происходит только при отсутствии рабочего блока.

1.03.0046

-При показе координат обработанных блоков на карте в статусную строку выводится индикатор прогресса. -Объект cState дополнен методами для чтения файла журнала. -Там же реализована работа с файлом-индексом для ускорения работы статистических функций. -Первые статистические функции реализованы, но пока данные для них идут обходными путями. Работает показ лучших гауссиан. На первый взгляд эти цифры соответствуют действительности. Пока сказать трудно - шаг в этом направлении будет в следующей версии. -Совершенно случайно был обнаружен баг, который по идее должен был приводить к игнорированию информации о результатах обсчета блоков. Странно, но этого не происходило. На всякий случай исправлен :)

1.03.0047

-Проведено исправление разных мелких огрехов. -Идея использовать окно журнала рабочих блоков для показа информации о полученных результатах оказалась жизнеспособной. Журнал теперь стал универсальным, а кроме того, с его помощью получены первые подтверждения о том, что вся информация в файл результатов пишется нормально и без глюков. -Последствия предыдущего пункта: ускорение загрузки программы в два раза за счет отказа от инициализации журнала на начальном этапе: в него не каждый раз заглядывают. -Закончена доработка журнала, начавшаяся еще в версии 1.01.0016.

1.03.0048

-Небольшие исправления в окне журнала. -Решено строить еще один индекс для пиковых сигналов. Начало модификаций функций в cState. Модульность программы позволит сделать это легко и не затронуть при этом другие участки. -Модифицировано окно статистики для отображения рейтинга пиковых сигналов. -Построение индексов для пиков и гауссиан полностью реализовано!

1.03.0049

-Добавлено всплывающее меню -Написан объект cUserInfo. -Добавлено окно просмотра информации о пользователе. Показывается ВСЕ содержимое файла user_info.sah (за исключением пары пунктов) в наглядной и удобной форме. -Добавлен редактор результатов.

1.04.0050

-Модифицировано меню. -Модифицировано всплывающее меню. -Исправлено окно просмотра информации о текущем блоке. -Текст в окне просмотра информации о текущем блоке полностью переведен на русский язык. -Модифицировано окно просмотра информации о текущем блоке. -Подключены окна анализа обрабатываемой информации. -Первая аналитическая информация доступна для показа. Показываются результаты приблизительного анализа мощности сигналов и степени соответствия гауссианы идеальной форме. Также выводится некоторая статистическая информация. -Допускается одновременный показ окна с информацией о текущем блоке и других окон.

1.04.0051

-Переход на работу с клиентом SETI@home версии 3.00. Импорт старых файлов данных в новый формат. -Мелкие исправления в функции инициализации программы. -Расширены возможности аналитического анализа. -Работает выбор типа маркера в настройках программы. Пока доступно 3 типа трех размеров.

1.04.0052

-Начало ведения лога результатов для импульсов и триплетов. Все необходимые исправления существующих функций сделаны. -Исправлена ошибка обработки результатов пиков и гауссиан. -Изменение критериев отбора информации в журнал результатов.

1.05.0053

-Программа осуществляет отслеживание текущих результатов расчета и ведет их запись при появлении новых. Обычно эта информация теряется и не попадает даже в файлы результатов, несмотря на то, что результаты не менее интересны чем финальные. -Модифицировано окно информации о текущем блоке для показа новых результатов (импульсов и триплетов). -Окно информации о текущем блоке теперь показывает графики для импульсов и триплетов аналогично SETI@home. График гауссиан не планируется показывать, поскольку это потребует вычисления огибающей кривой. Судя по картинке клиента, это простой интеграл, но в ближайшее время я этим заниматься не буду. -Подключены и работают аналоговые индикаторы там же. -Пофиксен баг, запрещавший сохранение результатов (!!!), если файл данных еще не был создан. -Отлажена логика сохранения промежуточных результатов из State.sah. -В связи с большими изменениями как внутри, так и снаружи, сменился номер версии SETImap.

1.05.0054

-Обнаружен и пофиксен баг, вызывавший сбой программы попыткой вывести несуществующее значение цифрового индикатора в окне просмотра текущей информиации. -Исправлены незначительные ошибки в окне просмотра текущей информации. -Добавлено построение индекса рабочих блоков для статистической обработки.

1.05.0055

-Улучшен алгоритм рисования координат обработанных блоков. -Увеличено число работающих настроек (меню "Вид"/"Настройки..."). Добавлена возможность автоматического показа текущих результатов сразу после запуска программы. -Расширены возможности по работе с индексом рабочих блоков. -Добавлена новая команда меню - "Очистить карту". -Подключены еще несколько индикаторов в окне просмотра текущих результатов. Некоторые ненужные - убраны. -Реализована начальная версия алгоритма автокалибровки, автоматически регистрирующая и задающая максимальные значения для шкал "приборов" в окне просмотра текущей информации. -Добавлена возможность получения краткой информации о звезде, на которую указывает мышь. Пока доступны сведения только о 2 звездах.

1.05.0056

-Обнаружена ошибка построения индекса блоков: время записи блока не определяется. -Индекс рабочих блоков неправильно записывается в файл. Причины выясняются. -Написан алгоритм построения первого из статистических графиков (пока в черновом варианте): распределение рабочих блоков по частотам. -Ошибка определения времени исправлена (текст зачем-то пытались преобразовать в число). -Исправлена ошибка записи индекса. Файл стирался каждый раз(!!!) после добавления новой записи.

1.05.0057

-Алгоритм построения графиков приведен в систему. Написан менеджер графического вывода. Теперь добавление новых типов графиков будет происходить по модульному принципу, что облегчит задачу. -Черновой вариант первого графика приведен к стандартному виду, подключены настройки. -Добавлен второй график. (рабочие блоки/угол) -Исправлены недочеты автокалибровки. -Улучшено окно построения графиков. -Внесены исправления в редактор результатов (обновлен для работы с версией 3.0х SETI@home). -Добавлен третий график. (рабочие блоки/склонение)

1.05.0058

-(отступление)-Новый год, новый век, новое тысячелетие! Проект SETI@home скоро закончит свю работу. Вряд ли SETImap будет завершена, ведь, как известно, нет предела совершенству. -Исправлена ошибка многократного добавления типов графиков в список. -Добавлен новый тип графика (пики -> мощность). -Устранена возможная ошибка при отсутствии карты звездного неба, добавлены возможности по поиску и скачиванию этого файла. -Отключены некоторые ненужные индикаторы в окне просмотра текущей информации. -Небольшие изменения в аналитическом анализе. -Все еще не связанные аналоговые индикаторы связаны с параметрами автокалибровки. Старые алгоритмы, возможно, еще пригодятся для ручного режима, пока они закомментированы. -Расширены возможные настройки.

1.05.0059

-Сделан предварительный вариант анимации аналоговых индикаторов (включается в настройках). -Файл краткого отчета теперь можно установить в настройках, если не устраивает по-умолчанию. -Написан улучшенный вариант анимации индикаторов, добавлено затухание колебаний, более плавный вывод. -Скорость анимации можно установить в настройках. -Увеличено количество работающих настроек.

1.05.0060

-Исправлена ошибка вычисления значения для одного из аналоговых индикаторов. -Подключен импорт файлов журнала (работает ТОЛЬКО при отсутствии текущего рабочего блока) для связи с другими машинами.

1.05.0061

-Реализован показ на карте координат, откуда пришли сигналы с лучшими пиками или гауссианами (пока без возможности настраивать пороговое значение). -Статусная строка показывает текущую информацию при показе источников лучших сигналов. -Добавлены другие дополнительные сообщения, выводимые в статусную строку. -Исправлены некоторые грамматические ошибки. -Исправлены показания аналоговых индикаторов в окне информации о текущем блоке при отсутствии обнаруженных гауссиан.

1.05.0062

-Добавлена возможность отключить проверку Линукс-клиента.

1.05.0063

-Включена цветовая дифференциация маркеров лучших сигналов на карте в зависимости от силы сигнала.

About

(VB6) SETImap - tracks Seti@home datafiles and locates signals on a skymap

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages