Category: музыка

Category was added automatically. Read all entries about "музыка".

Автоматическое включение медиаплеера gmini MagicBox HD1200

Всем хорош плеер, но - 40мм вентилятор шумит сильно, пока он работает. И поэтому на ночь его приходится выключать, а утром, как заведено, включать забываешь.
Захотелось чтоб он сам по утрам включался. Внутри собсно линукс, но все это добро обесточено. 3 вольта подается только на платку с IR приемником. И только после получения сигнала с пульта (или нажатия кнопочки на морде), запитывается вся остальная лабуда.
Решение - эмулировать нажатие кнопки на морде. Там тупо замыкание сигнальной линии на землю.
Помогла в этом, самая дешевенькая 3 вольтовая ардуинка.
Подпаиваем проводок (к счастью на платке уже есть вывод подцепеленный к резистору и светодиоду) между резистором и светодиодом. Резистор защищает выход от катастрофической земли, если нажать намордную кнопку, пока на выводе меги единица.


Ну а дальше всего три проводка ведущие от ардуинки к платке с намордной кнопкой



Причем если вечером зверю захочется выключиться (а вы смотрите фильм и против этого) то предусмотрен выключатель, впаянный в разрыв провода ведущего к кнопочке. Тобишь разрешаем (или не разрешаем) ардуике нажимать на кнопочку.

Так оно уже подпаяно и супер-надежно закреплено внутри корпуса


Ну и последнее - программа вдуваемая в ардуинку. Проста до гениальности.
После подачи питания - ждем 12 часов, после чего выполняем пару полусекундных нажатий (эмуляций) на кнопочку с перерывом между нажатиями в 5 секунд. Первое нажатие нужно плееру чтобы очнуться ото сна, а второе его стимулирует к выключению. При старте же агрегата, такое двойное нажатие ни на что не влияет, т.к. за 5 сек. линукс не успевает загрузиться и начать реагировать на нажатие как на выключение.
Собственно код - слегка модифицированный Blink из примеров ардуины.


// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)  
}

// the loop routine runs over and over again forever:
void loop() {
  delay(43200000); // 12 hours
  
  digitalWrite(led, LOW);
  delay(500);
  digitalWrite(led, HIGH);
  
  delay(5000);
  
  digitalWrite(led, LOW);
  delay(500);
  digitalWrite(led, HIGH);  
}

Дочерняя сущность типа XYZ не может обновляться независимо от родительской

Недопустимый набор ChangeSet: Дочерняя сущность типа XYZ не может обновляться независимо от родительской.
Invalid ChangeSet : Child entity of Type XYZ cannot be updated independent of its parent.

Это не ошибка. Это песня какая то!
Убил три часа! Жестко гуглил интернет, бился головой об стену - никакого эффекта, хоть убейся.
В итоге дошло.

RIA сервис возвращает сущности, которые имеют дочерние сущности (атрибут свойства [Composition] ).
И если одну и ту же дочернюю сущность разделяют две родительские сущности, то при попытке удаления одной из родительских сущностей мы получаем данную ошибку. Так как происходит попытка удаления вместе с первой родительской сущностью ее дочерней сущности, то в этом случае вторая родительская сущность осталась бы без дочерней. От того и ругань идет - "Дочерняя сущность типа XYZ не может обновляться независимо от родительской". Это в смысле - нельзя удалить дочернюю не удалив родительскую.
Выход - не позволять разделять дочерние сущности между родительскими. Заботиться об однозначном отношении детей только одному родителю.