Hallo,
ich habe zu Ansteuerung eines Relais **Tinkerforge **verwendet, da ich an der "Schaltstelle" keinen PC habe, WLAN und LAN jedoch schon.
Ich bin wirklich schwer begeistert was Tinkerforge betrifft, da man sagen kann _"It just works" _- das ist genau die Art des Arbeitens, die sich ein Informatiker ohne Elektronik-Affinität erwartet. Ich habe vor lauter Freude an Tinkerforge auch gleich einen Projektkurzbericht verfasst:
Garagentoröffner per Handyapp
Eventuell eignet sich auch die Relaiskarte vom großen C ganz gut, falls man nen Computer nebenbei hat: Conrad USB 4fach-Relaiskarte Baustein 5 V/DC Ausgangsleistung 8 A/24 V/DC
LG
Hallo Peter,
vielen Dank für deine Antwort! An das deklarative Anlegen hab ich auch schon gedacht, wobei es mir besser gefällt die Referenzen in einem geeigeneten Behälter zu speichern...
Danke nochmals, LG Philipp
Hallo,
da ich neu in ASP.NET bin, stellt sich mir eine Frage bei der ich hoffe, ihr könnt mir weiterhelten. Ich habe bereits viel im Netz über das Thema "Zugriff auf Werte von dynamisch hinzugefügten Controls" gesucht und gefunden.
Jetzt hatte ich die Idee, einfach eine eigene Collection von Controls (z.B.: List<TextBox>) anzulegen und mir dort die Referenzen zu merken. Nach einem Postback stehen nun auch die Werte zu Verfügung und alles läuft wunderbar.
Die Frage ist jetzt aber, ist das "schöner Code" und läuft das auch, wenn viele Benutzer die Seite verwenden? Stichwort "Garbage"...
Hier noch der Code, welcher funktioniert:
IList<TextBox> members = new List<TextBox>();
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 4; i++)
{
var p = new Panel();
p.Controls.Add(new Label() { Text = "Person " + i + ":" });
var tb = new TextBox() { ID = "InputPers_" + i };
p.Controls.Add(tb);
members.Add(tb);
p.Controls.Add(new LiteralControl("<br />"));
PlaceHolder1.Controls.Add(p);
}
}
protected void ButtonReserve_Click(object sender, EventArgs e)
{
Label1.Text = "";
foreach (var t in members)
{
Label1.Text += t.Text + ";";
}
}
Funktionsweise: Die Collection wird bei jedem Laden der Seite stets neu angelegt und der ViewState ja trotzdem in die dynamichen Controls geschrieben (restored) - das ist dann auch der Grund warum es funktioniert (die Referenzen sind aber bei jedem Postback neu, weil ich ja tatsächlich neue Controls anlege)....
Danke, LG Zentauro
Wenn es so limitiert ist, ist der Ansatz akzeptabel. Ich ging von vielen Funktionen aus.
^^nein nein - das rad erfinde ich nicht neu - zumindest hab ichs nicht vor 😃
...Damit kannst du statische Websites ausliefern...
versteh ich jetzt nicht ganz, da ich ja in meiner html-seite platzhalter definiere, die ich beim rausschicken noch mit meinen variableninhalten ersetze. weiters kann ich die post und get - inhalte lesen und dementsprechend darauf reagieren.
ich möchte ja keinen reichtigen webserver bauen sondern nur statusmeldungen etc. per webbrowser zugänglich machen!
ein gutes beispiel für sowas wo diese technik hervorragend funktioniert ist das webinterface von jdownloader - aufgrund dessen bin ich überhaupt auf die idee gekommen. nachdem dieser open source ist, sieht man dort recht schön wie die es machen...
nach weiteren google sessions hab ich nun doch noch was für mich gefunden:
http://www.computerleben.net/artikel/Einfacher_Webserver-287.html
danke trotzdem...
Hallo,
vielen Dank für die Hilfe - jetzt hab ich mal genug Material zum Durchforsten 😃
LG
danke für die gedankenanstöße, aber WIE mach ichs - gibts vielleicht im framework schon irgendwelche webservice-klassen etc.???
hi,
naja bringen tuts das, dass es bereits ein programm gibt welches 24/7 läuft und etwas steuert. will man in den steuerungsprozess eingreiffen, so muss man sich nun per remote desktop o.ä. auf das gerät verbinden und dann die parameter anpassen. um den benutzerkreis den remotedesktop abzunehmen und mir wiederum die sicherheit zu geben, dass niemand das programm schließt oder so hätt ich gerne einen webservice, über dem die benutzer nur "das notwendigste" machen können bzw. sehen können...
lg
hallo & danke erstmal für die antwort!
tut mir leid, wenn ich mich undeutlich ausgedrückt hab... ich möchte aber im grunde keine website bauen sondern eine bestehende windows-forms anwendung um ein webinterface ergänzen.
nehmen wir als beispiel eine c# applikation wie den windows taschenrechner - da möchte ich ganz normal starten und rechnen können (wie eben beim win-taschenrechner). nun sollte es auch zusätzliche möglich sein (nur wenn eben dieses programm läuft) über einen gewissen port auf meinen per webinterface (browser) zugreifen zu können und eben per webinterface berechnungen durchzuführen.
danke
hallo,
ich weiß nicht obs vielleicht eh schon 1000 threads über das thema gibt, aber ich hab leider nix gefunden - weder hier noch bei google, etc.
ich möchte gerne ein webinterface für eine bestehende c# applikation schreiben. ich stelle mir das so vor, dass ich da statusinformationen anzeigen kann UND(!!!) auf "events" reagieren kann, so dass ich beispielsweise irgendwas mache, wenn eine html-form mit den richtigen werten submitted wird...
hat vielleicht irgendjemand eine ahnung wo es dazu gute infos gibt bzw. was der richtige name dafür ist, da ich unter webinterface leider nix gefunden hab...
danke, lg
hallo,
ich habe mir eine relaiskarte gekauft, für die ich vom hersteller eine dll habe. leider kann ich diese nicht einfach im visualstudio als referenz einfügen.
als anhaltspunkt gibts vom hersteller die vb-deklarationen:
Declare Function OpenDevice Lib "USB8IO.dll" (ByVal DevNumber As Byte, _
ByVal DriverName As String, _
ByVal ID As String, _
ByVal KeyWord As String) As Long
ich habe nun folgendes probiert:
[DllImport("USB8IO.dll")]
public static extern Int16 OpenDevice(ref byte deviceNr, ref string driverName, ref string id, ref string keyWord);
public Form1()
{
Int16 deviceID;
deviceID = OpenDevice(0, "EZUSB", "", "");
}
der compiler meckert, dass die übergabetypen nicht passen - ich hab schon mit IntPtr's herumgespielt, aber wenn der compiler mal nicht meckert, dann stürzt das ganze mit einer AccessViolation Exception ab...
kann mir bitte irgendjemand dabei helfen, die funktion korrekt mit der funktion aus der dll zu verknüpfen...???
danke vielmals,
lg zentauro
echt geniales ding - DANKE für deine mühen!!!
hallo,
ich habs jetzt mit diesem genialen ding gelöst:
Parser für mathematische Formeln
ich finde den thread überhaupt ganz nett, da er auch die hintergründe in form von wiki-links bereitstellt, in denen man sehr viel erfährt...
danke nochmals!
lg
hallo,
erstmal danke für die vielen raschen antworten - ich werde diese validieren und euch dann rückmeldung geben...
nochmals danke & lg
hallo,
vielleicht ist die frage ja doof, aber gibt es eine möglichkeit den inhalt einer variable in den code einzusetzen?
ich habe in programm, bei dem man über gui eine for-schleife konfiguriert - diese variablen möchte ich dann gerne einsetzen - gibts da irgendwelche parser???
ein beispiel:
string var_from = "0"
string var_to = "10"
string increment_var = "i=i+2"
// jetzt würde ich gerne sowas machen:
for(int i = Convert.ToInt32(var_from); i < Convert.ToInt32(var_to); ???parseAnythingAndImport???(increment_var)){
Console.WriteLine(i);
}
--> folglich suche ich nach sowas, wie es im beispiel die ???parseAnythingAndImport???() - Methode macht...
gibts sowas???
danke, lg
hi,
naja - du ziehst deinen timer immer wieder neu auf, nachdem du etwas empfangen hast. empfängst du nichts, dann läuft der timer ab und du gibst im timer-event einen fehler aus.
such mal zum thema "watchdog" ein wenig rum 😃
lg
hallo mosspower,
danke,
generell klingt das sehr gut - mein problem ist jedoch, dass ich aktionen bevor das htmldocument visualisiert wird ausführen will (da ich ja style-attribute ändere) und wenn ichs über js machen würde müsste ich ebenfalls wieder auf document_completed warten - bzw. im document_completed context parsen...
lg zentauro
hallo,
danke für den vorschlag - ich muss aber die dokumentenmanipulation insofern mit c# machen, da ich auch gewisse sachen (wie z.b. keyboard einblenden etc.) machen muss, sofern auf ein textfeld gedrückt worden ist usw...
ich bin mittlerweile ein wenig weiter - ich hab von webbrowser abgeleitet und onnavigated überladen - blöderweise befinden sich da noch nicht alle htmlelements drinnen...
http://msdn.microsoft.com/de-de/library/system.windows.forms.webbrowser.navigated.aspx
kennt jemant ein besseres event vor dem visualisieren der seite und nach dem herunterladen des inhalts???
danke lg
zentauro
hallo,
nach langem herumprobieren muss ich jetzt wohl euch um hilfe fragen 😃
und zwar habe ich eine applikation geschrieben, welche eigentlich nur ein webbrowsercontrol beinhaltet und quasi als browser zu verwenden ist. der grund warum ich das mache ist - ich hab zusätzlich einen html-parser eingebaut, welcher beispielsweise textboxes und buttons aus der html-seite vergrößert darstellt. das ganze läuft auf einem touchpanel und von da her war das notwendig.
mein problem ist jetzt, dass ich die seite immer dann parse bzw. die style-attribute der htmlelements ändere, wenn das document_complete-event auftritt. da nun das parsen nicht endlos schnell funktioniert sieht man im fenster nun die normale seite und kurz darauf die vergrösserte bzw. veränderte seite.
gibt es irgendeinen weg, auf das document zuzugreiffen, kurz bevor es dargestellt wird? ich hätte auch an mechanissmen wie httprequest/response gedacht, aber eigentlich will ich ja das ganze immer visualisieren - ich bräuchte nur ein event, welches vor dem anzeigen aufgerufen wird - ist es vielleciht mit einer onpaint überladung des webbrowser-controls möglich??
danke zentauro
Hallo herbivore,
naja, ich iteriere mit foreach über alle htmlElements drüber, jetzt find ich eins, wo eben ein gewisses attribut gesetzt ist, welches mir sagt, ich soll es löschen. blöderweise kann ich ja auf die iterationsvariable nix draufschreiben???
des weiteren kann ich seinen tag auch nicht ändern, sonst würd ich einfach einen leeren span draus machen...
zentauro
hallo,
microsoft macht unter anderem aus diesem grund express-ide's - sie wollen nämlich, dass sich ihr framework verbreitet und von da her gibts gar keine probleme, wenn du dein programm mit vs2008 EXPRESS!!!! buildest und es dann verkaufst.
ein unterschied zum prof. ist beispielsweise, dass in der expressversion keine bereitstellungsmöglichkeit (sprich setup) enthalten ist - über diese (mehr oder weniger hürde) musst du dir eben selbst gedanken machen 😉
also - nimm den rahm runter 😄
lg
zentauro
hallo herbivore&ErfinderDesRades,
danke erstmal für den outerHtml-tipp!
aber wie stell ichs nun an, das ding herauszulöschen??? es gibt ja nirgendwo sowas wie htmldocument.remove(elem.outerHtml)?!?!?
lg
Zentauro
hallo,
nach einlesen in der :rtfm: habe ich leider keinen weg gefunden, elemente aus einem HtmlDocument zu entfernen.
Weiters konnte mir google auch nicht helfen...
Hat vielleicht jemand von euch eine Idee, wie ich ein HtmlElement (welches ich vorhin anhand bestimmter kriterien gesucht/gefunden habe) aus einem HtmlDocument entfernen kann??
danke!!
lg Zentauro
Hallo Norman-Timo,
danke dür deine rasche Antwort, jetzt kann ich beruhigt sein 😉
lg Zentauro
Hallo,
ich hab mich jetzt ein wenig mit Exception Logging beschaftigt, da ich denke, das dies eine der Wichtigsten Dinge überhaupt ist...
Im Netz hab ich nun folgende Seite gefunden:
http://www.doogal.co.uk/exception.php
Auf dieser Seite holen die sich alle auftretenden Exceptions so:
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException);
Eine andere Möglichkeit wär diese, lediglich bekomm ich da nur die Exceptions, welche im aufrufenden Thread passieren (stimmt das so?):
try
{
Application.Run(new Form1());
}
catch(Exception e)
{
//tu was damit
}
Meine Frage nun: kann ich davon ausgehen, dass die zweite Variante Blödsinn ist und noch wichtiger: kann ich davon ausgehen, dass ich mit der ersten Variante ALLE unbehandelten Exceptions bekomme???
Danke vielmals!!!
lg Zentauro
hallo herbivore,
ein wenig schäm ich mich ja jetzt schon, dass ich das übersehen hab... 😉
DANKE VIELMALS!!!!
lg, zentauro
hallo,
nach langem suchen im netz, bekomm ichs leider nicht gebacken:
ich möchte meine eigene processId herausfinden und weiß leider nicht wie - ich hab zwar x-tausende male gefunden, wie ichs von anderen apps rausfinde (per namen etc.), aber nicht von mir selbst...
ich kanns mir nicht einfach per namen holen, da mehrere programminstanzen laufen können...?!?!?!?
danke, lg zentauro
hallo,
habs jetzt nur mit byte[] probiert und jetzt funzts - anscheinend hats wirklich irgendwas mit der char interpretation zu tun gehabt...
DANKE!!!!
lg, zentauro
hallo,
danke erstmal für die antworten. ich schreibe für meinen uC einen bootloader bzw. jetzt den download-mechanissmus in c#. gesendet wird der inhalt eines intel-hex files und darin steht das programm, welches der controller nachher zu exekutieren hat. jetzt passierts eben, dass ich abhängig vom wert (>127) plötzlich blödsinn in den controller runterlade...
die zahlen am port werden also direkt als byte-werte im uC empfangen und da geht ein byte noch ehrlich von 0 bis 255ggg
lg, zentauro
hallo,
nachdem mir im thread Ich bin zu blöd zu casten... schon massiv weitergeholfen wurde, stehe ich nun vor einem neune problem, welches ich einfach nicht hinkriege:
ich habe aus einem intel hex file diese beiden strings, welche ich übertragen muss:
"0c" und "94"
diese caste ich so:
char dataByte1 = (char)Convert.ToByte(bytes[i], 16);
char dataByte2 = (char)Convert.ToByte(bytes[i + 1], 16);
danach steht folgender inhalt in meinen dataBytes:
12 dezimal --> entspricht 0c hex und
148 dezimal --> entspricht 94hex
soweit so gut, wenn ich nun diese beiden bytes über die serielle schnittstelle mit
serialPort1.Write(System.Text.Encoding.Default.GetBytes(new char[] { dataByte1 }), 0, 1);
serialPort1.Write(System.Text.Encoding.Default.GetBytes(new char[] { dataByte2 }), 0, 1);
sende, sendet diese komischerweise folgendes:
0C hex und 3Fhex
warum kommt es zu diesem komischen verhalten???
dieses verhalten tritt komischerweise bei allen zahlen > 127 auf - kann ich bezüglich encoding noch irgendetwas ändern???
danke, lg zentauro
hallo,
recht herzlichen DANK !!!!!
auf das wär ich glaub ich nie gekommenggg 😉
lg, zentauro
hallo,
nochmals vielen dank für die antworten, aber ich kann mich nicht richtig ausdrücken...
mit Convert.Tostring(20,16) bekomm ich einen string --> "14", welcher aus 2bytes (31&34 - siehe ascii tabelle) besteht. ich will aber keinen string sondern den wert 20 dezimal als char darstellen (ich glaub das ist irgendein nicht-druckbares zeichen)
==> http://de.wikipedia.org/wiki/ASCII-Tabelle
lg, zentauro
hallo,
danke erstmal für die antworten - ich brauche aber keinen string mit dem hex-format sondern ein echtes byte bzw. für die serielle einen echten charakter, wessen bit-wert diesem hexwert (z.B. 1F hex) entspricht.
danke, lg zentauro
hallo,
ich habe folgendes problem: ich habe mir einen bootloader für meinen microcontroller geschrieben. dieser erwartet sich hex-daten - das heisst, dass ich, wenn ich die zahl 20 runterschreiben will 0x14h senden muss. senden tu ich über die serielle schnittstelle (serial.write(byte[], offset, length)) - wie zum teufel mach ich nun aus meiner laufvariable i=20 einen char mit 0x14 Hex
ich such schon 3 stunden, aber ich bekomms echt nicht hin - noch dazu wenn ich werte, die 2bytes gross sind schreiben muss (bis 65535dezimal)
weiters möchte ich den inhalt eines intel-hex files runterschreiben, welches folgendes format hat:
:100000000C942A001895000018950000189500001F
:10001000189500001895000018950000189500002C
:10002000189500001895000018950000189500001C
:10003000189500000C94A83618950000189500003B
:1000400018950000189500001895000018950000FC
hieraus kann ich die hex-werte gleich nehmen (z.B.: 1F ) - das hab ich jetzt in einem string drinnen - wie kann ich nun den string "1F" auf 0x1f HEX umwandeln???
ich bitte um hilfe, bin am verzweifeln....
danke, lg zentauro
hallo,
ich habe in meiner form ein zedgraph control, mit welchem ich werte aufzeichne. dies funktioniert soweit ganz gut. ich hätte nun gerne die eigenschaft, dass beispielsweise ab 100 werte der graph zu laufen beginnt (wie beim oszi) und dann immer läuft. ich habs schon probiert, dass ich die ersten punkte im graph immer lösche, aber irgendwie schaut das dann vollkommen blöd aus (graph füllt den ganzen zeichenbereich nicht mehr aus)...
gibts da irgendwo eine einstellung, wo ich dem ding sagen kann, es soll mir immer nur die letzten 100 werte anzeigen??
danke, lg zentauro
hallo herbivore,
mySecret war ein Beispiel, welches leider falsch warggg - das "echte" field fängt groß an 😉
ist übrigens ein field, aber ich bekomm da auch nur null zurück...
lg, zentauro
hallo,
hab jetzt folgende binding-flags benutzt, aber bekomm trotzdem null zurück - hab ich was vergessen??
BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetProperty
danke, lg zentauro
danke für die schnelle antwort - ich werds sofort versuchen...
lg, zentauro
hallo,
bin nicht grad der reflection meister, aber ich hätte gerne auf ein privates member einer klasse zugegriffen bzw. den wert ausgelesen. kann man das überhaupt??
ich hätte das versucht, ist aber leider nicht auf private members möglich:
PropertyInfo propInfo = typeof(Auto).GetProperty("mySecret");
danke, lg zentauro
hallo,
falls mal irgendjemand noch so etwas braucht...
http://www.codeproject.com/KB/grid/PropertyGridExWinForms.aspx
lg, zentauro
danke - werd ich mir gleich mal anschaun...
lg, zentauro
hi,
zum stabilisieren meines programms hab ich nun einen kleinen exception logger eingebaut, welcher mir die geworfene exception in einem file ablegt. komischerweise funktioniert das ganze gut, wenn ich das aus VS2005 starte. sobald ich aber dann das executeable (egal ob debug oder release) ausführe - stürzt die sache ab, ohne dass die exception geloggt wurde - kann mir bitte jemand helfen, ich finds einfach nicht, was ich falsch mache...
--> das ist nun der code in meinem "program.cs" (startklasse)
static void Main(string[] args)
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (Exception e)
{
WriteErrorLog("error.log", e);
}
}
danke, lg zentauro
hi,
alles klar - DANKE!
--> werd wohl ums selbermachen nicht rumkommen....
lg, Zentauro
hallo,
ich hab schon ein wenig gesucht, aber leider nichts gefunden.
ich würde gerne anstatt den up/down-tasten mit dem tabulator auf das nächste element in meinem propertygrid hüpfen - ist das irgendwie möglich??
danke, lg zentauro
Hallo,
ich habe in meiner MainForm ein KeyDown - Event eingehängt. Am Anfang funktionierte auch alles - jetzt hab ich aber ein TableLayoutPanle und ein FlowLayout Panel drinnen und irgendwie kommt das Event nicht mehr...???
Was mache ich falsch - ist das Event nicht mehr "global", wenn ich andere Controls in meiner Form habe?? Muss ich jetzt in jedem Panel den EventHandler registrieren???
Danke, lg Zentauro
hallo,
ich würde gerne ein mp3 als ressource einbinden und irgendwie abspielen...
hat das zufällig schnonmal jemand gemacht - ich hab grad mal das mp3 in den ressourcen drin, weiss aber nicht, wie ich das ding jetzt abspielen kann, ohne dass ich einen externen pfad angeben muss...
danke, lg Zentauro