edgexfoundry / app-rfid-llrp-inventory Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
Need to create branch for Review of this service
reference: edgexfoundry/edgex-go#4602
Update to latest App SDK with new version of Paho MQTT
Update the license info to show V2 for Paho MQTT in attribution.txt
epoch-helper.go functions can be replaced with using time.UnixMilli()
The current unit test for the helpers cause intermittent failures which go away with use of time package.
Run EdgeX non-secure stack
Start App LLRP
Start LLRP simulator
Start Device LLRP
Click List Reader in App Service web page
Response will show empty list of readers
This is because the service is never seeing the event for ReaderEventNotification
Anything else relevant?
Discovery command on RFID gateway UI gives below error:
'Request failed. Status code of 202'
Repro steps:
Setup RFID gateway hardware as per documentation
Deploy the RFID device and app-inventory service with latest V3 code.
Go to http://127.0.0.1:59711/ RFID gateway UI
a) Right click on webpage, click on 'inspect' to open browser console
b) If CORS is not enabled on consul (by default CORS is disabled), notice that it gives CORS related errors on console but no
errors on UI.
c) Enable CORS on consul and set corsallowed origin on consul. Find attached consul screesnhtos.
d) Restart rfid-device service
e) Refresh RFID gateway UI
f) Open browser console
g) Click on 'Discovery'
Actual behavior: It gives request failed error with status code of 202 on UI and also on browser console.
Expected behavior: The UI should not complain about the 202 status code
In the debug logs it shows 'Discover triggered' message correctly,
Find attached debug logs, UI screenshots before and after enabling CORS.
_edgex-device-rfid-llrp_logs (2).txt
Deployment Environment:
EdgeX Version [REQUIRED]:
Anything else relevant?
LLRP Inventory
Add service metrics relevant to LLRP Inventory. Possibilities:
Use new Metrics framework to collect these LLRP Inventory service metrics
Once service version 1.0.0 is released the service needs to be migrated to V2
Once Intel validation is complete work with DevOps to release version1.0.0
I was looking at this code as an example for how to load the custom config, and noticed that this just doesn't seem right. It needs to be checked further.
Mostly around why it is loading the aliasesConfigKey
app-rfid-llrp-inventory/internal/inventory/app/app.go
Lines 81 to 91 in 993cf3e
Mock CommandClient is missing from go-mod-core-contracts for Jakarta and was added to this service for unit testing. It have now be add for Kamakura. The one added to this service needs to be removed this service has been released for Jakarta.
Update Makefile and Dockerfile to remove ZMQ dependencies and remove use of CGO
Currently the inventory events are sent via the Push To Core functionality. The newer Background Publisher
is a better option now that Core Data is an optional service.
All other services have been switched to Echo, this service was missed
Could be an issue due to timing.
Scenario: A device is DISABLED
in core-metadata
due to a lost connection and then that connection is restored
Action: The rfid-llrp-inventory-service
sniffs a ReaderEventNotification
to know that the device has connected, however a failure in querying the device causes it to not be added to the default reader group.
rfid-llrp-inventory-service logs
level=INFO ts=2021-06-29T23:03:59.609388766Z app=rfid-llrp-inventory source=controller.go:123 msg="Adding device to default group: SpeedwayR-11-25-D6"
level=ERROR ts=2021-06-29T23:03:59.609880492Z app=rfid-llrp-inventory source=controller.go:83 error="device info request failed with status 423" device=SpeedwayR-11-25-D6 msg="Failed to handle ReaderEventNotification."
device-rfid-llrp-go logs
level=INFO ts=2021-06-29T23:03:59.593299178Z app=edgex-device-rfid-llrp source=device.go:470 device=SpeedwayR-11-25-D6 msg="Device connection restored."
level=INFO ts=2021-06-29T23:03:59.593358051Z app=edgex-device-rfid-llrp source=logging.go:25 type=MsgGetSupportedVersion device=SpeedwayR-11-25-D6 msg="Sending LLRP message"
level=INFO ts=2021-06-29T23:03:59.593893146Z app=edgex-device-rfid-llrp source=logging.go:34 type=MsgErrorMessage device=SpeedwayR-11-25-D6 msg="Incoming LLRP message"
level=WARN ts=2021-06-29T23:03:59.593946153Z app=edgex-device-rfid-llrp source=logging.go:38 message-version=Version1_0_1 client-version=Version1_1 msg="LLRP incoming message version mismatch"
level=INFO ts=2021-06-29T23:03:59.607062967Z app=edgex-device-rfid-llrp source=logging.go:25 type=MsgSetReaderConfig device=SpeedwayR-11-25-D6 msg="Sending LLRP message"
level=INFO ts=2021-06-29T23:03:59.607314102Z app=edgex-device-rfid-llrp source=logging.go:34 type=MsgSetReaderConfigResponse device=SpeedwayR-11-25-D6 msg="Incoming LLRP message"
level=ERROR ts=2021-06-29T23:03:59.609737045Z app=edgex-device-rfid-llrp source=command.go:64 msg="SpeedwayR-11-25-D6 is disabled; GET"
level=INFO ts=2021-06-29T23:03:59.614819052Z app=edgex-device-rfid-llrp source=device.go:119 msg="Updated device: SpeedwayR-11-25-D6"
All endpoints in the static HTML need to be changed to v3 appropriately. Some may need migrating for breaking changes.
Also search repo for any other v2 references that need to be removed or changed.
Apply changes to refactor messaging config from Trigger to MessageQueue.
Snaps need to be reworked to release the service for Jakarta
Relevant Package [REQUIRED]
configuration and go.mod
Description [REQUIRED]
Consume latest SDK with Metrics support
Describe the solution you'd like
Update all configuration to include new Telemetry section
๐ Feature Request
Relevant Package [REQUIRED]
go.mod and configuration
Description [REQUIRED]
Consume latest SDK with Delayed Start support.
Describe the solution you'd like
Update configuration to include new Delayed Start config.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.