Donnerstag, 24. November 2011

XPLANE 10, neues Arduino Programm, MCP fertig gebaut

Endlich ist XPLANE 10 raus! Sieht schonmal sehr gut aus: XPLANE

weiters habe ich eine neue um einiges verbesserte Beta Version welche annimmt, dass alle Variablen auf den Plätzen 901-999 7 Segment Werte sind. Rundherum 100 -899 LEDS. Noch ist nur ALtitude auf 901 bei mir zu testzwecken - es werden alle Verlinkungen auf einer SD Karte in einem TEXT file abgespeichert sein - spricht für leichtes Updaten der Variablen. Ich verwende PRosim737 mit XPUIPC (Xplane läuft jetzt bald auf einer Windows Partition - geht sehr viel leichter). Getestet habe ichs schon am "fertigen" MCP.

//® by Ma®c
#include "LedControl.h"
#include <SPI.h>
#include <Ethernet.h>

//Ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0,219 };
byte server[] = { 192,168,0,214 };
Client client(server, 8092);
//LedControl
LedControl lc=LedControl(7,6,5,1);
unsigned long delaytime=250;

//STRING for incoming
String StringAnswer = "";

//char for incoming
char i;

//counter
int counter = 0;

//LEDs on off
int LedOnOff;
void setup() {
//ETHERNET
Ethernet.begin(mac, ip);
//SERIAL
Serial.begin(115200);

//7 Segment
lc.shutdown(0,false);
lc.setIntensity(0,8);
lc.clearDisplay(0);

if (client.connect()) {
Serial.println("connected");
lc.setChar(0,0,'y', false);
lc.setChar(0,1,'E', false);
lc.setChar(0,7,'S', false);
}
else {
Serial.println("connection failed");
lc.setChar(0,7,'F', false);
lc.setChar(0,4,'A', false);
lc.setDigit(0,5,1, false);
lc.setChar(0,6,'L', false);
delay(10000);
}
}

void Subscribe(){
client.println("Arn.Inicio:230"); //ALtitude dial MCP
}

void loop(){
while (counter < 11) {
ReadEthernet();
}
if (StringAnswer.charAt(10) != 9) {
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
LedLightup();

}

if (StringAnswer.charAt(10) == 9) {
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
ReadEthernet();
sevenSegment();
}

}
void ReadEthernet() {
i = client.read();
StringAnswer += i;
counter ++;
}

void LedLightup(){

char hundreds = StringAnswer.charAt(10);
char tens = StringAnswer.charAt(11);
char ones = StringAnswer.charAt(12);
String StringNumber ;
StringNumber += hundreds;
StringNumber += tens;
StringNumber += ones;
if (StringAnswer.charAt(14) = 0) {
int LedOnOff = 0;
}
if (StringAnswer.charAt(14) != 0) {
int LedOnOff = 1;
}
StringAnswer = "";
counter = 0;

}

void sevenSegment() {

char one = StringAnswer.charAt(14);
char two = StringAnswer.charAt(15);
char three = StringAnswer.charAt(16);
char four = StringAnswer.charAt(17);
char five = StringAnswer.charAt(18);

if (StringAnswer.charAt(11) == 0) {
if (StringAnswer.charAt(12) == 1) {
lc.setChar(0,7,one,false);
lc.setChar(0,4,two,false);
lc.setChar(0,5,three,false);
lc.setChar(0,6,four,false);
lc.setChar(0,2,five,false);

StringAnswer = "";
counter = 0;
}
}

}

Sonntag, 13. November 2011