среда, 3 января 2018 г.

Hiseeu 
Network Video Recorder

Для опытов взял такой девайс... Будем попробовать...
Фото менюшки для ознакомления:





























среда, 26 октября 2016 г.

Триколор ТВ + GS8306 + Поршивка 1.9.160

Да, да, да, именно - поршивка, потому что иначе ее не назвать.
Какие плюсы: красота.
Но когда ничего не работает, эта красота стремительно меркнет.
Исходные данные:
- реcиверы GS8306 и GS8305
- сельская местность, со всеми вытекающими последствиями: нестабильное напряжение, отсутствие сервисных центров, пользователь - бабушка/дедушка.

Проходит обновление со спутника.Обновляются двое. Вроде все хорошо. Один ресивер работает, второй стоит на приколе, как запасной.
Первые симптомы GS8305: регулярно, после пропадания электропитания, запускается мастер настройки оборудования с поиском каналов.
Начитавшись интернету и лестных отзывов о прошивке, удаленно (телефон-бабушка-ресивер) делается сброс до заводских настроек. В итоге мастер поиска каналов не может загрузить список регионов и не может произвести поиск каналов.
Общение с поддержкой Триколор и GS по почте и телефонам длилось пару дней:
- настройте частоту вместо 10750 в 10751 (Триколор)
- настройте частоту вместо 10750 в 10749 (GS) и потом с шагом 1 меняйте ее вверх с последовательным поиском каналов....
- у вас пропал сигнал от антенны...
- обратитесь в сервис (естественно платный) для диагностики
Одна тарелка, через разветвитель, питает два ресивера. GS8305 переподключается к другому гнезду делителя, настраивается рекомендованная несущая частота и, магическим образом, находит каналы. Но не все.... часть каналов отсутствует. Ладно, смотрим то что есть. А тем временем идет разборка с GS8306.

GS8306 после недельного простоя вообще не включается...
(ситуация усугубляется мертвыми светодиодами на лицевой панели, которые умерли практически при рождении - тяжело понять что происходит с ресивером)
Такая штука - не включение, уже проявлялась на старой прошивке и, каким-то образом, вылечилась через обновление через USB. Ну чтож, попробуем шить. 2 разные флэхи, разные версии ПО, 100500 вкл/выкл, ничего не шьется т.к. версия прошивки на флэхе либо равна версии в ресивере и нет смысла шить опять, либо, версия на флэхе меньше версии в ресивере - откат версии прошивки запрещен. Но, в результате мытарств, ресивер стал подавать признаки жизни - иногда включается сразу, иногда через 5-10-15 минут. Ок. Пользуюсь случаем и перепаиваю светодиоды (SMD тип 1206)  на лицевой панели по мануалу.
Подключаю к антенне, ресивер, на удивление, включается, находит каналы прямо на стандартных настройках. И после выключения ресивера за два дня пока не потерял список каналов. Шайтан.
При включении ресивера, иногда, изображение на экране становится фиолетовым как у соратников по несчастью

Возвращаемся к GS8305. Делаем очередной сброс до заводских и ... поиск регионов в мастере настройки уходит в бесконечность....

Пока шла борьба с ресивером, замечено, что сброс до заводских настроек как-то не сбрасывает список профилей антенн. Вообще не понятная для меня тема.
По умолчанию, в списке есть две записи Antenna1 и Antenna2. Во время настроек профиль Antenna1 был изменен. И после сброса до заводских в списке антенн стало три профиля: Antenna1, Antenna2 и Antenna1.

Продолжение следует...

среда, 17 февраля 2016 г.

Udacity

Android Development for Beginners






Во время просмотра курса наткнулся на забавный тест "Coffee Break Challenge"
По ходу теста, после правильного ответа, вам дают подсказку, которая отображается в правом углу страницы, например: Clue 1 - who.
При первом прохождении я как-то не обратил на них внимание, не ожидал их увидеть в том месте и был увлечен выполнением задания. Но, как оказалось, они важны и помогают ответить на последний вопрос. Карамба!!!
Что делать? Повторный проход теста подхватывает мои ответы и больше не дает подсказок.
Девушка-ведущая честно предупредила, что читерство не пройдет и ее не удастся обмануть.
Но как же так? Попробуем...
Первым делом чищу cookies. Не помогает. Вероятно ответы на вопросы сохраняются в профиле тестируемого. Ну что ж... Создаем второй профиль и проходим тест.... Профит.

Итак, для тех кто вдруг не увидит подсказки во время прохождения, ответы:
Clue 1 - who
Clue 2 - is
Clue 3 - the
Clue 4 - production
Clue 5 - lead
Clue 6 - look
Clue 7 - on
Clue 8 - the
Clue 9 - materials
Clue 10 - webpage

вторник, 29 июля 2014 г.

Бабушкин рецепт для управления режимом запуска экземпляра Mapinfo


Случается, что из старых сундуков извлекаются интересные вещи. Вот и сегодня так получилось. Все началось с простого вопроса на форуме: "Почему-то на одном компьютере TAB-файлы по двойному щелчку в проводнике Windows открываются в новом экземпляре Mapinfo, а на на другом компьютере - в запущенном." Иными словами, либо активируется имеющийся экземпляр приложения Mapinfo, либо активируется существующий.

Чуток покопавшись в закоулках памяти и интернета, нашел ответ на поставленный вопрос. Все дело в настройках DDE (Dynamic Data Exchange) для ассоциированных с Mapinfo типов файлов.

В обычных условиях, в реестре Windows, для tab-файла и wor-файла присутствует раздел DDEExec. При наличии этого раздела, при попытке запуска соответствующего файла, Windows пытается связаться с запущенным приложением и, если оно обнаружено, ему передается команда на обработку файла.  
Для изменения поведения при открытии файлов, достаточно просто удалить или переименовать раздел ddeexecute. Все. 

P.S. Раздел ddeexecute может присутствовать для прочих типов файлов, следовательно можно аналогично регулировать режимы запуска ассоциированных с ними приложений.

пятница, 4 апреля 2014 г.

Откровение...

Всему свое время... Тихим вечером, просматривая новости, форумы, ответы, слово за слово, попалась короткая фраза про файл проекций Mapinfo (Mapinfow.prj) и документацию. Зацепило. Сколько раз я сталкивался с проекциями, видел их описания в виде множества циферок и в разных вариациях. Как-то даже пытался углубиться в понимание магических циферок, но дальше использования готовых определений проекций, найденных в интернете, или "выдернутых" из каких-то рабочих таблиц, дело не пошло. И вдруг...
Действительно, в документации Mapinfo есть все.

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

P.S. Никак не мог понять, откуда это "всему свое время"? Сколько раз замечал, что некая задача решается к определенному времени, независимо от прикладываемых усилий. Какие-то идеи приходят в голову спустя некоторое время, хотя вроде уже и не думаешь о теме. Может быть вот это ответ:

Всему есть свое время,
    и для каждого дела под небом есть свой час:
2         время рождаться[a] и время умирать;
        время сажать и время искоренять;
3         время убивать и время исцелять;
        время разрушать и время строить;
4         время плакать и время смеяться;
        время скорбеть и время танцевать;
5         время раскидывать камни и время их собирать;
        время обнимать и время воздерживаться от объятий;
6         время искать и время терять;
        время хранить и время выбрасывать;
7         время рвать и время сшивать;
        время молчать и время говорить;
8         время любить и время ненавидеть;
        время для войны и время для мира.

воскресенье, 15 декабря 2013 г.

Невероятно, но факт...

Вдруг обнаружил, что в Mapinfo 9.5, при использовании Windows 7 x64, команда  Mapbasic Timer() возвращает 0, всегда...

понедельник, 25 ноября 2013 г.

Советы шеф-повара: обновление данных в таблицах

Основная ценность, при работе практически с любыми программами, это данные. У программы, занимающейся работой с данными, должны присутствовать механизмы ввода, редактирования, сохранения данных.
В Mapinfo данные хранятся в таблицах и могут содержать две составляющие: графические и семантические данные. Со стороны Mapinfo, каждая таблица представляет собой нечто целое, содержащее некоторые записи, у каждой записи обязательно есть минимум одно семантическое поле. Со стороны файловой системы, таблица Mapinfo состоит из нескольких файлов, в каждом из которых содержится какая-то информация: семантика, графика, служебная информация, индексные файлы.
Сегодня я захотел написать о редактировании данных, так как это неотъемлемая часть процесса подготовки картографического материала. Ко всем прочему, в форумах регулярно возникают вопросы, связанные с "а как...?"

Я бы разделил возможности по редактированию на три группы:
1. ручное редактирование
2. полуавтоматизированное редактирование
3. автоматизированное редактирование

1. Ручное редактирование.
Дешево, надежно и практично. Графические объекты редактируются в окне карты, семантические поля - в окне списка или в окне информации. Хотел бы обратить внимание, что при редактировании таблиц, имеющих графические объекты (Mappable), через окно списка можно создавать записи без графических объектов. Это делается простым добавлением новой записи в окне списка. В последующем, прицепить к таким записям графические объекты, проблематично для неподготовленных пользователей. Если в такой таблице нужно добавить новый графический объект, но необходимо открыть эту таблицу в окне карты и нарисовать нужный графический объект.

2. Полуавтоматизированное редактирование.
Под полуавтоматизированным методом я понимаю редактирование с использованием
окна Mapbasic, построителя запросов и прочих штатных встроенных инструментов Mapinfo.
Для полноценного использования такого метода, на мой взгляд, нужны знания языка Mapbasic. Сложности в нем нет, но есть особенности версий, есть особенности Mapinfo, есть некоторые ограничения на использование Mapbasic в одноименном окне Mapinfo. Как я уже упоминал в ранних постах, документация Mapinfo и Mapbasic на очень хорошем уровне, и даже самостоятельное изучение не вызовет проблем.
В качестве живого примера полуавтоматизированного обновления приведу простой пример. Возникла элементарная и показательная задача по замене двойных кавычек на одинарные в поле таблицы.Хоть Mapbasic и довольно развитый язык, но, в основном, он содержит базовые(элементарные) функции. И строковой функции "ЗаменитьПодстроку" в нем нет. Зато есть огромное поле для фантазий по решению задачи с использованием ограниченного набора инструментов. Решение простое :-). Пара команд:

select * from SrcTable where InStr(1, SrcField, SrcSubstring) > 0 into TmpTable noselect

update TmpTable set SrcField = Mid$(SrcField, 1, InStr(1, SrcField, SrcSubstring) - 1) + NewSubString + Mid$(SrcField, InStr(1, SrcField, SrcSubstring) +Len(SrcSubstring) , 254)

Выполняем эту пару два раза получаем решенную задачу...

Первая команда select дает нам выборку записей исходной таблицы, в исходном поле которой есть требуемая для замены подстрока (в нашем случае - символ двойной кавычки ["]). В результате мы получаем запросную таблицу TmpTable. Теперь любые изменения в записях таблицы TmpTable автоматически записываются в соответствующие записи исходной таблицы SrcTable. Кто-то может спросить: а почему нельзя сразу написать update SrcTable ...?
Использование промежуточной таблицы обусловлено тем, что прямой update может вызвать ошибку, в случае если встретится запись, в которой в просматриваемом поле не искомой подстроки. Перехватывать ошибки в окне Mapbasic невозможно, поэтому используется промежуточная таблица.
  Вторая команда (update...) производит замену нашей SrcSubstring на NewSubString.
  Просто и быстро.
  Если надо произвести изменение графического объекта, то команда может выглядеть следующим образом:

update SrcTable set obj = ConvertToPLine(obj)
эта команда превратит все графические объекты в полилинии.

update SrcTable set obj = CreatePoint(x,y)
а эта команда создаст для каждой записи точечный объект, при условии что в таблице есть поля x и y с координатами.

3. Автоматизированное редактирование.
Под автоматизированным редактированием я понимаю использование специализированной программы на языке Mapbasic.
Это, пожалуй, универсальный метод, позволяющий реализовать все что душе угодно. С опытом, каждый для себя сможет сформулировать критерии, по которым можно принимать решение о выборе подхода, для решения вопроса о редактировании данных. Зачастую, написать пару команд в окне Mapbasic позволяет выполнить задачу быстрее, нежели подготовка самой простой программы на Mapbasic.
Простейшая программа для наших целей будет содержать всего две функции : обязательную main и пользовательскую, которая производит обработку строки.

sub main
  update TmpTable set SrcField = StringReplace(SrcField, SrcSubstring, NewSubString )
end sub

function StringReplace(byval aStr as string, byval aOldSub as string, byval aNewSub as string) as string
...
  StringReplace = ...
end function

Что мы имеем?
В коде присутствует обязательная для каждой программы Mapbasic sub main, в которой происходит обновление поля таблицы.
Функция StringReplace() производит обработку значения поля SrcField: заменяет все вхождения SrcSubstring на NewSubString.
Если нужна функция для обработки графических объектов, то ее объявление может иметь следующий вид

function ModifyObject(byval aObj as object) as object
...
  ModifyObject = ...
end function

В программе можно использовать все возможности Mapbasic. Остается откомпилировать текст программы при помощи компилятора Mapbasic и запускать ее на выполнение.

Вот, пожалуй, и все. Общая тема обозначена, все остальное - дело техники и опыта. Не бойтесь изучать, экспериментировать и думать.