Вы правильно поняли, именно так! Сейчас испытаю - только там нем миллисекунд. Там секунды с 01.10.1970. В JS я как раз и не знаю.
если там секунды, то до 2136 года хватит uint32_t. Обрезай до 4 байт смело, будет стандартный time_t Unix Time. Потом библиотекой time.h преобразовывай куда хошь
Спасибо, это для вывода в вэб морду, а мой сотрудник будет на паскале (в котором я олух) будет доставать и класть в базу регистраций. Моя работа: прочитать из объектов Modbus RTU через UC7101Lx; передать по ETHRNET на Debian, где всё моё хозяйство в том числе и MySQL и разложить в таблицу. А напарник имея доступ к моему MySQL брать данные и уже в своей базе по Windows делать регистрацию: графики, задания, управление... через мою базу MySQL.
К сожалению не работает Вообще-то работает, но не время из MySQL, а локальное время локального компьютера. Код (Javascript): var tm = Date(pks_dbs.timestamp); document.getElementById("pks_DateTime").innerHTML = tm; в принципе я получаю время по JSON в виде числа (условно int64 из MySQL) от сервера. И моё удивление: останавливаю на сервере программу, а часики на загруженной странице продолжают тикать Я конечно понимаю, что JS на загруженной странице обращается к серверу где простой PHP: PHP: <?php $cmd = "cat ../ramdisk/pks_ar_e2.json"; $contents = shell_exec($cmd); echo $contents; ?> который всего-то выводит содержимое pks_ar_e2.json и его никто не изменяет, потому как всё остановлено и он не изменяется. То стало быть функция Date не работает так, как надо. Вот статическое содержимое файла JSON: Код (Text): { "timestamp" : "1649949258", "u1pow" : "237.5", "cntpow1" : "182527", "u2pow" : "0.0", "cntpow2" : "0", "TmpSCS" : "0", "TimeWork" : "55", "TimeWorkShield" : "54", "Iout" : "50.9", "Uout" : "15.7", "Usp" : "0.00", "Upp" : "0.00", "ModeCTL_SCS" : "0", "ModeCTL_SCSset" : "0", "setIout" : "72.5", "setUsp" : "-1.00", "setUpp" : "0.00", "setUout" : "0.0", "TS1_pks_coil_door" : "255", "TS2_pks_coil_remotecontrol" : "0", "TS3_pks_coil_fault" : "255", "TS4_pks_coil_breakage" : "0", "TS5_pks_coil_reserveenable" : "255", "TU1_pks_coil_remote_on" : "0", "TS6_pks_coil_reservepower" : "0", "TS7_pks_coil_nopower" : "0", "setPErr" : "0.00", "connected" : "255" } А надо переваривать строчку "timestamp" : "1649949258" и только... не обращая внимания на локальное время. Вот такая вот беда. а часики на ВЭБ морде тикают и совпадают с моим компом: Thu Apr 14 2022 18:35:32 GMT+0300 (Москва, стандартное время) Я в JS туп как пятка - это не Си.
Я так понимаю, что JS браузера не умеет такого? И надо беспокоиться об этом на стороне сервера на стадии формирования JSON?
смотри что пишут по Date в JS то есть вызывать надо я думаю так Код (Javascript): var tm = new Date(pks_dbs.timestamp); потому как без new он вернет текущую дату время строкой, что он и делает. А вот pks_dbs.timestamp должно быть числом, строку не поймет. Щас потестить негде, до компа доберусь можно будет посмотреть
Пока что пишет Invalid Date по ходу надо провести разборку типа: Код (Javascript): function timeConverter(UNIX_timestamp){ var a = new Date(UNIX_timestamp); var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time; } ...то же где-то стырил... сейчас пропилю и залью.
Вот: NaN undefined NaN NaN:NaN:NaN по ходу функция не понимает, что это число? Воспринимает как строку что ли? Это не Си и тут нет типов данных, и указанную выше функцию вызываю: Код (Javascript): var tm = new Date(pks_dbs.timestamp); document.getElementById("pks_DateTime").innerHTML = timeConverter(tm); блин, надо привести к числу наверное... ведь var он в принципе никто? ЗЫ: надо где-то надыбать небольшую шпаргалку к JS
Ну вот при танцах с бубном результат: 14 Apr 2022 21:22:29 функция преобразования: Код (Javascript): function timeConverter(UNIX_timestamp){ var a = new Date(UNIX_timestamp); var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; var year = a.getFullYear(); var month = months[a.getMonth()]; var date = a.getDate(); var hour = a.getHours(); var min = a.getMinutes(); var sec = a.getSeconds(); var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ; return time; } та, что была выше. Вот её применение: Код (Javascript): document.getElementById("pks_DateTime").innerHTML = timeConverter(parseInt(pks_dbs.timestamp, 10) * 1000); Спасибо БРАТАН!!!
Сегодня пришел с работы, достал ноут, подоткнул в USB HUB тестовую Мегу2560, думаю сейчас поправлю код, скомпилирую, залью. Сегодня в голове все созрело, как написать, пришел, написал, поправил ошибки типа "точки с запятой", неопределенные переменные, скомпилировалось... залил... Мигает, но не так как ожидалось. Причем совсем не так... Туплю в код, в коде все вроде норм, добавляю выводы в сериал, открываю монитор порта. Все выводится, причем все так как нужно, а мигает не так. Успел поправить код, НО не может оно так мигать... И тут начинаю понимать, что заливаю в другой порт, он же выводит в сериал, и Мега другая, которая лежит под столом и тестируется на Modbus и Ethernet уже как недели две. Там все работает, и код работает, но мигает то другая Мега, в которую ничего не заливается... В общем всем внимательности Причем трезв как стекло, поехал потом в гараж менять колеса на машине жены.
Может последствие от ... "заливаний" в молодости. Не ??? Мой дядька по этой причине временами на трезвую голову "блуждал в трех соснах". А мастер был первейший.
Да нет, раз вывод в монитор идет, и верификация проходит, значит - все в порядке, код залился правильно. Просто с USB хабом, воткнул один провод в комп, и все сразу заработало, забыл, что та Мега осталась подключенной. Да и порт здесь один, на работе другой, если просто в ноут воткнуть плату - третий.
Это да, раньше как то легче код писался и ничего не отвлекало. Наушники с музыкой оденешь, чтобы внешние раздражители замаскировать, и вперед. И нет дела до того, что вокруг творится. А сейчас сложнее стало сконцентрироваться и забыть о всем окружающем. И параллельных дел много. А про возраст, мне мой начальник раньше, с самоиронией говорил, "Вот не зря на пенсию отправляют!". Он военный пенсионер был, чуть за 60.
Слушай а вот как незаметно можно подключить и не заметить ардуину к ноутбуку? У тебя же ноут? Там обычно два-три порта максимум четыре как у меня на Dell. У меня и к стационарному ящику видно что подключено хотя там 10 портов 6 из них заняты принтерами сканерами и прочими wifi с флешками
Умеючи - легко У меня 7 портовый USB хаб c питанием. Помимо 7 портов USB 3.0 еще два зарядных USB порта на 2,4А. Фото из интернета: У меня такой же, и дома, и на работе. Очень удобный, главное что он с питанием и мощным БП. Ноут тоже Dell, рабочий, я с ним везде. Пришел на работу, воткнул 3 разъема: USB, HDMI и питание. Все подключено, мышь, жесткий диск, наушники гарнитуры, зарядники, монитор. Работаем. И так же дома, но дома еще и программатор AVR-ISP воткнут, переходник USB-RS485, Мега с Ethernet шилдом и RS485 в пластиковом корпусе. Провод от хаба к ноуту метровый, ухожу в древний ноут перетыкаю, так всегда можно к платам по RDP подключиться, если нужно что то проверить, или поменять. Вот и пришел, подключил хаб к ноуту, воткнул в свободный разъем Мегу из сумки, таскаю с собой для проверки и отладки в свободное время. Ну и конечно не посмотрел, что еще одна мега подключена. Главное код-то заливается, в порт все выводится, только мега странно себя ведет и мигает не так как нужно .