Started integrating into Microscope class
This commit is contained in:
parent
5df9b53a9c
commit
143be8f592
4 changed files with 84 additions and 0 deletions
|
|
@ -1 +1,3 @@
|
|||
from .microscope import Microscope
|
||||
|
||||
__version__ = "0.1.0"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import time
|
||||
import io
|
||||
import threading
|
||||
|
|
|
|||
26
openflexure_microscope/microscope.py
Normal file
26
openflexure_microscope/microscope.py
Normal 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
55
tests/test_microscope.py
Normal 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)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue