
#idString HKJ,VirtualUserGenerator,
#name VirtualUserGenerator
#handle VUG
#port none

#helpurl http://lygte-info.dk/project/TestControllerVirtualDevices%20UK.html#Virtual_user_generator_(VUG)

#outputOff on 0

#interfaceType VUG

; Strings to configure device in different modes
; First parameter must match a #value (4 parameter) and second parameter must match what #askMode returns
; First parameter is also used in shortcut menu
;#cmdMode 

; Setup menu functions
; The parameters on the first line is: type name page 
; Settings on the following lines are:
; read: SCPI to read value from device, is used to synchronize when opening setup page or setting equal named fields. Not always used
; askValuesReadFormat: Parse read value.
; write: Send the value to device, this field is used in combination with data fields in the details to send updates to device.
; tip: Add this tip to all components for this input field.

#cmdSetup radio upTime
:read: upTime?
:write: upTime
:update: Frequency,Period
:tip: Time output is high in each period
0s 0
1s 1
3s 3
10s 10
30s 30
100s 100


#cmdSetup radio downTime
:read: downTime?
:write: downTime
:update: Frequency,Period
:tip: Time output is low in each period
0s 0
1s 1
3s 3
10s 10
30s 30
100s 100

#cmdSetup number upTime
:read: upTime?
:write: upTime
:update: Wave
:tip: Time output is high in each period
sec 0 3600

#cmdSetup number downTime
:read: downTime?
:write: downTime
:update: Wave
:tip: Time output is low in each period
sec 0 3600


#cmdSetup number Offset
:read: OFFSET?
:write: OFFSET
:tip: A general offset to the output value
_ -1M 1M


#cmdSetup text up_Exp
:read: upExp?
:write: upExp
:tip: Formula for up part of wave, use x as parameter (it varies from 0 to 1), cycles contains number of cycles generated
1000


#cmdSetup text down_Exp
:read: downExp?
:write: downExp
:tip: Formula for down part of wave, use x as parameter (it varies from 0 to 1), cycles contains number of cycles generated. When missing up formula will be used with inverted sign.
1000


#cmdSetup checkbox Level_Jump
:read: noLevelJump?
:write: noLevelJump
:tip: Disabling level jumps secure a continuous curve, but the level will usually drift over time.
Disable 0 1




#cmdSetup buttonsOn Output
:read: on?
:write: on
:updatealloff:
Off 0
On 1



#cmdSetup info Wave
:read: freq?
Hz
Frequency

#cmdSetup info Wave
:read: period?
s
Period

#cmdSetup info Error
:read: error?
:layout:
_
_

