Compare commits
11 Commits
16caf822c7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ac1181479e | |||
| e028b5c902 | |||
| e0150933bb | |||
| 59b4c345a6 | |||
| bbe6d5460e | |||
| 4639088f0f | |||
| c6fedf2e52 | |||
| 7a8a57b3e1 | |||
| 26e6ce2118 | |||
| 6acef5d18f | |||
| 1272b50a89 |
4
.gitignore
vendored
@@ -1,5 +1,5 @@
|
|||||||
server/.env
|
container/db
|
||||||
server/db/
|
container/.env
|
||||||
camera-client/camera_test.py
|
camera-client/camera_test.py
|
||||||
camera-client/logs/
|
camera-client/logs/
|
||||||
camera-client/config.json
|
camera-client/config.json
|
||||||
|
|||||||
@@ -1,285 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
|
|
||||||
<office:meta><meta:creation-date>2023-03-10T16:54:34.119219355</meta:creation-date><dc:date>2023-03-12T15:34:08.021448061</dc:date><meta:editing-duration>PT7H51M43S</meta:editing-duration><meta:editing-cycles>2</meta:editing-cycles><meta:generator>LibreOffice/7.5.0.3$Linux_X86_64 LibreOffice_project/50$Build-3</meta:generator><meta:document-statistic meta:table-count="1" meta:cell-count="8" meta:object-count="0"/></office:meta>
|
|
||||||
<office:settings>
|
|
||||||
<config:config-item-set config:name="ooo:view-settings">
|
|
||||||
<config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="VisibleAreaWidth" config:type="int">11786</config:config-item>
|
|
||||||
<config:config-item config:name="VisibleAreaHeight" config:type="int">4738</config:config-item>
|
|
||||||
<config:config-item-map-indexed config:name="Views">
|
|
||||||
<config:config-item-map-entry>
|
|
||||||
<config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
|
|
||||||
<config:config-item-map-named config:name="Tables">
|
|
||||||
<config:config-item-map-entry config:name="Sheet1">
|
|
||||||
<config:config-item config:name="CursorPositionX" config:type="int">1</config:config-item>
|
|
||||||
<config:config-item config:name="CursorPositionY" config:type="int">7</config:config-item>
|
|
||||||
<config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
|
|
||||||
<config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
|
||||||
<config:config-item config:name="ZoomValue" config:type="int">140</config:config-item>
|
|
||||||
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
|
||||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
|
||||||
</config:config-item-map-entry>
|
|
||||||
</config:config-item-map-named>
|
|
||||||
<config:config-item config:name="ActiveTable" config:type="string">Sheet1</config:config-item>
|
|
||||||
<config:config-item config:name="HorizontalScrollbarWidth" config:type="int">1456</config:config-item>
|
|
||||||
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
|
||||||
<config:config-item config:name="ZoomValue" config:type="int">140</config:config-item>
|
|
||||||
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
|
||||||
<config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="GridColor" config:type="int">12632256</config:config-item>
|
|
||||||
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="FormulaBarHeight" config:type="short">1</config:config-item>
|
|
||||||
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="RasterResolutionX" config:type="int">1270</config:config-item>
|
|
||||||
<config:config-item config:name="RasterResolutionY" config:type="int">1270</config:config-item>
|
|
||||||
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
|
||||||
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
|
||||||
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
|
|
||||||
</config:config-item-map-entry>
|
|
||||||
</config:config-item-map-indexed>
|
|
||||||
</config:config-item-set>
|
|
||||||
<config:config-item-set config:name="ooo:configuration-settings">
|
|
||||||
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="AutoCalculate" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
|
|
||||||
<config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="GridColor" config:type="int">12632256</config:config-item>
|
|
||||||
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
|
|
||||||
<config:config-item config:name="IsDocumentShared" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item>
|
|
||||||
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="PrinterName" config:type="string">Generic Printer</config:config-item>
|
|
||||||
<config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="PrinterSetup" config:type="base64Binary">zQH+/0dlbmVyaWMgUHJpbnRlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU0dFTlBSVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMAuQAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9R2VuZXJpYyBQcmludGVyCm9yaWVudGF0aW9uPVBvcnRyYWl0CmNvcGllcz0xCmNvbGxhdGU9ZmFsc2UKbWFyZ2luYWRqdXN0bWVudD0wLDAsMCwwCmNvbG9yZGVwdGg9MjQKcHNsZXZlbD0wCnBkZmRldmljZT0xCmNvbG9yZGV2aWNlPTAKUFBEQ29udGV4dERhdGEKUGFnZVNpemU6TGV0dGVyAAASAENPTVBBVF9EVVBMRVhfTU9ERQ8ARHVwbGV4TW9kZTo6T2ZmDABQUklOVEVSX05BTUUPAEdlbmVyaWMgUHJpbnRlcgsARFJJVkVSX05BTUUHAFNHRU5QUlQ=</config:config-item>
|
|
||||||
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="RasterResolutionX" config:type="int">1270</config:config-item>
|
|
||||||
<config:config-item config:name="RasterResolutionY" config:type="int">1270</config:config-item>
|
|
||||||
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
|
||||||
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
|
||||||
<config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
|
|
||||||
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item config:name="SyntaxStringRef" config:type="short">7</config:config-item>
|
|
||||||
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
|
|
||||||
<config:config-item-map-named config:name="ScriptConfiguration">
|
|
||||||
<config:config-item-map-entry config:name="Sheet1">
|
|
||||||
<config:config-item config:name="CodeName" config:type="string">Sheet1</config:config-item>
|
|
||||||
</config:config-item-map-entry>
|
|
||||||
</config:config-item-map-named>
|
|
||||||
</config:config-item-set>
|
|
||||||
</office:settings>
|
|
||||||
<office:scripts>
|
|
||||||
<office:script script:language="ooo:Basic">
|
|
||||||
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
|
|
||||||
</office:script>
|
|
||||||
</office:scripts>
|
|
||||||
<office:font-face-decls>
|
|
||||||
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
|
||||||
<style:font-face style:name="Noto Sans" svg:font-family="'Noto Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
|
||||||
<style:font-face style:name="Noto Sans CJK SC" svg:font-family="'Noto Sans CJK SC'" style:font-family-generic="system" style:font-pitch="variable"/>
|
|
||||||
<style:font-face style:name="Sahel" svg:font-family="Sahel" style:font-family-generic="system" style:font-pitch="variable"/>
|
|
||||||
</office:font-face-decls>
|
|
||||||
<office:styles>
|
|
||||||
<style:default-style style:family="table-cell">
|
|
||||||
<style:paragraph-properties style:tab-stop-distance="12.7mm"/>
|
|
||||||
<style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="Noto Sans CJK SC" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Sahel" style:font-size-complex="10pt" style:language-complex="fa" style:country-complex="IR"/>
|
|
||||||
</style:default-style>
|
|
||||||
<number:number-style style:name="N0">
|
|
||||||
<number:number number:min-integer-digits="1"/>
|
|
||||||
</number:number-style>
|
|
||||||
<style:style style:name="Default" style:family="table-cell"/>
|
|
||||||
<style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default">
|
|
||||||
<style:text-properties fo:color="#000000" fo:font-size="24pt" fo:font-style="normal" fo:font-weight="bold" style:font-size-asian="24pt" style:font-style-asian="normal" style:font-weight-asian="bold" style:font-size-complex="24pt" style:font-style-complex="normal" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading">
|
|
||||||
<style:text-properties fo:font-size="18pt" style:font-size-asian="18pt" style:font-size-complex="18pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading">
|
|
||||||
<style:text-properties fo:font-size="12pt" style:font-size-asian="12pt" style:font-size-complex="12pt"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/>
|
|
||||||
<style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text">
|
|
||||||
<style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/>
|
|
||||||
<style:text-properties fo:color="#333333"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text">
|
|
||||||
<style:text-properties fo:color="#808080" fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text">
|
|
||||||
<style:text-properties fo:color="#0000ee" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/>
|
|
||||||
<style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status">
|
|
||||||
<style:table-cell-properties fo:background-color="#ccffcc"/>
|
|
||||||
<style:text-properties fo:color="#006600"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status">
|
|
||||||
<style:table-cell-properties fo:background-color="#ffffcc"/>
|
|
||||||
<style:text-properties fo:color="#996600"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status">
|
|
||||||
<style:table-cell-properties fo:background-color="#ffcccc"/>
|
|
||||||
<style:text-properties fo:color="#cc0000"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status">
|
|
||||||
<style:text-properties fo:color="#cc0000"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status">
|
|
||||||
<style:table-cell-properties fo:background-color="#cc0000"/>
|
|
||||||
<style:text-properties fo:color="#ffffff" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default">
|
|
||||||
<style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent">
|
|
||||||
<style:table-cell-properties fo:background-color="#000000"/>
|
|
||||||
<style:text-properties fo:color="#ffffff"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent">
|
|
||||||
<style:table-cell-properties fo:background-color="#808080"/>
|
|
||||||
<style:text-properties fo:color="#ffffff"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent">
|
|
||||||
<style:table-cell-properties fo:background-color="#dddddd"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default">
|
|
||||||
<style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/>
|
|
||||||
</style:style>
|
|
||||||
</office:styles>
|
|
||||||
<office:automatic-styles>
|
|
||||||
<style:style style:name="co1" style:family="table-column">
|
|
||||||
<style:table-column-properties fo:break-before="auto" style:column-width="44.73mm"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="co2" style:family="table-column">
|
|
||||||
<style:table-column-properties fo:break-before="auto" style:column-width="73.13mm"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="co3" style:family="table-column">
|
|
||||||
<style:table-column-properties fo:break-before="auto" style:column-width="22.58mm"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ro1" style:family="table-row">
|
|
||||||
<style:table-row-properties style:row-height="4.52mm" fo:break-before="auto" style:use-optimal-row-height="true"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ro2" style:family="table-row">
|
|
||||||
<style:table-row-properties style:row-height="9.4mm" fo:break-before="auto" style:use-optimal-row-height="false"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ro3" style:family="table-row">
|
|
||||||
<style:table-row-properties style:row-height="8.27mm" fo:break-before="auto" style:use-optimal-row-height="true"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ro4" style:family="table-row">
|
|
||||||
<style:table-row-properties style:row-height="11.64mm" fo:break-before="auto" style:use-optimal-row-height="false"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ta1" style:family="table" style:master-page-name="Default">
|
|
||||||
<style:table-properties table:display="true" style:writing-mode="lr-tb"/>
|
|
||||||
</style:style>
|
|
||||||
<style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default">
|
|
||||||
<style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/>
|
|
||||||
<style:paragraph-properties fo:text-align="center" fo:margin-left="0mm"/>
|
|
||||||
</style:style>
|
|
||||||
<style:page-layout style:name="pm1">
|
|
||||||
<style:page-layout-properties style:writing-mode="lr-tb"/>
|
|
||||||
<style:header-style>
|
|
||||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm"/>
|
|
||||||
</style:header-style>
|
|
||||||
<style:footer-style>
|
|
||||||
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm"/>
|
|
||||||
</style:footer-style>
|
|
||||||
</style:page-layout>
|
|
||||||
</office:automatic-styles>
|
|
||||||
<office:master-styles>
|
|
||||||
<style:master-page style:name="Default" style:page-layout-name="pm1">
|
|
||||||
<style:header>
|
|
||||||
<text:p><text:sheet-name>???</text:sheet-name></text:p>
|
|
||||||
</style:header>
|
|
||||||
<style:header-left style:display="false"/>
|
|
||||||
<style:header-first style:display="false"/>
|
|
||||||
<style:footer>
|
|
||||||
<text:p>Page <text:page-number>1</text:page-number></text:p>
|
|
||||||
</style:footer>
|
|
||||||
<style:footer-left style:display="false"/>
|
|
||||||
<style:footer-first style:display="false"/>
|
|
||||||
</style:master-page>
|
|
||||||
</office:master-styles>
|
|
||||||
<office:body>
|
|
||||||
<office:spreadsheet>
|
|
||||||
<table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/>
|
|
||||||
<table:table table:name="Sheet1" table:style-name="ta1">
|
|
||||||
<table:table-column table:style-name="co1" table:default-cell-style-name="ce2"/>
|
|
||||||
<table:table-column table:style-name="co2" table:default-cell-style-name="ce2"/>
|
|
||||||
<table:table-row table:style-name="ro1">
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Date</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
<table:table-cell/>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro2">
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string" table:number-columns-spanned="1" table:number-rows-spanned="3">
|
|
||||||
<text:p>Core</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Orange Pi lite</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro3">
|
|
||||||
<table:covered-table-cell/>
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Orange Pi PC Plus</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro4">
|
|
||||||
<table:covered-table-cell/>
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Orange Pi 2G-IoT</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro1">
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Breadbord</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
<table:table-cell/>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro1">
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Camera Module</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
<table:table-cell/>
|
|
||||||
</table:table-row>
|
|
||||||
<table:table-row table:style-name="ro1">
|
|
||||||
<table:table-cell office:value-type="string" calcext:value-type="string">
|
|
||||||
<text:p>Jumper wires</text:p>
|
|
||||||
</table:table-cell>
|
|
||||||
<table:table-cell/>
|
|
||||||
</table:table-row>
|
|
||||||
</table:table>
|
|
||||||
<table:named-expressions/>
|
|
||||||
</office:spreadsheet>
|
|
||||||
</office:body>
|
|
||||||
</office:document>
|
|
||||||
BIN
Report.odt
BIN
Report975362202.pdf
Normal file
BIN
Schematic.odg
Normal file
BIN
Schematic.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
@@ -11,7 +11,7 @@ services:
|
|||||||
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: scenesense-server:1.2
|
image: scenesense-server:1.3
|
||||||
container_name: scenesense-app
|
container_name: scenesense-app
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
@@ -27,3 +27,10 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "18000:8080"
|
- "18000:8080"
|
||||||
|
|
||||||
|
ui:
|
||||||
|
image: scenesense-ui:1.2
|
||||||
|
container_name: scenesense-ui
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "17500:3000"
|
||||||
@@ -31,13 +31,6 @@ class Record(db.Model):
|
|||||||
timestamp = db.Column(db.String(255), nullable=False)
|
timestamp = db.Column(db.String(255), nullable=False)
|
||||||
description = db.Column(db.String(255), nullable=False)
|
description = db.Column(db.String(255), nullable=False)
|
||||||
|
|
||||||
# Parse a timestamp string into a datetime object
|
|
||||||
def parse_timestamp(timestamp_str):
|
|
||||||
try:
|
|
||||||
return datetime.strptime(timestamp_str, '%Y-%m-%d %H:%M:%S')
|
|
||||||
except ValueError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Function to validate API keys based on their values and access level
|
# Function to validate API keys based on their values and access level
|
||||||
def validate_api_key(api_key, required_access_level):
|
def validate_api_key(api_key, required_access_level):
|
||||||
api_keys_json = os.environ.get('API_KEYS_JSON', '{}')
|
api_keys_json = os.environ.get('API_KEYS_JSON', '{}')
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ FROM node:20-slim
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY src/package.json /app/
|
COPY src/package.json /app/
|
||||||
RUN npm install
|
RUN npm install
|
||||||
COPY src/main.js src/views/ /app/
|
COPY src/main.js /app/main.js
|
||||||
|
COPY src/views/index.ejs /app/views/index.ejs
|
||||||
|
COPY src/public/ /app/public
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
CMD ["node", "main.js"]
|
CMD ["node", "main.js"]
|
||||||
|
|||||||
BIN
webui-client/src/public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
webui-client/src/public/android-chrome-256x256.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
webui-client/src/public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
9
webui-client/src/public/browserconfig.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#ffc40d</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
BIN
webui-client/src/public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 942 B |
BIN
webui-client/src/public/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
webui-client/src/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
webui-client/src/public/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
60
webui-client/src/public/safari-pinned-tab.svg
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="280.000000pt" height="280.000000pt" viewBox="0 0 280.000000 280.000000"
|
||||||
|
preserveAspectRatio="xMidYMid meet">
|
||||||
|
<metadata>
|
||||||
|
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(0.000000,280.000000) scale(0.100000,-0.100000)"
|
||||||
|
fill="#000000" stroke="none">
|
||||||
|
<path d="M125 2053 c-46 -16 -100 -65 -114 -103 -11 -34 -8 -127 6 -161 15
|
||||||
|
-35 67 -78 149 -124 79 -44 104 -68 104 -102 0 -27 -32 -63 -57 -64 -10 0 -27
|
||||||
|
-2 -38 -4 -11 -2 -52 7 -93 21 -40 13 -75 24 -77 24 -3 0 -5 -29 -5 -65 l0
|
||||||
|
-64 52 -16 c171 -50 327 17 343 148 12 102 -25 160 -145 227 -92 52 -120 77
|
||||||
|
-120 106 0 38 10 53 46 64 31 11 101 0 164 -24 11 -5 20 7 33 43 9 27 17 53
|
||||||
|
17 58 0 14 -107 44 -170 47 -31 1 -74 -3 -95 -11z"/>
|
||||||
|
<path d="M765 2060 c-143 -31 -227 -160 -226 -350 1 -136 46 -238 131 -294 37
|
||||||
|
-25 56 -30 125 -34 57 -3 99 1 138 12 l57 17 0 59 c0 33 -2 60 -4 60 -2 0 -22
|
||||||
|
-7 -45 -15 -42 -15 -78 -19 -140 -16 -50 2 -103 60 -117 130 -21 102 1 228 48
|
||||||
|
278 41 44 113 50 191 16 22 -10 41 -13 46 -7 13 15 42 95 37 103 -17 27 -179
|
||||||
|
54 -241 41z"/>
|
||||||
|
<path d="M1179 2040 c-5 -58 -3 -634 2 -642 10 -16 339 -14 349 2 4 7 6 29 5
|
||||||
|
49 -2 20 -4 41 -4 47 -1 6 -40 10 -111 9 l-110 -1 0 86 0 87 105 -1 104 -1 0
|
||||||
|
58 c-1 65 10 60 -126 59 l-83 0 0 73 0 74 83 -1 c157 0 142 -6 142 57 0 30 -4
|
||||||
|
55 -10 56 -5 1 -85 2 -177 3 -143 1 -168 -1 -169 -14z"/>
|
||||||
|
<path d="M1719 1976 c-1 -277 0 -578 3 -581 2 -2 28 -5 58 -7 l55 -3 -1 253
|
||||||
|
c-1 139 -1 252 1 250 1 -2 26 -48 55 -103 50 -96 106 -201 176 -330 37 -67 47
|
||||||
|
-72 145 -67 l59 4 -2 331 -3 331 -55 1 -55 0 0 -242 c0 -134 -3 -243 -6 -243
|
||||||
|
-4 0 -12 12 -18 28 -6 15 -21 45 -34 67 -13 22 -49 87 -79 145 -31 58 -74 136
|
||||||
|
-95 174 l-38 70 -82 1 -83 2 -1 -81z"/>
|
||||||
|
<path d="M2489 2050 c-14 -9 -10 -660 4 -661 7 0 79 -1 160 -2 l148 -2 -3 60
|
||||||
|
-3 60 -80 1 c-44 1 -85 2 -91 3 -7 1 -11 32 -11 85 l0 83 76 1 c123 0 112 -6
|
||||||
|
109 59 l-3 57 -91 0 -91 0 0 72 1 73 75 -1 c122 -1 112 -6 109 59 l-3 57 -148
|
||||||
|
0 c-82 1 -153 -1 -158 -4z"/>
|
||||||
|
<path d="M712 1100 c-70 -31 -98 -123 -60 -199 16 -33 33 -47 95 -78 91 -46
|
||||||
|
116 -74 110 -123 -7 -50 -15 -65 -41 -80 -33 -17 -84 -19 -136 -3 -25 7 -46
|
||||||
|
13 -48 13 -2 0 -2 -12 0 -27 3 -24 9 -29 53 -39 128 -28 215 24 218 132 2 84
|
||||||
|
-13 106 -113 159 -98 52 -116 76 -104 139 11 61 73 86 149 60 30 -10 41 -10
|
||||||
|
47 -1 15 23 8 35 -24 46 -61 19 -104 20 -146 1z"/>
|
||||||
|
<path d="M1779 1110 c-43 -12 -68 -30 -83 -58 -32 -62 -25 -143 17 -183 12
|
||||||
|
-11 52 -36 88 -54 76 -39 90 -53 95 -98 12 -99 -69 -136 -203 -93 -20 6 -23 4
|
||||||
|
-23 -18 0 -19 7 -27 33 -35 142 -47 250 22 241 154 -4 56 -30 85 -116 130 -90
|
||||||
|
47 -113 76 -103 136 12 69 80 93 169 60 23 -10 36 1 36 29 0 19 -110 41 -151
|
||||||
|
30z"/>
|
||||||
|
<path d="M990 835 l0 -275 125 0 c69 0 125 3 126 8 0 4 2 15 4 25 3 15 -7 17
|
||||||
|
-101 17 -76 0 -104 3 -105 13 -1 6 -2 54 -3 104 l-1 93 98 0 c97 0 97 0 97 25
|
||||||
|
0 25 0 25 -95 25 -52 0 -95 3 -96 8 0 4 -2 46 -2 95 l-2 87 102 0 c72 0 103 4
|
||||||
|
106 13 11 32 -4 37 -129 37 l-124 0 0 -275z"/>
|
||||||
|
<path d="M1316 838 c1 -254 2 -273 19 -276 10 -2 20 1 24 6 3 6 6 107 6 225
|
||||||
|
-1 119 2 214 6 211 4 -2 13 -21 20 -42 6 -20 22 -59 35 -87 12 -27 35 -79 49
|
||||||
|
-115 15 -36 33 -78 40 -95 8 -16 21 -47 29 -67 10 -27 21 -38 35 -38 12 0 21
|
||||||
|
6 22 13 1 16 1 486 0 515 -1 18 -6 23 -23 20 l-23 -3 1 -222 c0 -123 -1 -223
|
||||||
|
-2 -223 -1 0 -18 39 -39 88 -36 86 -79 185 -117 272 -11 24 -24 55 -29 67 -5
|
||||||
|
15 -17 23 -31 23 l-23 0 1 -272z"/>
|
||||||
|
<path d="M2030 1093 c-1 -26 -1 -420 0 -480 l0 -53 125 0 125 0 0 25 0 25
|
||||||
|
-103 0 -104 0 1 105 0 105 98 0 c98 0 98 0 98 25 0 25 0 25 -99 25 l-98 0 0
|
||||||
|
95 0 95 103 0 104 0 0 25 0 25 -125 0 c-112 0 -125 -2 -125 -17z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.6 KiB |
19
webui-client/src/public/site.webmanifest
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"short_name": "",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/android-chrome-256x256.png",
|
||||||
|
"sizes": "256x256",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#981c1c",
|
||||||
|
"background_color": "#981c1c",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
||||||
@@ -6,6 +6,27 @@
|
|||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width, initial-scale=1.0" />
|
content="width=device-width, initial-scale=1.0" />
|
||||||
<title>SceneSense UI</title>
|
<title>SceneSense UI</title>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="180x180"
|
||||||
|
href="/apple-touch-icon.png" />
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="32x32"
|
||||||
|
href="/favicon-32x32.png" />
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="16x16"
|
||||||
|
href="/favicon-16x16.png" />
|
||||||
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
|
<link
|
||||||
|
rel="mask-icon"
|
||||||
|
href="/safari-pinned-tab.svg"
|
||||||
|
color="#5bbad5" />
|
||||||
|
<meta name="msapplication-TileColor" content="#ffc40d" />
|
||||||
|
<meta name="theme-color" content="#981c1c" />
|
||||||
<!-- Include Bootstrap CSS -->
|
<!-- Include Bootstrap CSS -->
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
@@ -58,30 +79,39 @@
|
|||||||
<div class="d-flex flex-column">
|
<div class="d-flex flex-column">
|
||||||
<!-- First row with larger buttons -->
|
<!-- First row with larger buttons -->
|
||||||
<div class="btn-group mb-2" role="group">
|
<div class="btn-group mb-2" role="group">
|
||||||
<button class="btn btn-outline-primary btn-lg" onclick="getLastRecord()">
|
<button
|
||||||
|
class="btn btn-outline-primary btn-lg"
|
||||||
|
onclick="getLastRecord()">
|
||||||
Get Last Record
|
Get Last Record
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-outline-primary btn-lg" onclick="getAllRecords()">
|
<button
|
||||||
|
class="btn btn-outline-primary btn-lg"
|
||||||
|
onclick="getAllRecords()">
|
||||||
Get All Records
|
Get All Records
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Second row with smaller buttons -->
|
<!-- Second row with smaller buttons -->
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button class="btn btn-outline-primary mb-2" onclick="getRecordsSince()">
|
<button
|
||||||
|
class="btn btn-outline-primary mb-2"
|
||||||
|
onclick="getRecordsSince()">
|
||||||
Get Records Since
|
Get Records Since
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-outline-primary mb-2" onclick="getRecordsBetween()">
|
<button
|
||||||
|
class="btn btn-outline-primary mb-2"
|
||||||
|
onclick="getRecordsBetween()">
|
||||||
Get Records Between
|
Get Records Between
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-outline-primary mb-2" onclick="getRecordsUntil()">
|
<button
|
||||||
|
class="btn btn-outline-primary mb-2"
|
||||||
|
onclick="getRecordsUntil()">
|
||||||
Get Records Until
|
Get Records Until
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-bordered">
|
<table class="table table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||