Commit 143be8f5 authored by Joel Collins's avatar Joel Collins
Browse files

Started integrating into Microscope class

parent 5df9b53a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
from .microscope import Microscope

__version__ = "0.1.0"
+1 −0
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-
import time
import io
import threading
+26 −0
Original line number Diff line number Diff line
# -*- 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 −0
Original line number Diff line number Diff line
#!/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)