Re: управление RGB лентами
Добавлено: Чт апр 05, 2018 11:29 am
directman66 спасибо, на сцены получилось разместить. Только почему то встало вот так:
Если мне не изменяет память Sweet Home 3D называлась программаА в чем рендер рисовали?
Установили? Будем код переносить с python на php? Нет никакого смысла шить альтернативные прошивки. При наличии готового протокола управления.
Код: Выделить всё
$ip = "255.255.255.255";
$port = 48899;
$str = 'HF-A11ASSISTHREAD';
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $str, strlen($str), 0, $ip, $port);
socket_recvfrom($sock, $buf, 20, 0, $ip, $port);
echo "Messagge : < $buf > , $ip : $port <br>";
socket_close($sock);
< 192.168.1.82,A020A61 > , 192.168.1.82 : 48899
Код: Выделить всё
def setCustomPattern(self, rgb_list, speed, transition_type):
# truncate if more than 16
if len(rgb_list) > 16:
print "too many colors, truncating list"
del rgb_list[16:]
# quit if too few
if len(rgb_list) == 0:
print "no colors, aborting"
return
msg = bytearray()
first_color = True
for rgb in rgb_list:
if first_color:
lead_byte = 0x51
first_color = False
else:
lead_byte = 0
r,g,b = rgb
msg.extend(bytearray([lead_byte, r,g,b]))
# pad out empty slots
if len(rgb_list) != 16:
for i in range(16-len(rgb_list)):
msg.extend(bytearray([0, 1, 2, 3]))
msg.append(0x00)
msg.append(utils.speedToDelay(speed))
if transition_type =="gradual":
msg.append(0x3a)
elif transition_type =="jump":
msg.append(0x3b)
elif transition_type =="strobe":
msg.append(0x3c)
else:
#unknown transition string: using 'gradual'
msg.append(0x3a)
msg.append(0xff)
msg.append(0x0f)
self.__write(msg)
def __writeRaw(self, bytes):
self.socket.send(bytes)
def __write(self, bytes):
# calculate checksum of byte array and add to end
csum = sum(bytes) & 0xFF
bytes.append(csum)
#print "-------------",utils.dump_bytes(bytes)
self.__writeRaw(bytes)
#time.sleep(.4)
Извините,просто в питоне совсем ни гу-гу.На апельсине все заработало. На виндеdirectman66 писал(а): Пн апр 16, 2018 12:04 pm Все адреса в коде - адреса контроллера. Вообще я его запрашиваю из переменной, которая заполняется линукс командой arp.
Под windows python код должен работать аналогично. Проверьте, чтобы python был доступен из любого места и попробуйте вызвать скрипт из командной строки или far.
зыж Плагин mi-light не подошел. Видимо на его основе можно будет сделать аналогичный для этого контроллера. Стоит в далеких планах.
C:\WINDOWS\system32>python /_majordomo/htdocs/flux_led.py 192.168.1.115 -c 18,52,221
File "/_majordomo/htdocs/flux_led.py", line 118
print ''.join('{:02x} '.format(x) for x in bytearray(bytes))
^
SyntaxError: invalid syntax
Попробовал.Начало выдавать ошибки на каждое print в файле и если только print комментировать-на все ближайшие строки кода дает ошибку. Дошел до 1189 строки и бросил,ибо получается вырезанным куча кода.