Laden...
L
Lenny
myCSharp.de - Member
12
Themen
95
Beiträge
Dabei seit
05.01.2009
Alter
35
Erstellt vor 4 Jahren

Du könntest zwei virtuelle Comports nehmen -> USB zu Seriell Adapter

Erstellt vor 6 Jahren

Hallo,
einer Freundin von mir ist es im Maschinenbaustudium genauso gegangen. Ist am nächsten Tag zu einem anderen Sachbearbeiter hin und siehe da, der Bericht wurde ohne Beanstandung angenommen.

Wäre vielleicht auch einen Versuch wert, meiner Erfahrung nach neigen Unis gerade bei sowas zu purer Willkür.

Von der Begründung die du erhalten hast, würde ich darauf Tippen, dass derjenige der das Abgelehnt hat sich mehr Theoretischen Hintergrund zu den von dir verwendeten Mitteln wünscht.

Würde aber auch noch mal nachfragen.

Erstellt vor 6 Jahren

In C nennt man sowas eine Präprozessor Anweisung. In C# gibt es diese auch:
https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/preprocessor-directives/

Braucht man dort nur eher selten bis gar nicht.
Man kann diese Anweisungen verwenden um zur Compilezeit einen bestimmten Codepfad auszuwählen oder z.B. mit #region eine einklappbare Region des Codes zu definieren.

In C/C++ hat der Präprozessor wesentlich mehr Verwendung und kann auch mehr als in C#.

Zu deiner eigentlich Frage:

Selbstverständlich kannst du das Symbol definieren:


#define HAVE_DATE_TIME_OFFSET

Steht aber auch alles in den Link oben drin.

Erstellt vor 7 Jahren

Hallo,
ich hatte in meiner Bachelorarbeit auch einiges an Code produziert. (Allerdings C++) In Absprache mit meinem Betreuer habe ich wirklich wesentliche Code Abschnitte (so maximal 3-8 Zeilen) zur Verdeutlichung bzw. Illustration der im Text getroffenen Aussagen direkt in die eigentliche Arbeit eingebunden. Ich finde eine Beschreibung der Implementierung kann sonst sehr trocken werden unter Umständen.

Alle längeren Codesnippets (Aber bei weitem nicht der komplette Code) kamen in den Anhang. Da war aber auch kein Snippet dabei, das größer als eine DINA4 Seite war (LaTex formatiert)

Hätte ich die Arbeit direkt am Institut wo ich dann abgeben habe gemacht, hätte ich den kompletten Code dann auf CD beilegen müssen. Da ich aber extern die Arbeit geschrieben habe, wurde mir von dort untersagt, den kompletten Code dem Institut zu geben.

Erstellt vor 7 Jahren

Hallo, willkommen im Forum.
Verwende doch das nächste mal bitte die Code Tags.

Dein Problem an der Stelle ist, wenn du



int[] zahlen = new int[] {a,b,c};


schreibst, dann legst du eine Kopie des Wertes an.
Du solltest dir zu dem Thema den Unterschied zwischen Referenz und Wertetypen durchlesen.

Das Problem ist, du kannst in C# keine Referenz auf einen Wertetyp speichern.

Was du machst kannst ist die Variablen in eine Klasse speichern und in dem Array die Klassen Referenzen speichern.

Also als Beispiel



class A
{
    public int a {get;set;}
}

//In der Main

A[] array = new A[3];
A[0] = new A();
A[0].a = 1;

//und so weiter


Erstellt vor 7 Jahren

Hallo,
das liegt daran, dass ein Array ein Referenztyp ist: Arrays (C#-Programmierhandbuch)

D.h. wenn du eine Methode hast du ein Array annimmt übergibst du ihr eine Referenz auf das Array und eben keine komplette Kopie des Arrays.
(So wie wenn du in C++ einen Pointer übergibst. Da übergibst du zwar die Kopie des Pointers aber der Speicherbereich auf den der Pointer zeigt ist der selbe)

Erstellt vor 7 Jahren

Hey,
unter Linux kannst du per udev rule, ein bestimmtes USB Gerät (indem Fall ein bestimmter virtueller Comport) auf einen bestimmten Gerätenamen unter /dev mappen.

Writing udev rules

Eine einfache Beispielrule:


SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2424", GROUP="deine benutzer gruppe", SYMLINK="dein linkname für /dev"

Die Vendorid und Productid kannst du mit lsusb -v herausfinden. Die sollte für den Arduino eindeutig sein.

PS. du könntest das auch mit libusb machen. Da musst du nur auf die vendor bzw. product id abprüfen und dann direkt per usb Transfers in den virtuellen Comport reinschreiben 😉

Erstellt vor 8 Jahren

for(int i = 0; i < 100;i++)
{
    ListItem myItem = new ListItem(listItem1); //Oder mit geschweiften Klammern initialisieren
    supercooleListe.Items.Add(myItem).
    //Hier kann ich jetzt myItem verwenden
}
//Hier muss ich das Item aus der Liste raussuchen. Sprich durch die Liste iterieren und ein item mit dem Namen "listItem1" suchen.

Erstellt vor 8 Jahren

Eventuell findest du irgendwo eine Tastatur die tatsächlich nur 2 Keys hat (Oder zumindest wenige Keys)

Erstellt vor 8 Jahren

Das ganze ist in dem Fall ja keine C# spezifische Frage mehr. Einen Button der ein C# interface zum Auslesen findet wirst du vermutlich eher nicht finden.

Die Standard Lösung in dem Fall (Oder zumindest einen häufige Lösung) wäre:

Microcontroller -> Liest Buttonzustand aus -> Sendet diesen via Serieller Schnittstelle an den PC.
Für Seriell kann auch ein USB zu Seriell Adapter verwendet werden. Dieser sieht aus Programmierersicht am PC genauso aus wie eine herkömmlicher Serielport.

(https://msdn.microsoft.com/de-de/library/system.io.ports.serialport(v=vs.110).aspx
Und das hab ich selber vor einer Ewigkeit mal geschrieben:
http://www.roboternetz.de/community/threads/53894-Beispiel-Anwendung-C-Zugriff-auf-SerialPort)

Als Microcontroller kann man z.B. einen Arduino nehmen oder eine Selbstbaulösung auf Basis eines AVRs.

10 von 95 Beiträgen