Vanuit serial gekleurde pixels naar mijn TFT sturen
3 berichten
• Pagina 1 van 1
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Vanuit serial gekleurde pixels naar mijn TFT sturen
Hoi,
Ik wil graag vanuit mijn .NET applicatie afbeeldingen versturen naar mijn arduino-TFT scherm over de seriële poort.
Nu hoop ik dat iemand mij kan helpen met de arduinocode want dat lukt mij niet helemaal.
Mijn gedacht is om een string met waardes te sturen gescheiden door een | teken en een afsluiting met een \n
De eerste twee getallen zijn de start x en Y positie, vervolgens komen er kleurcodes welke op het TFT van links naar rechts als pixel worden ingekleurd.
Hieronder een stukje pseudocode hoe ik het in gedachte had, is iemand slimmer dan mij?
(ps Het zal wel niet de snelse methode zijn maar voor mijn project is dit niet belangrijk)
Gr,
Fonzie
cpp code
Ik wil graag vanuit mijn .NET applicatie afbeeldingen versturen naar mijn arduino-TFT scherm over de seriële poort.
Nu hoop ik dat iemand mij kan helpen met de arduinocode want dat lukt mij niet helemaal.
Mijn gedacht is om een string met waardes te sturen gescheiden door een | teken en een afsluiting met een \n
De eerste twee getallen zijn de start x en Y positie, vervolgens komen er kleurcodes welke op het TFT van links naar rechts als pixel worden ingekleurd.
Hieronder een stukje pseudocode hoe ik het in gedachte had, is iemand slimmer dan mij?
(ps Het zal wel niet de snelse methode zijn maar voor mijn project is dit niet belangrijk)
Gr,
Fonzie
cpp code
String inputString = "";
bool stringComplete = false;
void serialEvent()
{
int offsetX = -1;
int offsetInputString = 0;
int iStartX = 0;
int iStartY = 0;
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
// if the incoming character is a newline, set a flag so the main loop can
// do something about it:
if (inChar == '\n') {
// na een '\n' weet ik dat een lijn met pixels is ontvangen, het eerste en tweede getal zijn de start x en y posities
// voorbeeld ontvangen vanuit serial : 50|60|0x0000|0xF800|0x07E0{\n}
iStartX = // eerste int welke voor het | teken staat
// zet offsetInputString na eerste |
iStartY = // eerste int welke NA het | teken staat
// zet offsetInputString na tweede |
// Nu hebben we de start x en y en komen de kleurcodes
//begin loop de inputString door tot de uiteindelijke '\n'
while (InputString[offsetInputString] != '\n')
{
while (InputString[offsetInputString] != '\n' & InputString[offsetInputString] != '|'
{
offsetInputString = offsetInputString + 1;
// intKleur vullen
} else
{
if (InputString[offsetInputString] == '|' {offsetInputString = offsetInputString + 1;}
tft.drawPixel(iStartX + offsetX, iStartY, intKleur);
offsetX = offsetX + 1;
}
}
inputString = "";
}
}
}
Advertisement
Re: Vanuit serial gekleurde pixels naar mijn TFT sturen
Ik heb wel eens zoiets gedaan:
Hiermee kun je een deel van de string uitlezen, voorwaarde is wel dat de waarde die de pc verstuurd altijd de zelfde lengte heeft (001 tot 999 bijvoorbeeld).
- Code: Alles selecteren
int firstnumber = (incoming_serial.indexOf('W') +1); //first character posistion
int lastnumber = (incoming_serial.indexOf('W'), +4); //last character position
String autodegreestring = (incoming_serial.substring(firstnumber,lastnumber));
Hiermee kun je een deel van de string uitlezen, voorwaarde is wel dat de waarde die de pc verstuurd altijd de zelfde lengte heeft (001 tot 999 bijvoorbeeld).
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: Vanuit serial gekleurde pixels naar mijn TFT sturen
Beetje laat (sorry daarvoor bigred) en jou suggestie heeft mij tot de oplossing geleid!
Gr,
Fonzie
Gr,
Fonzie
3 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten