02.08.2010, 08:41
Beitrag #1
|
Dommas
LVF-Gelegenheitsschreiber
Beiträge: 93
Registriert seit: Jul 2010
2010
2008
DE_EN
86741
Deutschland
|
Enum-Werte ändern
Hallo zusammen!
Ein Enum ist doch im Prinzip nichts anderes, als ein numerisches Feld, in das man keine Werte eingeben, sondern aus vorgefertigten Werten einen aussuchen kann. Zur Vereinfachung für den Bediener wurde diesen numerischen Werten einfach ein Name zugewiesen.
Das müsste man doch in etwa so sagen können, oder?
Nun zu meiner Frage:
Ich möchte jetzt keine Dezimal-Werte, sondern Hexwerte, und die auch nicht einfach von 0-F, sondern selber festlegen können. Also Zeile1 sei 0, Zeile2 sei 3 und Zeile3 sei A, oder so in der Richtung.
Geht das irgendwie? Oder muss ich mir da immer eine Case-Struktur hinter den Enum legen, der mir dann aus dem 2er des Enums die 3 macht, die ich will, um bei obigem Beispiel zu bleiben?
Danke und Gruß
Dommas
|
|
|
02.08.2010, 09:00
(Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2010 09:02 von kaiman.)
Beitrag #2
|
|
|
02.08.2010, 09:03
Beitrag #3
|
|
|
02.08.2010, 09:08
Beitrag #4
|
|
|
05.05.2014, 07:53
Beitrag #5
|
TDO
LVF-Gelegenheitsschreiber
Beiträge: 125
Registriert seit: Oct 2013
2016
2009
DE
Deutschland
|
RE: Enum-Werte ändern
Ich muss das Thema hier nochmal kurz aufgreifen, da ich selbst ein ähnliches Problem habe.
Ich kommunizieren über LabView mit Messkarten von Meilhaus. Wenn ich einen Ausgang setzen oder rücksetzen möchte, muss ich den ganzen Port (8 Aus- bzw. Eingänge) machen. Dazu muss ich den aktuellen Zustand des Port ODER - bzw. UND verknüpfen mit dem Wert den ich brauche, damit ich die anderen Bits nicht verändere, sondern nur den Aus- bzw. Eingang, den ich brauche.
Da das ein etwas größeres Projekt werden soll, will ich ungern die reinen Zahlen mit denen verknüpft wird in meinem Quelltext sehen, sondern am liebsten nur quasi die Beschreibung, die hinter der Zahl steckt.
z.B.:
Set A1 - 1
Set A2 - 2
Set A5 - 16
Release A1 - 254
Release A2 - 253
Release A5 - 239
Es ist wohl nicht möglich den Wert in einem Enum frei zu wählen, so wie ich das hier verstanden habe.
Was könnte ich denn stattdessen machen? Ist ein Array einer Stuktur mit String und Zahl sinnvoll oder was meint ihr?
Danke und Gruß
TDO
|
|
|
05.05.2014, 08:22
(Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2014 08:23 von GerdW.)
Beitrag #6
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Enum-Werte ändern
Hallo TDO,
bei deinem Ansatz müsstest du ein Enum erstellen, in dem alle 256 möglichen Bitkombinationen entsprechend mit "Namen" verknüpft werden. Was für ein Aufwand…
Ich habe mir mal ein subVI für die user.lib geschrieben, das so aussieht:
(Im TRUE-Case befindet sich ein OR statt NOT/AND. "bool" entscheidet über Setzen/Löschen des Bits.)
An die "Bitnummer" kannst du auch ein Enum mit "A1" bis "A8" (entsprechend der Bitnummer 0 bis 7) anschließen…
|
|
|
05.05.2014, 10:01
Beitrag #7
|
TDO
LVF-Gelegenheitsschreiber
Beiträge: 125
Registriert seit: Oct 2013
2016
2009
DE
Deutschland
|
RE: Enum-Werte ändern
Hallo Gerd,
vielen Dank für deine Idee! Genauso mache ich es jetzt auch!
Gruß
TDO
|
|
|
| |