In the latest version of Raspbian, when no display is connected to the
HDMI port, "tvservice -n" finds a display named "Unk-Composite dis".
Therefore, the `distant_display` was not created.
The MPD server was not correctly killed when the IoTBox started without
six payment terminal configured. A warning was displayed.
closesodoo/odoo#36415
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Automatically load the IoT Drivers when Odoo starts on the IoT Box or
when the connection to the Odoo instance is done.
Allow to deactivate the automatic load to avoid overriding
modifications made on the Box.
TaskID: 2009683
If no Six Payment terminal is configured, kill eftdvs if it is running.
When removing the configuration for a Six payment terminal, we just
removed the file with the configuration but we didn't stop eftdvs. The
terminal the nstayed connected to this Box even after removing the
configuration, blocking the connection to another terminal.
With this commit we add the possibility to save the db_uuid and enterprise_code on the IoT Box.
We check the current SSL certificate and if it is not authenticated or not up to date
we send a request to 'https://www.odoo.com/odoo-enterprise/iot/x509'
with the db_uuid and enterprise_code to get the certificate, key, and domain associated with the client.
The IoT Box will be accessible in HTTPS according to the following domain:
https://<ip-with-dashes>.<sub-hash>.odoo-iot.com
<ip-with-dashes> being the ip address with dashes
<sub-hash> being a subdomain assigned by Odoo to a customer
Task: 1931770
Add support for Six payment terminals.
TaskId: 1932416
Linked to odoo/enterprise#4435
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
closesodoo/odoo#33673
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Barcode scanners are now part of KeyboardUSBDriver. We also add
the possibility to change the keyboard/scanner layout from an
action. The list of available layout can be retrieved with a new
route.
`hw_scanner` has been removed. Backward compatibility is ensured
because the name of the route that is now used in community is the
same that was used previously.
TaskID: 1939455
Add MPDManager to driver.py to keep a list of connected terminals
up to date.
Add the files needed to communicate with the payment terminals:
eftdvs --> MPD server that needs to run on the IoTBox
eftapi.so --> Library to connect Odoo to the MPD server
TaskId: 1932416
ESCPOS printers are now supported as IoT Devices, just like any other
printer. We now transform the receipts to JPGs, transform these JPGs
into ESCPOS commands and send them via Cups, adding support for network
printers. Since we now print images, we can now print special
characters and therefore add support for other languages such as
Arabic.
The JPG is generated in the browser, with the help of html2canvas.
`hw_escpos` is left untouched to allow backward compatibility and
should be removed when v12 is no longer supported.
In the PoS, all the code for printing has been moved from ProxyDevice
to a separated JS file.
TaskID: 1939455
Using path such as '/dev/ttyUSB0' to connect to a serial port
makes it impossible to use the bluetooth.
We now use the locations in '/dev/serial/by-path' to connect to serial port,
which does not affect bluetooth connections
closesodoo/odoo#35302
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
The check for abstract driver classes results in some errors being logged on the iot box.
Since this check is not essential at this point, it was removed and will be reintroduced later
if needed.
closesodoo/odoo#35014
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
This commit adds a base serial and a base serial scale iot drivers,
as well as drivers extending them for the two previously supported scales
(ADAM EQUIPMENT AZEXTRA and TOLEDO 8217).
Since just adding the new drivers creates a race condition
between the old drivers and the new, the old drivers need to be removed.
The IoT scale drivers need to be backward compatible and compatible with the community version,
so client using an IoT box with those versions can still connect a scale to the PoS.
Task: 1892412
before this commit the date of the IoT Box did not update.
With this commit we restart the service timesyncd on the IoT box
Task: 2034930
closesodoo/odoo#34789
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Before this commit the identifier integrate the BUS and port to identifiate USB devices
Now we check if there are duplicates devices before increment the identifier
For other loop we add identifier in the iot_device object
task: 1963500
closesodoo/odoo#32737
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Before this commit, we only sent the list of connected devices to
the odoo instance (thanks to `self.send_alldevices`) when a device
is newly connected. Now, we also send this list when a device is
disconnected. We also try to call this method once if multiple devices
are connected/disconnected during an iteration.
task-id 1939338
closesodoo/odoo#32678
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
With this commit it is now possible for the IoT Box
to listen on a specific port of the box to interact
with a device via TCP / IP.
We use the library 'socket' to listen on port 9000
and if a request comes on this port we create an IoT Device
When we are on HTTPS and we want to connect a box with the scan
we need to accept manually the certificate of the box.
With this commit we don't need to accept manually the certificate.
We don't have problem of mixed content if we use the onload method of Image object
So we load a image and put on parameter the token of the odoo DB to make a connection.
Improve the implementation of IoT.
Allow both-direction communication between iot box and devices.
Now a device can send its value / status as soon as it changes. Not only when he receives a request.
Now the box have only 3 routes:
/hw_drivers/action
parameter: session_id, device_id, data
used to ask at a device to make a action (take picture, make print, ect...)
/hw_drivers/event
parameter: listener
listener is a dict where you have the session_id and a list of device_id to listen
this route wait to answer that we call device_changed for a device_id with data or value
/hw_drivers/box/connect
parameter: token
used to register the box to a Odoo database
token contain the url of Odoo database and a unique number that allow the IoT Box
to connect box in the hour
task : 1906910
- Routes to get device/driver statuses from the browser
- Framework for managing and downloading drivers for devices
connected to the IoT Box
- Automatic detection of printers and cameras in the network
- Built-in detection for USB and Bluetooth LE devices and checking
if a driver matches the device
- Authentication of the box into Odoo
- Inform Odoo of the connected devices and giving them a unique
identifier so they can be called from the browser
Thanks to qle, specially for fswebcam and cups