Hallo,
ich probiere es nochmal, leider hat das letzte mal keiner angebissen....
Ich suche eigentlich nur die Syntax für genau einen Befehl.....
Grüße
Werner
Hallo Werner,
a) haste mal versucht, das Ganze mit Visual Studio aufzurufen und auszuführen ?
Du kannst die Community-Version kostenlos herunterladen. Aktuell Version 2019.
b) Ich würde sowas mal in einem .net-Forum stellen. Das Lego-Forum ist da etwa falsch.
z. B. https://www.mycsharp.de/wbb2/
Tschau
Martin
http://www.born2brick.de
http://www.brick-fans-rm.de
meine Anlagen im Internet:
http://www.martin-kolb.de/bricks
https://www.flickr.com/photos/129377871@N08/albums
Hallo,
danke.
for (int i=0; i < Hub[].length; i++)
{
Console.WriteLine(Hub[i].DeviceId);
}
Fehler:
Compiling failed.
Error (CS0443): Syntaxfehler. Wert erwartet.
Mit andern Worten: "Hub[].length" liefert keinen Integer-Wert der Länge von Hub[]
Leider. Genau das ist das Problem.
Hallo Martin,
danke, aber da ich den entscheidenen Teil des Quellcodes ja nicht habe kann ich da nichts editieren.
Visual Studio habe ich installiert, damit kann ich z.B. Python für EV3 programmieren.
Aus diesem Grund scheitert auch die Nachfrage in dieversen Fachforen.
Grüße
Werner
Hallo,
Mylenium hat geschrieben:
Hallo Andreas,
danke.
cimddwc hat geschrieben:
Lok24 hat geschrieben:
Hallo Andreas,
Ach was!
Aufruf:
progstart(Hub);
Im Global Code:
static void progstart(System.Collections.Generic.List<LegoTrainProject.Hub> Hubs)
{
// set the Hubs
MainBoard.WriteLine(Hubs[4].DeviceId);
MainBoard.WriteLine(Hubs[5].DeviceId);
MainBoard.WriteLine(Hubs[6].DeviceId);
MainBoard.WriteLine(Hubs.Count); // wird vorher noch in einen String umgewandelt....
Output:
BluetoothLE#BluetoothLE5c:f3:70:91:c2:c8-00:16:53:af:77:c3
BluetoothLE#BluetoothLE5c:f3:70:91:c2:c8-90:84:2b:10:79:0a
BluetoothLE#BluetoothLE5c:f3:70:91:c2:c8-a4:34:f1:ce:5c:45
7
7 deswegen, weil die ersten (0-3) nicht aktiv sind.
Ganz vielen Dank allen, die geholfen haben!
Ich programmiere da mal ein neues Beispiel zusammen und zeige das nochmal hier.
Grüße
Werner
Andi gefällt das
hast du mal nur Hub.length probiert?
Kann sein, dass man dabe keine Klammern braucht
Hallo,
ja, das geht nicht, es ist eine Liste, kein Array.
Es muss "Count" heißen.
Dennoch vielen Dank.
Andi gefällt das
Hallo zusammen,
danke nochmal an alle die sich mit dem "Problem" befasst und es der Lösung ein Stück häher gebracht haben.
Hier also der Quellcode:
// define the Hubs
public static Hub Lok1;
public static Hub Lok2;
public static Hub Handset;
// define the addresses
public static string Lok1_adr = "00:16:53:af:77:c3";
public static string Lok2_adr = "90:84:2b:10:79:0a";
public static string Handset_adr = "a4:34:f1:ce:5c:45";
// ----start----------------------------
static void start(List<LegoTrainProject.Hub> HubList)
{
// Show all Device-IDs
log("All Device-IDs");
log("-------------------");
for (int i=0;i<HubList.Count;i++)
{
log(HubList[i].DeviceId);
}
// Show all Conncted and assigned Hubs
log("Assigned Hubs");
log("-------------------");
for (int i=0;i<HubList.Count;i++)
{
if (HubList[i].IsConnected)
{
int p = HubList[i].DeviceId.IndexOf("-")+1;
string MacAdr = HubList[i].DeviceId.Substring(p);
string name = "Not assigned";
if (MacAdr==Lok1_adr){Lok1 = HubList[i];name="Lok1"; }
if (MacAdr==Lok2_adr){Lok2 = HubList[i];name="Lok2";;}
if (MacAdr==Handset_adr){Handset = HubList[i];name="Handset";}
log(String.Concat(name, " " , MacAdr, " from Hub No "),i);
}
}
log("-------------------");
}
// ---Log-----------------------------
static void log(string a="", int i = 99999)
{
if (i == 99999)
{
MainBoard.WriteLine(a);
}
else
{
string tt = Convert.ToString(i);
MainBoard.WriteLine(a+ " "+ tt);
}
}