#! /usr/bin/python
""" Az optoelektronika M4. méréséhez. """

data = []

def Pf(R):
  "A fényteljesítményt számolja a fotódióda ellenálásából."
  return 220.0/R + 750.0/(R**2.0) + 750.0/(R**3.0) + 320.0/(R**4.0)

def telj(Rf, U=None):
   """Rs: sorosan kapcsolt ellenállás,
    Rf: a fotoellenállás ellenállása,
    P_: a lézer fényteljesítménye."""
   P_ = Pf(Rf)
   print "A fényteljesítmény %5.3f uW." % P_
   if U:
     I = U/Rs
   data.append(Rs, P_, I)
   
def adatsor():
  """ R: sorosan kapcsolt ellenállás,
 Rf: a fotoellenállás ellenállása,
 P: a lézer fényteljesítménye."""

  R = 10 # előtétellenállás kohm-ban
  print "Az utolsó adat után a fotoellenálláshoz írj -1-et."
  while 1:
    while 1:
      Rf = raw_input("Kérem a fotoellenállás ellenállását (ohm): ")
      try: Rf = float(Rf)
      except ValueError: pass
      else: break
    if Rf == -1:
      break
    P = Pf(Rf)
    print "A fényteljesítmény %5.3f uW." % P
    while 1:
	U = raw_input("Kérem az előtétellenálláson eső feszültséget (mV): ")
	try: U = float(U)
	except ValueError: pass
	else: break
    I = U/R
    print "A lézerdiódán folyó áram %6.3f uA." % I
    print
    data.append(I, P, U, Rf)

  print data

if __name__ == '__main__':
  adatsor()
