mikrocontroller.net

Forum: PC-Programmierung K8055 Experimentierboard mit Visual Basic ansteuern


Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sitze hier vor meinem neuen K8055 Experimentierboard, und irgendwie 
will das ganze nicht so wie ich will.
Die Demoprogramme habe ich installiert, undd ie funktionieren auch, 
damit kann ich alles wunderbar ansteuern. Wenn ich dann aber in Visual 
Basic anfange zu programmieren, dann gibt er mir eine Fehlermeldung aus, 
dass er das Programm so nicht fertigstellen kann. Er bricht also nicht 
beim Ausführen, sondern noch davor ab.
Die Fehlermeldung sieht so aus:

1.
*******
Error  1  The "ResolveManifestFiles" task failed unexpectedly.
System.ArgumentException: Illegal characters in path.
   at 
System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String 
[]  str)
   at 
System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissio 
nAccess  access, AccessControlActions control, String[] pathListOrig, 
Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
   at 
System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAcces 
s  access, String[] pathList, Boolean checkForDuplicates, Boolean 
needFullPath)
   at System.IO.Path.GetFullPath(String path)
   at 
Microsoft.Build.Tasks.Deployment.ManifestUtilities.Util.RemoveDuplicateI 
tems(ITaskItem[]  items)
   at 
Microsoft.Build.Tasks.ResolveManifestFiles.set_NativeAssemblies(ITaskIte 
m[]  value)  K8055 testprogramm
********

2.
********
Error  2  The 
"NativeAssemblies=@(NativeReferenceFile);@(_DeploymentNativePrerequisite 
)"  parameter for the "ResolveManifestFiles" task is invalid.  K8055 
testprogramm
********

3.
********
Error  3  The "ResolveManifestFiles" task could not be initialized with 
its input parameters.  K8055 testprogramm
********


Die k8055d.dll befindet sich im Projektordner.
Das Programm habe ich nach Informationen, wie ich sie im Netz gefunden 
habe gemacht, mehrere Quellen haben das so als lauffähiges Programm 
angegeben. Es ist sehr simpel, da es erstmal nur zum test dienen soll, 
ob das so klappt:

Public Class Form1

    ' k8055.dll declarations...
    Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal 
CardAddress As Integer) As Integer
    Private Declare Sub CloseDevice Lib "k8055d.dll" ()
    Private Declare Function ReadAnalogChannel Lib "k8055d.dll" (ByVal 
Channel As Integer) As Integer
    Private Declare Sub ReadAllAnalog Lib "k8055d.dll" (ByRef Data1 As 
Integer, ByRef Data2 As Integer)
    Private Declare Sub OutputAnalogChannel Lib "k8055d.dll" (ByVal 
Channel As Integer, ByVal Data As Integer)
    Private Declare Sub OutputAllAnalog Lib "k8055d.dll" (ByVal Data1 As 
Integer, ByVal Data2 As Integer)
    Private Declare Sub ClearAnalogChannel Lib "k8055d.dll" (ByVal 
Channel As Integer)
    Private Declare Sub SetAllAnalog Lib "k8055d.dll" ()
    Private Declare Sub ClearAllAnalog Lib "k8055d.dll" ()
    Private Declare Sub SetAnalogChannel Lib "k8055d.dll" (ByVal Channel 
As Integer)
    Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal Data As 
Integer)
    Private Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal 
Channel As Integer)
    Private Declare Sub ClearAllDigital Lib "k8055d.dll" ()
    Private Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal 
Channel As Integer)
    Private Declare Sub SetAllDigital Lib "k8055d.dll" ()
    Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal 
Channel As Integer) As Boolean
    Private Declare Function ReadAllDigital Lib "k8055d.dll" () As 
Integer
    Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal 
CounterNr As Integer) As Integer
    Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal CounterNr 
As Integer)
    Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal 
CounterNr As Integer, ByVal DebounceTime As Integer)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles MyBase.Load
        OpenDevice(3)
        SetAllDigital()
        CloseDevice()
    End Sub
End Class


Ich hoffe mir kann da jemand helfen, ich würde gerne anfangen damit 
rumzuprogrammieren.

Gruß, Paul

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
ich hab zwar diese Karte bis jetzt nur in VB6 angesprochen, aber probier 
mal folgendes:

führe die funktionen  OpenDevice(3), SetAllDigital(), CloseDevice() 
nicht im FormLoad aus, sondern platziere einen Button auf die Form und 
mach das ganze beim "Button Click". Da siehst du schon mal, ob deine 
Anwendung überhaupt startet.

Wenn nicht, dann mach ein neues Projekt. das sollte ansich schon mal 
laufen.
Dann nach und nach den code reinschreiben und immer wieder starten. dann 
siehst du, an welcher stelle es kracht.

Ach ja, bist du dir sicher, das du die Cardadress 3 öffnen 
willst(kannst)?
Schau mal im Demoprogramm nach, da wird angezeigt, welche Cardadress 
verwendet wird. Vieleicht liegt da ja schon der Fehler.

Viel erfolg

thomas

Autor: Paul Kießhauer (matrixq)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Tipp mit dem neuen Projekt hat geholfen. Das ist zwar mit dem 
Programm davor zu 100% identisch, aber jetzt läuft es.
Sehr merkwürdig.

Vielen Dank

Autor: Torben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muss nicht unbedingt vorher gucken welche CardAdress die Richtige 
ist.
Einfach über ne Schleife ansteuern:
dim z as integer
for z = 0 to 3
opendevice(z)
next z

oder wenn man es anzeigen lassen will:
for z = 0 to 3
if opendevice(z)=z then MsgBox(z)
next z

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.