Показать сообщение отдельно
Старый 27.08.2014, 22:16   #11
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: timstamp (не unix_time)

Цитата
Сообщение от tvf Посмотреть сообщение
Главное, что более поздему событию должно соответствовать большее значение переменной. Тогда операции сравнения будут работать корректно. Для применения в устройствах типа расписание или график вполне достаточно.
Опаньки! Обломинго!!!
В общем, операции сравнения корректно работают, если обе даты в формате ts1984 принадлежат диапазону до 31.12.2015 года. Или обе - случились не раньше 1.01.2016 года.
Причина - блок CMP рассматривает старший бит (long) как знак. Соответственно, операция сравнения работает корректно только тогда, когда знак у обоих "таймштампов" одинаковый. Если же знак разный, то дата по 2015 год будет считаться более "поздней" (ибо число с ней считатется положительным), нежели дата, случившаяся не раньше 2016 года (число с ней считается отрицательным).

ВОПРОС К СООБЩЕСТВУ - как будем поступать?
Есть два варианта:
1) инвертировать старший бит в значении ts1984(long) при упаковке и распаковке - тогда даты не будут путаться в любом случае ("отрицателным" станет диапазон дат до 2015 года, положительным - начиная с 2016). Но - это будет уже третья версия макросов. Т.к. математика с этим форматом "не работает" - это, пожалуй, будет лучший выход.
2) пишем макрос, в котором определяем знаки используемых для сравнения чисел (значение старшего бита), и, если они разные - через элементы MUX(long) меняем местами числа на входе блока CMP. Решение спорное, зато не меняет последнюю версию макроса...
Какой вараинт выбрать???



P.S.
Ребят, у меня при загрузке макроса вместо него тупо вставляется "простой" квадратик вместо блока-макроса с выводами - приходится его раскрывать и копировать блок макроса в проект через Ctrl-C/Ctrl-V...
Это у меня лоджик так глючит - или проблема у всех, и стоит переписать макрос с нуля, чтоб уйти от проблемы (заодно "убрав" ошибку со сравнением двух меток таймштампов)?
ailcat вне форума   Ответить с цитированием