Как прочитать из программы на G-коде системные дату и время?
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Как прочитать из программы на G-коде системные дату и время?
Возникла необходимость передать в программу обработки текущую (системную) дату. Скажем, в виде целого числа.
Есть ли возможность получить ее, не прибегая к средствам Python и т.п.?
Есть ли возможность получить ее, не прибегая к средствам Python и т.п.?
Чудес не бывает. Бывают фокусы.
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
можно попробовать через собственные M коды и HAL..
но, вообще-то, нужно больше подробностей
но, вообще-то, нужно больше подробностей
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
прибегая - без проблемСергей Саныч писал(а):не прибегая
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
В какой момент? Что есть "программа обработки"? УП, LinuxCNC, что-то ещё?Сергей Саныч писал(а):Возникла необходимость передать в программу обработки текущую (системную) дату.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 474
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
В УП, вероятно дату изготовления выжигать-гравировать.UAVpilot писал(а):В какой момент? Что есть "программа обработки"? УП, LinuxCNC, что-то ещё?
На питоне очень просто:
Код: Выделить всё
import datetime
def _time(self, *args):
t = float(datetime.datetime.now().strftime("%H%M%S"))
return t
def _date(self, *args):
d = float(datetime.datetime.now().strftime("%d%m%Y"))
return d
def _timedate(self, *args):
td = float(datetime.datetime.now().strftime("%H%M%S.%d%m%Y"))
return td
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
а если изжога от пресмыкающихся?D.L. писал(а):На питоне очень просто:
давай что то другоеСергей Саныч писал(а):не прибегая к средствам Python
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
Код: Выделить всё
#!/bin/bash
halcmd setp motion.analog-in-00 `date +%Y%m%d`
halcmd setp motion.analog-in-01 `date +%H%M%S`
exit 0
-
- Мастер
- Сообщения: 474
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
Отличное решение.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
G-код. В названии темы обозначено.UAVpilot писал(а): Что есть "программа обработки"? УП, LinuxCNC, что-то ещё?
Абсолютно верно. Гравировать. Дату и еще серийный номер.D.L. писал(а):В УП, вероятно дату изготовления выжигать-гравировать.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
но не обозначено в какой момент получить и как использовать.Сергей Саныч писал(а):G-код. В названии темы обозначено.
Можно воспользоваться фильтром:
Код: Выделить всё
#!/bin/sh
date +'(Production date: %d.%m.%Y)' | cat - $1
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- xenon-alien
- Почётный участник
- Сообщения: 4511
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 922
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
Прошу простить за офтоп, но от куда у вас всех знания по этим "секретным иероглифам" и их назначении/расшифровке/место пользования?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
Ты не поверишь - из документации.xenon-alien писал(а):Прошу простить за офтоп, но от куда у вас всех знания по этим "секретным иероглифам" и их назначении/расшифровке/место пользования?
"man date"
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- xenon-alien
- Почётный участник
- Сообщения: 4511
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 922
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
UAVpilot писал(а):Ты не поверишь - из документации.xenon-alien писал(а):Прошу простить за офтоп, но от куда у вас всех знания по этим "секретным иероглифам" и их назначении/расшифровке/место пользования?
"man date"
Та что в PDF, или онлайн? (а то у меня всё медленно идет)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
просто в консоли напиши
man date
Раньше изучение unix/linux начинали с команды "man", а сейчас сразу пытаются куда-нибудь мышой ткнуть - вот она, обратная сторона популярности...
man date
Раньше изучение unix/linux начинали с команды "man", а сейчас сразу пытаются куда-нибудь мышой ткнуть - вот она, обратная сторона популярности...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- xenon-alien
- Почётный участник
- Сообщения: 4511
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 922
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
UAVpilot писал(а):просто в консоли напиши
man date
Раньше изучение unix/linux начинали с команды "man", а сейчас сразу пытаются куда-нибудь мышой ткнуть - вот она, обратная сторона популярности...
Просто я начинал свою молодость владения ПК с MS-DOS, но и то только азы: как шастать по папкам, создавать удалять... Приметно гдето 10-20 строк команд, даже блокнот сохранился.
А вот unix/linux никогда не встречалась, вот и ифигиваю от знающих людей.
Есть где-то список на все команды "man"?
Так понимаю, что нужно ещё один комп для этого выделить, который будет "под рукой", а то все по полкам, или долго и нудно запускать. (эмуляторы не нравятся)
А вот unix/linux никогда не встречалась, вот и ифигиваю от знающих людей.
Есть где-то список на все команды "man"?
Так понимаю, что нужно ещё один комп для этого выделить, который будет "под рукой", а то все по полкам, или долго и нудно запускать. (эмуляторы не нравятся)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
если в консоли набрать "man man", то можно получить справку о команде man , а там где-то внизу есть отсылки к близким по смыслу командам, первая среди них - apropos:xenon-alien писал(а):Есть где-то список на все команды "man"?
Код: Выделить всё
$ apropos дата время
asctime (3) - преобразует дату и время в раздельном представлении или ASCII
asctime_r (3) - преобразует дату и время в раздельном представлении или ASCII
bootparam (7) - аргументы, передаваемые ядру Linux во время загрузки
clock (3) - вычисляет процессорное время
clock_nanosleep (2) - остановка работы процесса на точно выдержанное время с помощью определённых часов
ctime (3) - преобразует дату и время в раздельном представлении или ASCII
ctime_r (3) - преобразует дату и время в раздельном представлении или ASCII
ftime (3) - возвращает дату и время
getdate (3) - разделяет строку дата+время на отдельные части
getdate_err (3) - разделяет строку дата+время на отдельные части
getdate_r (3) - разделяет строку дата+время на отдельные части
gettimeofday (2) - получает/устанавливает время
gmtime (3) - преобразует дату и время в раздельном представлении или ASCII
gmtime_r (3) - преобразует дату и время в раздельном представлении или ASCII
localtime (3) - преобразует дату и время в раздельном представлении или ASCII
localtime_r (3) - преобразует дату и время в раздельном представлении или ASCII
mktime (3) - преобразует дату и время в раздельном представлении или ASCII
settimeofday (2) - получает/устанавливает время
stime (2) - устанавливает системное время
sysconf (3) - считывает информацию о настройках во время работы системы
time (1) - подсчитывает время выполнения простой команды или использования ресурсов
time (2) - получить время в секундах
udplite (7) - облегчённый протокол пользовательских датаграмм
utime (2) - изменить последнее время доступа и изменения к inode
utimes (2) - изменить последнее время доступа и изменения к inode
$
Зачем ещё один? Просто на имеющимся окошко открываешь и там читаешь. Или на другом десктопе, если на одном тесно - в Linux несколько виртуальных десктопов есть "из коробки".xenon-alien писал(а):Так понимаю, что нужно ещё один комп для этого выделить, который будет "под рукой", а то все по полкам, или долго и нудно запускать. (эмуляторы не нравятся)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 714
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
да man это типа хелпа в форточках. Хелп есть на все команды (=программы)
Вообще линукс это набор разных независимых серверов, запущенных поверх ядра. Ядро консольное.
Графика работает независимо от ядра. И картинку ты получаешь по факту через сеть, но граф. сервер запущен на том же компе. Хотя можно полноценную графику получить на другом компе, работая как на локальной машине.. кажется аналог "тонкий клиент" от ibm, хотя я не вдавался читать про это.
Нажми ctrl+alt+F1 - попадешь в первую консоль системы, запусти там что-то тяжелое и долгое.. Консоль занята расчетами, а тебе хочется посмотреть кино? не беда, жми ctrl+alt+f2 - вводи логин и пасс, и запускай там другую прогу, например mplayer (он умеет показывать видео без графической системы) - будет работать параллельно. Всегда можно переключится между консолями, 1-4 минуя графику. У меня на кедах на 7 консоли графика, то где я сейчас пишу это текст. Ну вот таким методом хал и подхватит любые данные из системы.
HAL тоже работает независимо от LCNC. Твои конфиги лишь дают стартовую конфигурацию станка. А править связки портов (к примеру) можно на лету из другого терминала, например подключившись с телефона через ssh во вай-фай.
зы: в терминале выполни "sudo init 3".
так как там будет скучно, советую поставить lynx (apt-get или как там.. у меня rpm-based дистр) и зайти на этот форум.
для возврата init 5, а лучше init 6
Вообще линукс это набор разных независимых серверов, запущенных поверх ядра. Ядро консольное.
Графика работает независимо от ядра. И картинку ты получаешь по факту через сеть, но граф. сервер запущен на том же компе. Хотя можно полноценную графику получить на другом компе, работая как на локальной машине.. кажется аналог "тонкий клиент" от ibm, хотя я не вдавался читать про это.
Нажми ctrl+alt+F1 - попадешь в первую консоль системы, запусти там что-то тяжелое и долгое.. Консоль занята расчетами, а тебе хочется посмотреть кино? не беда, жми ctrl+alt+f2 - вводи логин и пасс, и запускай там другую прогу, например mplayer (он умеет показывать видео без графической системы) - будет работать параллельно. Всегда можно переключится между консолями, 1-4 минуя графику. У меня на кедах на 7 консоли графика, то где я сейчас пишу это текст. Ну вот таким методом хал и подхватит любые данные из системы.
HAL тоже работает независимо от LCNC. Твои конфиги лишь дают стартовую конфигурацию станка. А править связки портов (к примеру) можно на лету из другого терминала, например подключившись с телефона через ssh во вай-фай.
зы: в терминале выполни "sudo init 3".
так как там будет скучно, советую поставить lynx (apt-get или как там.. у меня rpm-based дистр) и зайти на этот форум.
для возврата init 5, а лучше init 6
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
команда init нынче deprecated.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
А можно поподробнее? Что там за баг такой, что сейчас по ночам работает, а после исправления может забастовать?UAVpilot писал(а):Кстати, с вариантом motion.analog-in-* надо быть поаккуратнее с новыми версиями, а то как-нибудь исправят небольшой баг и работать перестанет по ночам и утрам...
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Как прочитать из программы на G-коде системные дату и вр
Как-нибудь ночью получится что-то вроде
setp motion.analog-in-01 012345
но в реальности пин будет иметь значение 5349, ибо ведущий ноль означает, что число восьмеричное.
Сейчас преобразование строки в число делается "в рукопашную" и там отслеживаются десятичные числа и шестнадцатеричные (0x), а про восьмеричные Jeff Epler то ли забыл, то ли не знал. Но остаётся ненулевая вероятность, что когда-нибудь восьмеричные либо добавят, либо просто "ручное" преобразование заменят стандартной функцией scanf...
setp motion.analog-in-01 012345
но в реальности пин будет иметь значение 5349, ибо ведущий ноль означает, что число восьмеричное.
Сейчас преобразование строки в число делается "в рукопашную" и там отслеживаются десятичные числа и шестнадцатеричные (0x), а про восьмеричные Jeff Epler то ли забыл, то ли не знал. Но остаётся ненулевая вероятность, что когда-нибудь восьмеричные либо добавят, либо просто "ручное" преобразование заменят стандартной функцией scanf...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...