Laden...

Modul sowohl in PC- als auch in MicroControler-Pgm nutzen / Eigenes Dateiformat defineiren

Erstellt von StaySharp vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.858 Views
Thema geschlossen
S
StaySharp Themenstarter:in
12 Beiträge seit 2011
vor 13 Jahren
Modul sowohl in PC- als auch in MicroControler-Pgm nutzen / Eigenes Dateiformat defineiren

Ich habe nun seit 2 Jahren ein eigenes Projekt in Planung und habe nun vor es langsam in echten code umzusetzen. Da das hier mein erster post ist gebe ich mal kurz ein paar informationen über meine Kenntnisse bis jetzt.

Ich habe...
...das Buch C# von Eric Gunnerson galileo openbook gelesen.
...einfache kenntnisse mit c++.
...mich mit Objektorientierter Programmierung mehr oder minder vertraut gemacht.
...bis jetz noch keine C# Anwendung geschrieben, bin ein Anfänger, würde mich aber nicht als blutigen Anfänger bezeichnen.

Ich habe bereits eine konkrete Vorstellung eines Endergebnisses, aber mir fehlen aber ein paar insider Kenntnisse um mit dem coden anzufangen.

Nun zu dem was ich hier gern in Erfahrung bringen würde:

Modularisierung: Ich möchte konkret 2 Programme schreiben (für PC und MicroController). Beide haben ein unterschiedliches Interface welches an sich unterschiedliche funktionen bietet. Die funktion des Programms ist so ähnlich wie musik abspielen, and das ist der punkt der für PC und MicroController gleich sein soll. Mir ist klar das include wegfällt. Ich bin auf die theoretische möglichkeit gestoßen eine Datei mit den Daten zu schreiben und diese in beiden programmen per using einzubinden, bin mir aber nicht darüber im klaren ob das auch wirklich so funktioniert.

Dateien Schreiben: Die auszulesenden Dateien muss ich ja auch vorher irgendwie anlegen (das wäre mitunter der Job des PC parts meines Projektes), aber alle meine Suchen in der richtung sind bis jetzt fruchtlos geblieben und ich hab nur methoden zum schreiben von Texten gefunden, ich brauch aber ein komplett neues dateiformat das ich selbst definieren kann. Ein hinweis darauf wo ich so eine syntax finde oder wie sie heißt wär perfekt.

PS: Falls jemand Erfahrungen mit dem .net Micro Framework hat, ich suche dort vergebens nach einer möglichkeit den eingebauten simulator zu verändern (Tasten, Bildschirmgröße, Speichermedien etc.).

Bin im voraus schonmal dankbar für jede hilfe, zumal es wohl leider etwas dauert bevor ich irgendeine Hilfe an die community zurückgeben kann.

Hinweis von herbivore vor 13 Jahren

Bitte beachte beim nächsten Mal [Hinweis] Wie poste ich richtig? Punkt 1.2.

5.742 Beiträge seit 2007
vor 13 Jahren

Hallo StaySharp,

herzlich willkommen hier auf myCSharp.de!

Was genau möchtest du eigentlich wissen? So ganz wird mir das aus deinem Beitrag nicht klar 🤔

Ich habe nun seit 2 Jahren ein eigenes Projekt in Planung und habe nun vor es langsam in echten code umzusetzen.

Ich möchte dir jetzt nicht zu nahe treten, aber 2 Jahre zu planen, ohne sich in diesem Zeitraum über den Code Gedanken zu machen, halte ich schon ein wenig gewagt.
Was hast du denn bisher geplant?

Und was genau soll dein Programm jetzt eigentlich machen? Musik abspielen, wie du sagst? Welchen Part soll da jeweils der PC und welchen der Microcontroller übernehmen? Inwieweit soll eine Kommunikation der beiden stattfinden?
Möchtest du den PC sozusagen via Microcontroller steuern? Oder umgekehrt auf dem PC vorgeben, welche Musik der Microcontroller abspielen soll?

Wozu dann ein Dateiformat? Meinst du vielleicht eher Protokoll?

S
StaySharp Themenstarter:in
12 Beiträge seit 2011
vor 13 Jahren

Die 2 Jahre Planung kommen Primär daher das ich erst kurz vor Anfang dieser Planungsphase damit angefangen habe Programmieren zu lernen, zudem hab ich mich damals auch noch nicht für eine Sprache entschieden und mit C# noch ne gute weile später angefangen. Über den Code kann ich mir erst mit meinem jetzigen Verständnis überhaupt Gedanken machen. Die lange Planung war also mehr gezwungen als gewollt.
Da mein Endziel nicht ganz einfach ist habe ich die Zeit halt genutzt um zumindest ganz klar zu haben wie's am ende aussehen soll. Ich erwarte auch nicht in unter einem weiteren Jahr damit fertig zu werden.

Naja, hab mir schon gedacht das meine Formulierungen nicht alles ganz klar machen, hatte aber zu dem Zeitpunkt nich genug Kapazitäten noch genauer drüber nachzudenken, also nochmal:

Ich versuche es mal mit code abschnitten a (PC), b (MC) und c (beide) und fertigem Programm A (PC) und B (MC) zu beschreiben.

a: Ist das Interface für den PC in diesem Codeabschnitt soll die Methode liegen entsprechende Dateien zu erzeugen. Soll ebenfalls in der lage sein z.B. von spielen gesteuert zu werden (ich denke aber dafür werde ich später ein neues Thema aufmachen, hier sind ja schon 2 Fragen drin, wenn ich hier nicht zufällig ne antwort kriege).
b: Ist lediglich das Interface für ein mobiles Gerät (PC unabhängig). Wie ein USB-stick oder mp3 player.
c: Ist der wichtigste Abschnitt, der die Dateien ausliest und abspielt.

A=a+c
B=b+c

Hierbei liegt die Steuerung jeweils in a und b, die Verarbeitung in c.
Meine frage ist hier wie genau ich einen Codeabschnitt effektiv in 2 Programme einbinden kann.

Nun zu den Dateien, diese sollen Musikdaten und einige anderweitig zu verwendenden Extradaten enthalten, da ich die funktionalität die ich will aber definitiv in keinem gegebenen Format habe brauche ich ein neues.
Hier bräuchte ich nur den Namen einer entsprechenden syntax, so dass ich mir den Rest dazu irgendwie selbst erarbeiten kann.

5.742 Beiträge seit 2007
vor 13 Jahren

c: Ist der wichtigste Abschnitt, der die Dateien ausliest und abspielt.

Gut, und der soll dann sowohl auf dem PC als auch auf dem Microcontroller zur Verfügung stehen.
Ja, wenn du das Micro Framework verwenden möchtest bzw. kannst, kannst du natürlich den Code (teilweise) auch wiederverwenden. Abschnitte wie z.B. das Abspielen werden jedoch auf PC (wo du z.B. DirectX verwenden würdest) und Microcontroller stark unterscheiden. Hier bieten sich das Strategy und das Factory Pattern an.

Hier bräuchte ich nur den Namen einer entsprechenden syntax, so dass ich mir den Rest dazu irgendwie selbst erarbeiten kann.

Die Syntax für dein eigenes Format musst du natürlich schon selbst entwicklen - XML und ZIP-Archive als Container sind jedoch häufig eine gute Wahl.

S
StaySharp Themenstarter:in
12 Beiträge seit 2011
vor 13 Jahren

Die Syntax für dein eigenes Format musst du natürlich schon selbst entwicklen - XML und ZIP-Archive als Container sind jedoch häufig eine gute Wahl.

Die syntax hab ich schon zum großteil fertig. Aber ich weiß nicht wie die Methode in C# heißt um aus den Daten letztendlich die Dateien zu schreiben.

Gut, und der soll dann sowohl auf dem PC als auch auf dem Microcontroller zur Verfügung stehen.
Ja, wenn du das Micro Framework verwenden möchtest bzw. kannst, kannst du natürlich den Code (teilweise) auch wiederverwenden. Abschnitte wie z.B. das Abspielen werden jedoch auf PC (wo du z.B. DirectX verwenden würdest) und Microcontroller stark unterscheiden. Hier bieten sich das Strategy und das Factory Pattern an. DirectX wärs nicht aber ich denke ich versteh was du meinst. Strategy und Factory Pattern sagt mir erstmal nix aber wenn ich die namen hab kann ich ja direkt loslegen mich zu informieren.

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo StaySharp,

Aber ich weiß nicht wie die Methode in C# heißt um aus den Daten letztendlich die Dateien zu schreiben.

sorry, das fällt nun wirklich eindeutig unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1 (und 1.1). Dazu bitte keine weiteren Fragen. Schau mal in [Tutorial] Alles über Dateien 2.2. Alternatives Stichwort: SharpZipLib.

herbivore

S
StaySharp Themenstarter:in
12 Beiträge seit 2011
vor 13 Jahren

Das Thema beantwortet meine Frage nicht, da ich nach wie vor weder plane mein Dateiformat als Text noch als XML zu schreiben (auch wenn ich zweiteres zur not wenn es nicht anders geht in Betracht ziehe). Ich frage nicht nach den Grundlagen von XML/ZIP-Datei erzeugung, sondern nach einer Funktion mit der ich ein Dateiformat komplett von 0 aufbauen kann.

F
240 Beiträge seit 2006
vor 13 Jahren

Gestaltet sich relativ "einfach": selber machen.

Du musst dir überlegen, wie genau die Daten eingelesen werden, und woran die einlesende Funktion erkennen soll, dass zb. ein integer, oder ein string mit Länge X oder oder oder anfängt.

Das hört sich nicht nur komplex an, es ist es auch. Am besten solltest du dir angucken, wie andere (offene) Datei bzw. Übertragungsformate es anstellen (Stichwort Header, Opcodes).

S
StaySharp Themenstarter:in
12 Beiträge seit 2011
vor 13 Jahren

Hab mir auch da schon eingehende Gedanken drüber gemacht und weiß in etwa wie ichs haben will.

Ich versuch meine Frage nochmal anders zu stellen: Verwende ich auch in diesem Fall den StreamWriter oder gibt es noch andere Methoden Daten in eine Datei zu schreiben?

M
1.439 Beiträge seit 2005
vor 13 Jahren

Hast du bereits ein MC-Board auf dem das .Net Micro Framework läuft, oder verwendest du nur den Simulator?

5.742 Beiträge seit 2007
vor 13 Jahren

Verwende ich auch in diesem Fall den StreamWriter oder gibt es noch andere Methoden Daten in eine Datei zu schreiben?

Ja, solange du nicht auf den Komfort von z.B. XML zurückgreifen willst, ist der StreamWriter deine einzige Möglichkeit.

Thema geschlossen