# THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
# APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
# HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
# OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
# IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
# ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

# IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
# WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
# THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
# GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
# USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
# DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
# PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
# EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGES.

# Copyright (c) 2018 Dr. Oliver Barth <info@drb-electronic.de>
# Frame for controlling analog input module

import ttk
import Tkinter as tk
from textExt import *

#
class FrameAnalogIn():

	#
	def __init__(self, frmAnalogIO, hwmng):
		self.adc = hwmng.getADC()

		self.labADC1 = ttk.Label(frmAnalogIO, text="analog in1", padding=10)
		self.labADC1.grid(column=0, row=0, sticky="ew", padx=5, pady=5)
		self.tfADC1 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=0)

		self.labADC2 = ttk.Label(frmAnalogIO, text="analog in2", padding=10)
		self.labADC2.grid(column=0, row=1, sticky="ew", padx=5, pady=5)
		self.tfADC2 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=1)

		self.labADC3 = ttk.Label(frmAnalogIO, text="analog in3", padding=10)
		self.labADC3.grid(column=0, row=2, sticky="ew", padx=5, pady=5)
		self.tfADC3 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=2)

		self.labADC4 = ttk.Label(frmAnalogIO, text="analog in4", padding=10)
		self.labADC4.grid(column=0, row=3, sticky="ew", padx=5, pady=5)
		self.tfADC4 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=3)

		self.labADC5 = ttk.Label(frmAnalogIO, text="analog in5", padding=10)
		self.labADC5.grid(column=0, row=4, sticky="ew", padx=5, pady=5)
		self.tfADC5 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=4)

		self.labADC6 = ttk.Label(frmAnalogIO, text="analog in6", padding=10)
		self.labADC6.grid(column=0, row=5, sticky="ew", padx=5, pady=5)
		self.tfADC6 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=5)

		self.labADC7 = ttk.Label(frmAnalogIO, text="analog in7", padding=10)
		self.labADC7.grid(column=0, row=6, sticky="ew", padx=5, pady=5)
		self.tfADC7 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=6)

		self.labADC8 = ttk.Label(frmAnalogIO, text="analog in8", padding=10)
		self.labADC8.grid(column=0, row=7, sticky="ew", padx=5, pady=5)
		self.tfADC8 = TextExt(frmAnalogIO, height=1, width=10, column=1, row=7)

	#
	def update(self):
		adin = self.adc.getADValues()
		self.tfADC1.write(adin[0])
		self.tfADC2.write(adin[1])
		self.tfADC3.write(adin[2])
		self.tfADC4.write(adin[3])
		self.tfADC5.write(adin[4])
		self.tfADC6.write(adin[5])
		self.tfADC7.write(adin[6])
		self.tfADC8.write(adin[7])
		return adin

