ByteArray to IntegerList

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@Pf@nne: Wäre es da nicht sinnvoller die fbtft-Bibliothek zu erweitern als etwas in Python zu schreiben?
Pf@nne
User
Beiträge: 43
Registriert: Donnerstag 18. April 2013, 16:50

Wäre es da nicht sinnvoller die fbtft-Bibliothek zu erweitern als etwas in Python zu schreiben?
Auf jeden Fall, die steht komplett zur Verfügung.
Ich hatte jetzt ertmal Python genutzt um die Grundfunktionen des RA8875 zu erkunden.....

Ich hatte in die fbtft schon mal reingeschaut, leider hat sich mir das ganze nicht erschlossen.
Kennst du die fbtft?

https://github.com/notro/fbtft/wiki

Gruß
Pf@nne
Pf@nne
User
Beiträge: 43
Registriert: Donnerstag 18. April 2013, 16:50

Hi,
ich hab beim Testen mit fbtft "am System gefummelt" nun geht der schöne Code nicht mehr:

Code: Alles auswählen

import spidev
import time
import random
import struct
import os
from functools import partial
import pygame
from array import array
from PIL import Image

...
...

def load_image_data(filename):
	result = array('h')
	result.fromstring(pygame.image.load(filename).convert(16).get_buffer().raw)
	result.byteswap()
	return result.tostring()	

def Show_Pic(x1,y1,FileName):

	Pic = Image.open(FileName)
	biWidth, biHeight = Pic.size
	BufferSize = biWidth*biHeight*2
	
	x2 = x1 + biWidth -1
	y2 = y1 + biHeight
	ActiveWindow(x1,y1,x2,y2)
	Set_MemoryWrite_Cursor(x1,y1)

	pygame.init()
	try:
		image_data = load_image_data(FileName)
		block_length = 0xfff
		blocks = (
			image_data[i:i + block_length]
			for i in xrange(0, len(image_data), block_length)
		)

		WriteCMD(0x02)
		GPIO.output(8, False)
		spi.writebytes([0x00]) #WriteData Byte
		for block in blocks:
			spi.writebytes(map(ord, block))
		GPIO.output(8, True)
	finally:
		pygame.quit()

Als Fehlermeldung erhalte ich:

Code: Alles auswählen

Traceback (most recent call last):
  File "RA8875.py", line 308, in <module>
    Show_Pic(0,0,"hintern_24.bmp")
  File "RA8875.py", line 270, in Show_Pic
    image_data = load_image_data(FileName)
  File "RA8875.py", line 253, in load_image_data
    result.fromstring(pygame.image.load(filename).convert(16).get_buffer().raw)
pygame.error: cannot convert without pygame.display initialized
Hat jemand eine Idee was ich da vergessen habe....??

Gruß
pf@nne
BlackJack

@Pf@nne: `pygame.init()` muss ausgeführt werden bevor man etwas anderes von Pygame benutzt.
Pf@nne
User
Beiträge: 43
Registriert: Donnerstag 18. April 2013, 16:50

Aber wo wird denn Pygame vorher genutzt?
Das fängt doch erst nach dem try: an.....?

Gruß
Pf@nne
BlackJack

@Pf@nne: Dann hat das `init()` aus irgendwelchen Gründen nicht funktioniert. Lass Dir mal den Rückgabewert davon ausgeben.
Pf@nne
User
Beiträge: 43
Registriert: Donnerstag 18. April 2013, 16:50

Code: Alles auswählen

	Set_MemoryWrite_Cursor(x1,y1)

	print "pygame.init() =", pygame.init()
	try:
pygame.init() = (5, 1)
BlackJack

@Pf@nne: Dann scheint 1 von 6 Subsystemen nicht initialisiert werden zu können. Kann es sein, dass kein X-Server läuft und der bei vorherigen Tests lief?
Pf@nne
User
Beiträge: 43
Registriert: Donnerstag 18. April 2013, 16:50

Für meine fbtft-tests musste ich das fbtft-image verwenden,
startx meldet

server error
no screens found
Antworten