Jump to content

LCD4Linux w AsusWRT / Merlin i ramka samsung SPF-72H

Rate this topic


Guest house
Go to solution Solved by Guest kamil2234,

Recommended Posts

Guest kamil2234

Czy ktoś z kolegów ma może pakiet ipkg lcd4linux w wersji  współracują z ramką  samsung SPF-72H dla routera RT-AC68U (architektura armv7)?  

Ewentualnie prośba o naprawadzenie jak można skompilować sobie samemu pakiet  ipkg dla routera AC68U z lcd4linux bez wkomilowywania go w całe firmware.

Obecnie używam optware i chciałbym aby tak pozostało.

Link to post
Share on other sites
  • Administrator

Ciężko będzie, jedyne co znalazłem to 

https://files.ryzhov-al.ru/Routers/lcd4linux-arm/

ale nie jestem pewien czy to czasem nie dla chroot'a. Poproś kolegę shibby @tutaj, aby skompilował pakiet i umieścił w swoim

http://tomato.groov.pl/repo-arm/

w entware pakiet oczywiście jest : http://qnapware.zyxmon.org/binaries-armv7/Packages.html

Link to post
Share on other sites
  • Solution
Guest kamil2234

dzięki za odpowiedź. Udało mi się znaleść inne rozwiązanie wrzucenia porządanej zawartości na moją ramkę w formie jpg. 

 

Żródło z https://github.com/Gekkio/samsung-photo-frame-ctrl

 

Dodałem swoje ramki.

#!/usr/bin/env python

import os
import struct
import sys
import time
import usb.core
from usb.util import *

vendorId = 0x04e8
models = {'SPF-72H': (0x200a, 0x200b),'SPF-85V': (0x201a, 0x201f),'SPF-87H': (0x2033, 0x2034), 'SPF-107H': (0x2027, 0x2028)  }

chunkSize = 0x4000
bufferSize = 0x20000

def expect(result, verifyList):
  resultList = result.tolist()
  if resultList != verifyList:
    print >> sys.stderr, "Warning: Expected " + str(verifyList) + " but got " + str(resultList)

def storageToDisplay(dev):
  print "Setting device to display mode"
  try:
    dev.ctrl_transfer(CTRL_TYPE_STANDARD | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x06, 0xfe, 0xfe, 254)
  except usb.core.USBError as e:
    errorStr = str(e)
    if errorStr != 'No such device (it may have been disconnected)':
      raise e

def displayModeSetup(dev):
  print "Sending setup commands to device"  result = dev.ctrl_transfer(CTRL_TYPE_VENDOR | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x04, 0x00, 0x00, 1)
  expect(result, [ 0x03 ])
#  result = dev.ctrl_transfer(CTRL_TYPE_VENDOR | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x01, 0x00, 0x00, 2)
#  expect(result, [ 0x09, 0x04 ])
#  result = dev.ctrl_transfer(CTRL_TYPE_VENDOR | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x02, 0x00, 0x00, 1)
#  expect(result, [ 0x46 ])

def paddedBytes(buf, size):
  diff = size - len(buf)
  return buf + bytes(b'\x00') * diff

def chunkyWrite(dev, buf):
  pos = 0
  while pos < bufferSize:
    dev.write(0x02, buf[pos:pos+chunkSize])
    pos += chunkSize

def writeImage(dev):
#  result = dev.ctrl_transfer(CTRL_TYPE_STANDARD | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x06, 0x0300, 0x00, 255)
#  expect(result, [ 0x04, 0x03, 0x09, 0x04 ])

#  result = dev.ctrl_transfer(CTRL_TYPE_STANDARD | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x06, 0x0301, 0x0409, 255)

  if len(sys.argv) < 2 or sys.argv[1] == "-":
    content = sys.stdin.read()
  else:
    f = open(sys.argv[1])
    content = f.read()
    f.close()

  size = struct.pack('I', len(content))
  header = b'\xa5\x5a\x09\x04' + size + b'\x46\x00\x00\x00'

  content = header + content

  pos = 0
  while pos < len(content):
    buf = paddedBytes(content[pos:pos+bufferSize], bufferSize)
    chunkyWrite(dev, buf)
    pos += bufferSize

  
#  result = dev.ctrl_transfer(CTRL_TYPE_VENDOR | CTRL_IN | CTRL_RECIPIENT_DEVICE, 0x06, 0x00, 0x00, 2)
#  expect(result, [ 0x00, 0x00 ])

found = False

for k, v in models.iteritems():
  dev = usb.core.find(idVendor=vendorId, idProduct=v[0])
  if dev:
    print "Found " + k + " in storage mode"
    storageToDisplay(dev)
    time.sleep(1)
    dev = usb.core.find(idVendor=vendorId, idProduct=v[1])
    found = True
  if not dev:
    dev = usb.core.find(idVendor=vendorId, idProduct=v[1])
  if dev:
    print "Found " + k + " in display mode"
    dev.set_configuration()
    displayModeSetup(dev)
    writeImage(dev)
    found = True

if not found:
  print >> sys.stderr, "No supported devices found"
  sys.exit(-1)

Niestety ten skrypt poza wrzucaniem jpg niczego nie oferuje.   Zawsze można jedank samemu przygotować zdjęcie wrzucając tam np. parametry routera i wywoływać je w pętli.

 

I cenna uwaga - Zdjęcie musi być dokładnie w formacie posiadanej ramki - np 800x600 lub 800x480 itd.. Samo się nie przeskaluje!!!

Link to post
Share on other sites
  • Administrator

Temat zamykam jako rozwiązany.

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, please see ours Guidelines and Privacy Policy.