Skip to content

Release 4.1

Choose a tag to compare

@adahlman2 adahlman2 released this 29 Apr 03:41
· 1 commit to Release-4.1 since this release

Project Vision:

Our vision for the Swine Monitoring System is to complete a cost-effective system for animal farms, running on a resource-efficient Linux-based platform. It includes a Python-based image capture program, a robust data communication module, and interactive APIs which optimize intra-system communication.

Overview:

This release of the Biological Systems Engineering team includes updates to previous APIs based on sponsor feedback. The Hourly Status API, Capture Status API, Communications Log API, and File Upload API are all included in this release. The File Upload API is a new API that has been developed since Release 3, and shall be detailed below. These APIs use the Laravel framework, PHP, and Python scripts to take data, system information, and communications logs from the communications hub and securely send it across to the main server.

Deliverables:

Our deliverables include the following:

Hourly Status API:
No updates have been made the Hourly Status logic since last release.

Capture Status API:
This API now should correctly send data to the server in the expected format.

Log API:
This API now should correctly send data to the server in the expected format.

File Upload API:
This API is used to incrementally send data from the local system to the server, so that the feeder_data_new table can be populated with new data collected from the previous day. This API, when ran, uses the feeder_data_new_incremental table to populate the feeder_data_new table from the server, update the feeder_data_ids table with the respective information based on data collected that day, and then update the data_sent_log table, which tracks whether data from each day has been sent to the server or not. Data validation techniques are included, such as validation to ensure that there is new data to be submitted, checks to ensure that the data is the data in the local feeder_data_new table, and a validation that checks if the feeder_data_new_incremental table is empty, and if so, it populates the table with the data that it should have based on the data collected that day and stored locally in the feeder_data_new table.

API Python Script:
Additionally, a Python script which runs these APIs on a timer is used to control when they are to run.