megsv.dll für GSV-2 und GSV-3
megsv4.dll für GSV-4
Was ist mit Android?
Hier helfen vermutlich die Code-Snippets.
Anbei der Quelltext, der für ein Experiment mit GSV-3BT und Windows-Mobile 5 unter "Pocket-Zeus Basic" geschrieben wurde.
Von Zeile 366 bis 797 sind die wesentlichen Funktionen untergebracht...
Vielleicht hilft der Code, die Bedienungsanleitung ba-gsv3.pdf zu verstehen.
Code: Alles auswählen
' ***************************************************************************
func gsvstop()
ComOutput(Channel1,chr(35))
endfunc
' ***************************************************************************
func gsvstart()
ComOutput(Channel1,chr(36))
endfunc
' ***************************************************************************
func gsvsetzero()
ComOutput(Channel1,chr(14))
pause(1000)
ComOutput(Channel1,chr(12))
playsound("xx")
endfunc
' ***************************************************************************
func gsvsetfrequency(freq as integer)
dim line as string
protocol = 2
' gsvstop()
' pause(1000)
' ComPurge(Channel1)
line = Chr($8A)+Chr($08)+Chr($B3)+Chr($B4)
select integer freq
case 1
line = Chr($8A)+Chr($08)+Chr($B3)+Chr($B4)
case 10
line = Chr($8A)+Chr($08)+Chr($F8)+Chr($5F)
case 20
line = Chr($8A)+Chr($07)+Chr($F8)+Chr($5F)
case 50
line = Chr($8A)+Chr($07)+Chr($FC)+Chr($F3)
case 100
line = Chr($8A)+Chr($06)+Chr($FC)+Chr($F3)
endselect
ComOutput(Channel1,line)
pause(1000)
gsvfrequency = gsvGetFrequency()
gsvintervall = 1/gsvfrequency
cgsvfrequency = formatvalue(1000.0,gsvfrequency)+" Hz"
cgsvintervallformat = getformatstring(100.0,gsvintervall)
FormLabel(Main_Frequency,-1,-1,-1,-1,cgsvfrequency)
protocol = 2
gsvstart()
endfunc
' ***************************************************************************
func gsvGetSerialNumber() as string
dim line as string
ComPurge(Channel1)
ComOutput(Channel1,chr(31))
pause(2000)
line = gsvreadline(2000)
' print line
exit(line)
endfunc
' ***************************************************************************
func gsvGetFrequency() as single
dim highbyte, midbyte, lowbyte as integer
dim i, inbyte as integer
dim inchar as string
dim line as string
ComPurge(Channel1)
ComOutput(Channel1,chr(22))
pause(1000)
line = gsvreadline(2000)
' print line
for i = 1 to 4
inchar = Mid(line,i,1)
inbyte = Asc(inchar)
' print inbyte
ongosub i-1, label0, label1, label2, label3
next
gsvfrequency=5000000.0/(16777216.0-((highbyte*65536.0)+(midbyte*256.0)+lowbyte))
' gsvfrequency = (highbyte*65536.0)+(midbyte*256.0)+lowbyte
' gsvfrequency = 16777216.0 - gsvfrequency
' gsvfrequency = 5000000.0 / gsvfrequency
' print "gsvfrequency=";gsvfrequency
exit(gsvfrequency)
label0:
return
label1:
highbyte = inbyte
return
label2:
midbyte = inbyte
return
label3:
lowbyte = inbyte
return
endfunc