This is as close as I can come to it (and without knowing BASCOM):
' ***********************************************************************************
' * *
' * Title : VK-S274 & VK-S274R SERIES Hitachi Block Camera Controller *
' * Version : 1.1 Beta *
' * Last Updated : 02.12.2008 *
' * Target Device : ATMEGA8535 *
' * Author : Farmtech & Neptune769 *
' * Support : Try Skype Name : farmtech_dk or in MCS Bascom Forum *
' * Program code : BASCOM AVR *
' * Hardware req. : VK-S274 or VK-S274R SERIES Hitachi Block Camera *
' * Description : Control : Zoom - Focus & Iris Via Serialport on Camera *
' * Baud for camera : 4800.8.E.1 : Even Parity default for camera *
' * : 9600.8.N.1 but need setup in Camera (:WE05EF0) *
' * *
' * More Commands : See Datasheet lots of other stuff you can do. *
' * *
' * Datasheet : http://www.data-sheet.net/Vk-s454+ebook+pdf.html *
' * http://ip.gliebetronics.com:800/hitachi/S274R_Comm_E11.pdf *
' * *
' * Copyright : None use it as you like *
' * *
' ***********************************************************************************
$regfile = "m8535.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 30
$framesize = 60
Open "comd.2:4800,8,e,1" For Output As #1 '4800 bps , even Parity ; default for camera
'Config Ports for the 6 buttons n PortC we use buttons to GND
Config Portc.0 = Input : Set Portc.0 'Zoom NEAR Button
Config Portc.1 = Input : Set Portc.1 'Zoom FAR Button
Config Portc.2 = Input : Set Portc.2 'Focus NEAR Button IN
Config Portc.3 = Input : Set Portc.3 'Focus FAR Button OUT
Config Portc.4 = Input : Set Portc.4 'Iris offset (average) + Button
Config Portc.5 = Input : Set Portc.5 'Iris offset (average) - Button
Config Portc.6 = Input : Set Portc.6 'Freeze ON / OFF Toggle Button
Config Portc.7 = Input : Set Portc.7 'not used yet Button
Dim I As Byte , Irish As Byte , Irisl As Byte , Irisavg As Byte , Freezebit As Byte '
Print Version()
'setup Camera
Print #1 , ":WFCCB01" 'Switch the continuous digital zoom ON
Waitms 10
Print #1 , ":WFDFC10" 'Zoom speed normal
Waitms 10
Print #1 , ":WFCCB40" 'Switch the instant digital zoom ON
Waitms 10
Print #1 , ":WFCBBA8" 'Auto focus ON allways (not on manual Focus)
'setup Iris offset (average) level
Irisavg = &H40 'Iris is normal hex 40 i hope
Irish = 0 'Bit set for Iris to HIGH
Irisl = 0 'Bit set for Iris to LOW
Freezebit = 0 ' togglebit for freez images
Wait 1
' The main program
Do
If Pinc.0 = 0 Then
Print #1 , ":WFCBB99" 'zoom near
Bitwait Pinc.0 , Set 'wait for button relace
Print #1 , ":WFCBBFE" 'stop
Print #1 , ":WFCBBA8" 'Auto focus on
Waitms 300 'wait for auto zoom to get focus
End If
If Pinc.1 = 0 Then
Print #1 , ":WFCBB9B" 'zoom far
Bitwait Pinc.1 , Set 'wait for button relace
Print #1 , ":WFCBBFE" 'stop
Print #1 , ":WFCBBA8" 'Auto focus on
Waitms 300 'wait for auto zoom to get focus
End If
If Pinc.2 = 0 Then
Print #1 , ":WFCBBFE" 'Auto focus off
Print #1 , ":WFCBBAA" 'focus near
Bitwait Pinc.2 , Set 'wait for button relace
Print #1 , ":WFCBBFE" 'stop
End If
If Pinc.3 = 0 Then
Print #1 , ":WFCBBFE" 'Auto focus off
Print #1 , ":WFCBBA9" 'focus far
Bitwait Pinc.3 , Set 'wait for button relace
Print #1 , ":WFCBBFE" 'stop
End If
'Iris offset (average) level + Open
If Pinc.4 = 0 And Irish = 0 Then 'if pinc.4 and irisbit high is 0 else skip
Irisl = 0 'reset to low bit
I = Irisavg + 1 'to start from known pos
For I = Irisavg To 255 'Irisavg to High 00 - FF
Print #1 , ":WFD9E" ; Hex(i) 'Iris offset (average) send
Irisavg = I 'put I count into Irisavg
If I = 255 Then 'If MAX Iris then exit for
Irish = 1 'Set Iris bit TO high so it dont do the OPEN until you have closed it a bit
Exit For
End If
If Pinc.4 = 1 Then Exit For 'check for button relace
Next 'next i
End If
'Iris offset (average) level - Close
If Pinc.5 = 0 And Irisl = 0 Then 'if pinc.5 and irisbit low is 0 else skip
Irish = 0 'reset to high bit
I = Irisavg 'to start from known pos
For I = Irisavg To 0 Step -1 'from Irisavg to MIN FF - 00
Print #1 , ":WFD9E" ; Hex(i) 'Iris offset (average) send
Irisavg = I 'put I count into Irisavg
If I = 0 Then 'If MIN Iris then exit for
Irisl = 1 'Set Iris bit TO low so it dont do the CLOSE until you have open it a bit
Exit For
End If
If Pinc.5 = 1 Then Exit For 'check for button relace
Next 'next i
End If
If Pinc.6 = 0 And Freezebit = 0 Then
Print #1 , ":WFF3301" 'Freeze Field ON
Freezebit = 1 'set freezebit to freeze OFF
Bitwait Pinc.6 , Set 'check for button relace
End If
If Pinc.6 = 0 And Freezebit = 1 Then
Print #1 , ":WFF3300" 'Freeze OFF
Freezebit = 0 'set freezebit to freeze ON
Bitwait Pinc.6 , Set 'check for button relace
End If
If Pinc.7 = 0 Then
'Print #1 , ":" 'not used yet
'Bitwait Pinc.7 , Set
End If
Loop
Close #1
End
Hope it helps!
![]()