Rosa Linux. Ну не шмогла, извини (с)

Попалась в очередной раз на глаза статья о Rosa Linux. Решил дай думаю попробую со скуки. Но что-то пошло не так (с).

  • Записанный на флешку образ при помощи UltraIso  образ скачанный с сайта при попытке запуститься ругнулся что не видит установочных файлов
  • Ну ладно думаю, может нужно использовать их «фирменный» ImageWriter для создания флешки? Однако он в никакую отказался записывать 1.9 гиговый образ на 2 Гиговую флешку.
  • Из под винды установщика в образе не нашлось.

Управление питанием при помощи Arduino. Часть третья.

В продолжение части 1 и части 2. выкладываю электрическую схему по подключению. Любезно предоставлено Фёдоровым Александром, далее текст и схемы — его.

Для осуществления развязки по питанию блока релле и основной платы Arduino, а также возможности прошивки через USB без включения внешнего питания рекомендуется подача рабочего питания +5V во внутреннюю линию 5V после преобразователя IC1 через внешний диод (чтобы при питании от USB питание не попадало на блок релле и внешний блок питания). Блок релле также желательно подключать через диод для предотвращения проникновения обратных бросков с блока релле в цепь питания Arduino, при этом перемычка питания блока релле должны быть снята. Небольшое занижение питания за счет диодного перехода до 4.5V не влияет на работу блоков Arduino т.к. сам CPU этих плат запитывается через преобразователь «3.3V» (IC6) имеющий низки параметр минимального падения напряжения около 0.28V, что позволяет запитывать плату даже от 3.7 V

 

 

 

 

Запитка обмоток блока релле непосредственно с контактов питания Arduino не рекомендуется, т.к. встроенные преобразователи напряжения слаботочные (ток не более 1А) и их с натяжкой хватает для запитки самих плат Arduino! Также в цепи штатного разъема под внешнее питание присутствует слаботочный защитный диод D1, который также не расчитан на большие токи!

Конвертируем дату в текстовом поле таблицы в формат даты MySQl

Дано: таблица вида

mysql> select * from config_common where nameparam like 'dtc-3-%-1' and valueparam<>"" limit 10;
+--------+--------------+------------+
| id     | nameparam    | valueparam |
+--------+--------------+------------+
|   3632 | dtc-3-1709-1 | 15.01.2016 |
|   4147 | dtc-3-3513-1 | 01.03.2016 |
| 343653 | dtc-3-5156-1 | 16.09.2016 |
| 343519 | dtc-3-5143-1 | 16.09.2016 |
| 343417 | dtc-3-5090-1 | 16.09.2016 |
| 342901 | dtc-3-4951-1 | 16.09.2016 |
| 342878 | dtc-3-4895-1 | 16.09.2016 |
| 342832 | dtc-3-4664-1 | 16.09.2016 |
| 342786 | dtc-3-4160-1 | 16.09.2016 |
| 342513 | dtc-3-4395-1 | 16.09.2016 |
+--------+--------------+------------+
10 rows in set (0.00 sec)

Как видим поле valueparam в текстовом виде, да еще не в формате MySQL. А выборка нужна именно по диапазону дат. Решение кроется в использовании функции STR_TO_DATE:

mysql> select *,CONVERT(STR_TO_DATE(valueparam,"%d.%m.%Y"),date) as dt from config_common where nameparam like 'dtc-3-%-1' and valueparam<>"" and CONVERT(STR_TO_DATE(valueparam,"%d.%m.%Y"),date) between "2016-12-01" and "2016-12-31" limit 10;
+--------+--------------+------------+------------+
| id     | nameparam    | valueparam | dt         |
+--------+--------------+------------+------------+
| 421968 | dtc-3-4059-1 | 13.12.2016 | 2016-12-13 |
| 421943 | dtc-3-4452-1 | 13.12.2016 | 2016-12-13 |
| 421917 | dtc-3-901-1  | 13.12.2016 | 2016-12-13 |
| 421896 | dtc-3-3224-1 | 13.12.2016 | 2016-12-13 |
| 421870 | dtc-3-1624-1 | 13.12.2016 | 2016-12-13 |
| 421847 | dtc-3-3173-1 | 13.12.2016 | 2016-12-13 |
| 421824 | dtc-3-5655-1 | 13.12.2016 | 2016-12-13 |
| 421801 | dtc-3-845-1  | 13.12.2016 | 2016-12-13 |
| 421778 | dtc-3-3994-1 | 13.12.2016 | 2016-12-13 |
| 421743 | dtc-3-871-1  | 13.12.2016 | 2016-12-13 |
+--------+--------------+------------+------------+
10 rows in set (0.03 sec)

Python проверка существования ключа

Для того чтобы подобный код:

if child_of_root.attrib["BlockType"]=="domain":

не выдавал ошибок при отсутствии ключа, лучше пользоваться такой конструкцией:

if "blockType" in child_of_root.attrib:
  if child_of_root.attrib["BlockType"]=="domain":

Жизнь замечательных грибов