Started integrating into Microscope class

This commit is contained in:
Joel Collins 2018-11-07 15:06:41 +00:00
parent 5df9b53a9c
commit 143be8f592
4 changed files with 84 additions and 0 deletions

View file

@ -1 +1,3 @@
from .microscope import Microscope
__version__ = "0.1.0"

View file

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
import time
import io
import threading

View file

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
import numpy as np
from openflexure_stage import OpenFlexureStage
from .camera.pi import StreamingCamera
class Microscope(object):
def __init__(self, camera: StreamingCamera, stage: OpenFlexureStage):
"""Create the microscope object. The camera and stage should already be initialised."""
self.camera = camera
self.stage = stage
self.stage.backlash = np.zeros(3, dtype=np.int)
def __enter__(self):
"""Create microscope on context enter."""
return self
def __exit__(self, exc_type, exc_value, traceback):
"""Close microscope on context exit."""
self.close()
def close(self):
"""Shut down the microscope hardware."""
self.camera.close()
self.stage.close()

55
tests/test_microscope.py Normal file
View file

@ -0,0 +1,55 @@
#!/usr/bin/env python
from openflexure_microscope.camera.pi import StreamingCamera
from openflexure_stage import OpenFlexureStage
from openflexure_microscope import Microscope
import os
import io
import sys
import time
import numpy as np
import uuid
from PIL import Image
import unittest
from pprint import pprint
import logging, sys
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
success_string = """
/O
| |
_____) \\
(__0) \\______
(____0)
(____0) EVERYTHING IS OK!
(__o)___________
"""
class TestMicroscope(unittest.TestCase):
def test_startup(self):
"""Tests capturing still images to a BytesIO stream."""
global microscope
pass
if __name__ == '__main__':
with StreamingCamera() as camera, OpenFlexureStage(None) as stage:
microscope = Microscope(camera, stage)
suites = [
unittest.TestLoader().loadTestsFromTestCase(TestMicroscope),
]
alltests = unittest.TestSuite(suites)
result = unittest.TextTestRunner(verbosity=2).run(alltests)
if result.wasSuccessful():
print(success_string)