Samstag, 4. Februar 2012, 23:13 UTC+1

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

1

Donnerstag, 17. Januar 2008, 11:41

Chromoflex per PC ansteuern

hi Community,

habe mir ein Chromoflex besorgt und will das Gerät über den PC ansteuern um mir meine Farbwechsel mit VB zu Programmieren.
Nachdem ich alles mögliche veranstaltet habe um auf das Gerät mittels PC zuzugreifen, habe ich es endlich geschafft, den Comport auszulesen um zu sehen welche Datenpakete von der Software (Cf_Edit) losgeschickt werden. Habe mir dann die Daten abgespeichert (verschiedene Farben, Effekte) die ich nun direkt aus VB an den Chromoflex schicken kann.
Klappt einwandfrei :lol:

Jetzt aber zu meinem Eigentlichen Problem:
Da das Protokoll vom Chromoflex immer eine CRC16-Modbus Checksumme an die zu sendenen Daten dranhängt, kann ich nur fertige Datenpakete senden, die ich am Comport mitgelesen habe.
Das ist LÄSTIG :evil:, weil ich 100erte Einstellungen mitlesen müßte, die ich gerne verwenden will.

Da in der Beschreibung "Chromoflex Usp3_com.pdf" der CRC16 in C++
beschrieben wird -> ich aber kein C++ kann :oops: wollte ich doch hier mal anfragen, wer dieser Sprache mächtig ist und mir den Rechenvorgang mal erläutern kann, damit ich ihn in VB reinkriege.
Barthelme scheint ja nicht in der Lage oder Willens zu sein auf Fragen diesbezüglich zu antworten :evil:
Es könnte aber auch gleich ein CRC16-Programm in VB sein, vieleicht hat ja jemand eines auf seinem Rechner rumliegen!?
Die Berrechnung muß als Ausgabe einen HEX-Wert und keinen ASCII-Wert haben. Gebe mal ein Beispiel:
Wenn ich den Hexwert 0xCA berechne, muß als Lösung: 0x173F rauskommen und nicht 0xB0F0.
Wenn ich das nämlich noch hinbekomme, dann kann ich mittels PC das Gerät komplett steuern.

Also interessierte Chromoflex Benutzer, bitte helft mir, =D> damit ich mich von den eingebetteten Effekten vom Chromoflex verabschieden kann.

Gruß vom Chromoflex-User
Lobo
  • Zum Seitenanfang

LedBob

Junior LedStyler

2

Donnerstag, 17. Januar 2008, 13:45

Warum das Rad neu erfinden? Hier gibt's fertigen VB-Code zur CRC16 Berechnung:

http://www.softaware.de/dl/crc.zip

Oder bemühe den C to VB Konverter:

http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx

Gruß

LB
  • Zum Seitenanfang

bene

LedStyles Guru

3

Donnerstag, 17. Januar 2008, 13:55

Re: Chromoflex

Zitat von »"Lobo"«


Also interessierte Chromoflex Benutzer, bitte helft mir, =D> damit ich mich von den eingebetteten Effekten vom Chromoflex verabschieden kann.


Helfen kann ich leider nicht, aber großes Intresse an den veränderten Effekten habe ich! Also wenn du das nas laufen bekommst wäre ich sehr verbunden über das eine und andere Script von dir 8)
Signaturen kann man nicht editieren Löti :thumbsup:
  • Zum Seitenanfang

LedBob

Junior LedStyler

4

Donnerstag, 17. Januar 2008, 14:17

Hab noch was gefunden - vielleicht hilft das:

http://www.ip-symcon.de/forum/attachment.php?attachmentid=2103&d=1190984062

In der Datei findest Du neben dem Winamp Plugin für Chromoflex noch die usp3tcom.dll Bibliothek. Die müsstest du eigentlich ohne Probleme in VB einbinden können und somit alle Funktionen steuern können...

Gruß

LB
  • Zum Seitenanfang

bene

LedStyles Guru

5

Donnerstag, 17. Januar 2008, 14:26

Zitat von »"LedBob"«

Hab noch was gefunden - vielleicht hilft das:

http://www.ip-symcon.de/forum/attachment.php?attachmentid=2103&d=1190984062

In der Datei findest Du neben dem Winamp Plugin für Chromoflex noch die usp3tcom.dll Bibliothek. Die müsstest du eigentlich ohne Probleme in VB einbinden können und somit alle Funktionen steuern können...

Gruß

LB


Das Winamp Plugin habe ich schon mal vor längere Zeit getestet, muss leider sagen das es grotten schlecht ist.

Wenn du da was bessere proggen kannst bist du mein Held! =D>
Signaturen kann man nicht editieren Löti :thumbsup:
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

6

Donnerstag, 17. Januar 2008, 15:36

tja LedBob, das ist genau mein Problem -> ich muß das Rad neu erfinden, denn die CRC's im Netz liefern alle den ASCII-Code oder rechnen völlig falsch.
Der C to VB Converter ist Cool :lol: , das bringt mich schon mal ein bischen weiter -> der Übersetzt den C-Code in VB.net und ich hab VB6, aber da wird sich sicherlich auch noch was machen lassen.

Zu dem Winamp PlugInn kann ich wie bene auch nur sagen das es totale Scheiße ist. Zu der dll bräucht ich aber sowieso die Anweisungen auf welche die dll reagiert.

Wenn ich weiterkomme, poste ich das dann

Gruß Lobo
  • Zum Seitenanfang

LedBob

Junior LedStyler

7

Donnerstag, 17. Januar 2008, 18:21

Zitat von »"Lobo"«

sch... ist. Zu der dll bräucht ich aber sowieso die Anweisungen auf welche die dll reagiert.


Die dll stellt folgende Funktionen bereit:

_download
_e2_adr
_e2_cmd
_e2_data
_e2_len
_e2_percent
_exit_usp3
_fade_rgbx
_firmware_reset
_init_usp3
_load_e2_file
_set_group
_set_rgbx
_set_serial
_usp_frame_send
_xd_prog
_xd_reset

Der Code für den Winamp-Plug benutzt nur diese vier:

_init_usp3
_exit_usp3
_set_rgbx
_fade_rgbx

[code:1]
typedef int (*init_usp3)(int comnr, int baud);
//int init_usp3(int comnr, int bd); // bd=0 fuer Default

typedef void (*exit_usp3)(void);
//void exit_usp3(void)

typedef void (*set_rgbx)(int adr, unsigned long rgbx);
//void set_rgbx(int adr, unsigned long rgbx); // R: LL .. X: HH

typedef void (*fade_rgbx)(int adr, unsigned long rgbx, unsigned int incspeed, unsigned int inc_red, unsigned int inc_green, unsigned int inc_blue, unsigned int inc_x);
//void fade_rgbx(int adr, unsigned long rgbx, unsigned int incspeed, unsigned int inc_red, unsigned int inc_green, unsigned int inc_blue, unsigned int inc_x);
[/code:1]

Die zu übergebenden Parameter sind im Code beschrieben, müsstest du also eigentlich auch in VB verwenden können. Die Parameter für die anderen Funtkionen sind ohne Beispielcode nur schwer rauszufinden...

Gruß

LB
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

8

Freitag, 18. Januar 2008, 00:06

hey LedBob,
Du bist ja ganz gut auf dem laufendem :o
ich danke Dir erst mal für die vielen Info's

Werde aber erst mal mein Projekt, diese Checksummeberechnung weiterverfolgen, weil ich schon soviel Zeit darin investiert habe. :wink:
Ich bin jetzt auch nicht der Super-Progammierer in VB und mit den neuen Info's von Dir müßte ich mich auch erst mal wieder kümmern, wie ich die dll in VB einbinde. Habe vorhin schon mal ein bischen damit rumgespielt, aber VB konnte trotz richtiger Pfadangabe die dll nicht finden --> wer weiß wo dran es liegt --> bleibe aber wahrscheinlich trotzdem noch dran, falls das mit CRC-Code nichts wird.

Wo hast Du eigentlich die Info's zur dll her --> wenn man mal ganz direkt fragen darf?

Thx
  • Zum Seitenanfang

DSL-man

Junior LedStyler

Beiträge: 189

Wohnort: WOLFSBURG

Beruf: Consultant für Enterprise Content Managemet Systeme - Volkswagen Wolfsburg

9

Freitag, 18. Januar 2008, 08:59

laut barthleme wird die komplette API in zukunft bereitgestellt..
hab ich von mein Programmierer erfahren, der kontakt zu Barthleme hatte.

bei mir läuft die komplette Steuerung für 15module z.Z unter debian.
da ich demnächst wieder 15Module in ein anderen Projekt verbaue wäre es gut mal seitens Barthleme Unterstützung zu bekommen.. da Ihre XD software sehr "schrottig" ist.
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

10

Freitag, 18. Januar 2008, 09:52

Zukunft, genau da sehe das Problem!
Das kann nächste Woche sein, oder aber erst in einem halben Jahr. :lol:
Debian sagt mir jetzt erst mal nix --> aber damit kannst du auch direkt auf die Hardware über die SR232 zugreifen?
  • Zum Seitenanfang

DSL-man

Junior LedStyler

Beiträge: 189

Wohnort: WOLFSBURG

Beruf: Consultant für Enterprise Content Managemet Systeme - Volkswagen Wolfsburg

11

Freitag, 18. Januar 2008, 10:01

debian = linux
  • Zum Seitenanfang

LedBob

Junior LedStyler

12

Freitag, 18. Januar 2008, 11:10

Zitat von »"Lobo"«

Wo hast Du eigentlich die Info's zur dll her --> wenn man mal ganz direkt fragen darf?


Klar darfst du. Die Infos kann man direkt aus der DLL auslesen (z.B. mit PE Explorer). Die DLL muß ja mitteilen welche Funktionen sie importiert und exportiert... Wie gesagt ist das mit den benötigten Parametern nicht so leicht.

Zum CRC16 - hier hab ich noch eine Implementation in Delphi gefunden:
http://www.ibrtses.com/delphi/dcrc.html

Nur zur Sicherheit: Das innerhalb der Packete $CA gegen $CB$00 und $CB gegen $CB $01 ausgetauscht werden muß hast du in der Implementationsbeschreibung gesehen?

Gruß

LB
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

13

Freitag, 18. Januar 2008, 12:16

ja, das habe ich mitbekommen, das betrifft aber nicht die Berechnung der Checksumme, sondern das eigentliche Protokoll.

Wenn ich den Comport mitlese, wird an den gesendeten Daten nichts verändert, also CA bleibt CA.
Wenn ich aus Docklight die Daten sende, so wie ich sie empfangen habe klappt das --> ich muß also nichts an dem Datenstream verändern, das es funktioniert.
Deshalb habe ich mich um das USP3-Protokoll aber auch nicht weiter gekümmert.

Ach ja, Delphi, schön wenn man's kann :roll: :-), hab mir aber die Beschreibung mal Vorsichtshalber gezogen.

Gruß
Lobo
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

14

Sonntag, 20. Januar 2008, 13:09

jetzt habe ich doch noch mal eine Frage zu dem Chromoflex-Modul,
bltzt das Gerät beim einschalten auch bei Euch kurz auf?
Und gibt es evtl. eine interne Möglichkeit dies zu unterbinden?

Thx
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

15

Sonntag, 20. Januar 2008, 13:15

Re: Chromoflex

Zitat von »"bene"«

Helfen kann ich leider nicht, aber großes Intresse an den veränderten Effekten habe ich! Also wenn du das nas laufen bekommst wäre ich sehr verbunden über das eine und andere Script von dir.


Tja bene, an den Effekten arbeite ich ja gar nicht, sondern ich will mir die Effekte mittels meiner PC-Software zusammenbasteln.
Das ganze soll dann meine Treppenhauswände in farbigen Licht erstrahlen lassen. Und die Farben sollen sich dann nach Aussentemperatur, Jahreszeit und Uhrzeit verändern.
  • Zum Seitenanfang

Andy_KEH

LedStyles Genie

Beiträge: 1 815

Wohnort: Niederbayern

16

Sonntag, 20. Januar 2008, 13:53

Warum machst du dir denn die Mühe ein bestehendes Gerät zu ändern. Steck doch deine Energie in ein eigenes Gerät. Es gibt hier im Forum doch schon einige Beispiele für die Realisierung. Im Grunde musst du nur noch die Effekte programmieren und deine Temperatur und Zeitsteuerung reinbringen.
Grüße aus Niederbayern

Andy
_____________________________________________________________________________________
Momentan laufende Aktionen: PIX- Die Einzelpixel-Platine , Runde PLCC6 Leiterplatte, PLCC6 RGB-Stripe
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

17

Sonntag, 20. Januar 2008, 14:20

hätt ich's vorher gewußt, hätte ich mich evtl. auch für die eigene Hardwarevariante entschieden.
Ich habe mich zwar noch nicht weiter nach eigenen Hardwarelösungen hier im Board umgeschaut, werde das aber auf jedenfall noch mal in Angriff nehmen.
Habe aber jetzt auch die Lösung für die Checksumme-Berechnung vom Chromoflex gefunden und kann endlich über VB oder VBA auf das Gerät zugreifen. \:D/

Lobo
  • Zum Seitenanfang

refo

LedStyles Newbie

18

Dienstag, 22. Januar 2008, 17:34

Hilfe zur Chromoflex ersucht

Hallo Leute,
seit über einem halben Jahr habe die Chromoflex als Steuerung für die Wohnzimmerlampen im Dachboden verbaut. Die Ansteuerung soll aus einem eigenen VB Programm heraus erfolgen. Aufgrund von Verständnisproblemen des Protokolls habe ich damals die Sache erst mal beiseite gelegt, da andere Aufgaben erst mal Vorrang hatten. Jetzt wo die wichtigsten Sachen erst mal erledigt sind (Hausumbau), möchte ich das Kapitel mit der eigenen Ansteuerung noch mal in Angriff nehmen. Die Lampen jedesmal nur mit dem CF Editor zu bedienen ist irgendwann zu blöd.
Leider ergibt die Suche im Internet keine größeren Anhaltspunkte und mit dem Abhören der Schnittstelle mittels Portmon komme ich auch nicht so recht weiter. Und jetzt lese ich hier, das das mit einem VB Programm bereits möglich ist. Könntet ihr mir bitte auf die Sprünge helfen? Ein klitzekleines Beispiel vielleicht? Nur das ich wenigstens irgendwie mal einen Anhaltspunkt über das Protokoll habe?

Rene
  • Zum Seitenanfang

Lobo

LedStyles Azubi

Beiträge: 76

Wohnort: Kassel, Germany

Beruf: Energieelektroniker

19

Mittwoch, 23. Januar 2008, 11:53

Hmmm, da muß ich mal nachdenken wie man am besten anfängt..... :-k

Als erstes schau mal hier nach: http://www.ledstyles.de/ftopic1805.html und scrool bis zu den Registern (schätzungsweise warst du schon mal da) :lol:

So, fangen wir mal an das Protokoll aueinander zu nehmen... 8)
Ich schreibe alles in HEX!

Jeder Sendebefehl fängt mit -> CA <- an.

Dann folgen 3bytes für die Adressierung, gehen wir davon aus, das alle Chromoflex angesprochen werden sollen
jetzt haben wir -->

Zitat

CA 00 00 00


Jetzt kommen noch 2bytes für die länge, die gleich als Befehl gesendet werden sollen >> komme ich gleich noch mal drauf zurück.
jetzt haben wir -->

Zitat

CA 00 00 00 00 00


Jetzt kommt es darauf an, ob du einen Farbwert setzen willst, oder ein internen Effekt --> wir gehen erst mal von einer Farbe aus, kommt also noch ein FE dazu.
jetzt haben wir -->

Zitat

CA 00 00 00 00 00 7E


so, nun kommt noch 1byte, um dem Chromoflex zu sagen ab welcher Adresse im Register du schreiben willst, schau da mal in dem Link von oben nach. Ich wähle mal einen einfachen Farbwert, also ab Adresse 4 in HEX also 04
jetzt haben wir -->

Zitat

CA 00 00 00 00 00 7E 04


dazu kommen jetzt 4bytes Farbwerte (RGBX).
So, ich möchte jetzt die Farbe grün mit 100%
also 00 (kein rot)
und FF (grün 100%)
00 (kein blau)
00 (kein X)
macht also zusammen 00 FF 00 00
alles zusammen -->

Zitat

CA 00 00 00 00 00 7E 04 00 FF 00 00


kommen wir jetzt noch mal auf den Anfang zurück, nämlich auf die 2bytes länge. Alles was nach, bei Farbe 7E kommt, ist die zu sendende länge.
Das heißt, wir wissen jetzt, das unser "Paket" 5bytes lang sein wird
-->

Zitat

CA 00 00 00 00 05 7E 04 00 FF 00 00


Jetzt muß aus diesem ganzen, die 2byte lange CRC-Checksumme berechnet werden. In diesem Fall lautet sie B5 E1, das kommt noch hinten dran und somit lautet die gesamte Nachricht, die an das Chromoflex gesendet werden soll
-->

Zitat

CA 00 00 00 00 05 7E 04 00 FF 00 00 B5 E1


Es gibt da noch einige Problemfälle, wo man am besten mehrere Pakete sendet, das aber zu einem späteren Zeitpunkt!

Um die anderen Effekte anzusteuern müsste man mal gesondert besprechen --> wird sonst ein bischen lang das ganze, für den Anfang sollte das aber erst mal reichen.

Ich hoffe, Du kannst mit meiner Erläuterung was anfangen und ich konnte Dir das Protokoll etwas näher bringen!? :wink:



Gruß
Lobo
  • Zum Seitenanfang

refo

LedStyles Newbie

20

Mittwoch, 23. Januar 2008, 18:26

Mensch Lobo, Du bist ein Schatz.

Ich habe mal schnell eine Form genommen, Port geöffnet und mal ein Datenpaket gesendet - und es geht. :lol:

Also der Anfang ist gemacht, werde mich mal am WE hinsetzen und mal etwas mehr einarbeiten. Aber anhand deiner Erklärung sind die Startschwierigkeiten erst mal behoben. Einfach klasse, ich melde mich dann nochmal . . .

Bis dahin, schöne Grüße

refo
  • Zum Seitenanfang