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"
|
__version__ = "0.1.0"
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
import time
|
import time
|
||||||
import io
|
import io
|
||||||
import threading
|
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