Python Code Publishing and Testing Application
Project scope
Categories
Information technologySkills
regression testing c++ (programming language) github model view controller linux python (programming language) video player key frame ffmpeg java (programming language)RealTime7 Inc. is a developer of the VIPER AI camera. A code publishing application is written in Python that can publish code from the development machine to the camera.
The goal of the development is to testing and verify this application and also to further write Python scripts for settings up and regression testing the camera when it is first initialized.
Tasks or Sub-Modules:
1) FFMPEG compilation and test program accelerated for IMX8MPLUS GPU to convert H264 stream to JPEG frames using arm64 cross compiler and using pip module. (C++/Python)
The IMX provides a hardware accelerated H264 stream but JPEG encoding is very slow. The goal is to read in a Key Frame into JPEG and then update the key frame with the stream updates to always have a current JPEG image that can be used for video processing. The code should be tested first in python and then the libraries for FFMPEG compiled in C++ into a test program that can be integrated into the main body of the code.
Estimated time 20-40 hrs.
2) Python UI with TKinter to Show camera Output Images. Use OpenCV to process OCR on the numerical ID to show the Image and Serial number in appropriate Box. On Click show the Test Log.
When Cameras are being manufactured, they are placed in a cradle to perform initialization testing, calibration, and configuration. A registrar software runs on an independent machine and is connected to the cameras with a common network switch.
The camera will transmit a picture of its cradle that includes a numerical ID. Using OCR, get the numerical ID of the camera, display it in the correct slot on the screen UI for the operator to see, with its serial number, and test results in Green for SUCCESS, and RED for Failure. Double click on the UI allows the operators to see the test log of the camera in a new window.
Estimated time 20 hrs.
3) Python OnVif Test Cases Processor. Test the Camera is working properly by processing discovery, Create User, Select User, Change User Pwd, Delete User, Get Camera Image, Verify Camera Image, Get Camera Video, Set Camera P2P Broker, Repeat Tests with P2P Broker, Reset Broker, Turn On Success or Failure GPIO with command message.
After Step 2, the camera is rebooted to start it's firmware. One of the registrar threads will detect that a new camera has joined the network. It will then proceed to process the supplied command messages to run regression tests. When the tests are complete, the registrar will send a Command to the camera to turn on an LED with Red or Green status indicator, allowing the operator to know the camera has passed quality assurance
Estimated time 60-80 hours.
4) Java Based Video Player, Implement MVC design pattern, allow Video Canvas to be dragged and reorganized on different Video Frames. Research and test installer for Mac, Linux, Windows.
Java network controller with TCP/IP and UDP for secure camera communications, implementing Python test code.
A viewer or client program for the Camera supports the showing of videos. Start by first implementing the MVC design pattern to show some sample videos on a Canvas. The purpose is to allow the user to drag and drop the video controls onto different frames. Think a security camera console with multiple monitors where the cameras are organized in grid patterns per the user preferences.
After implementing the display skeleton, translate the UDP and TCP based messages to get new videos and camera events to show the real time feed of cameras both in the network and in remote locations. Use the configurations to determine which videos to store and for how long
Estimated Time 120+ hours.
Students will have access to the development environment through TeamViewer. Code should be checked into GitHub. This is a project match with RMIT STEM. Additional details to be provided to students once collaboration with RMIT students has begun.
This is a project match with RMIT STEM. Additional details to be provided to students once collaboration with RMIT students has begun.
About the company
RealTime7 Inc. is a software and electronic device maker.