skku-eslab / ant Goto Github PK
View Code? Open in Web Editor NEWANT (AI-based Networked Things) Framework
License: Apache License 2.0
ANT (AI-based Networked Things) Framework
License: Apache License 2.0
When I run ANT on Raspberry Pi 3 and launch Camera Viewer, I can find a crash on initializing Wi-fi Direct.
The following message is the full crash log.
redcarrottt@raspberrypi:~ $ sudo run_ant
[SystemServer] args: Namespace(debugappcore=False, debugapps=False)
[SystemServer] Initializing ANT daemons...
ipcrm: invalid key (9447)
ipcrm: invalid key (5315)
ipcrm: invalid key (4941)
ipcrm: invalid key (49411)
ipcrm: invalid key (49441)
ipcrm: invalid key (4944)
ipcrm: invalid key (9948)
[SystemServer] App-core Framework Daemon process is executed (pid 1387)
[SystemServer] Camera Framework Daemon process is executed (pid 1388)
[SystemServer] Sensor Framework Daemon process is executed (pid 1389)
Sensor head is not initilized! Perform initilizing
[SM] ACC is added [Total number of sensor :1 ]
[SM] TEMP is added [Total number of sensor :2 ]
[SM] SOUND is added [Total number of sensor :3 ]
Error while reading symbol: /etc/ant/sensor-drivers/libsensors.so: undefined symbol: LIGHT_start
[SystemServer] An ANT process (pid 1389) is dead.
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraManager.cpp: [main():137]: ANT Camera Manager Start!
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraManager.cpp: [start():39]: Camera Config file path : /etc/ant/config/camera-config.json
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():63]: UserAppsDir=/etc/ant/apps/user
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():71]: SystemAppsDir=/etc/ant/apps/system
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():76]: AppListDB=/etc/ant/apps/AppListDB.sqlite
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():93]: DataDir=/etc/ant/data
[WARN] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():109]: Cannot read ANT_TEMP_DIR, so ANT_TEMP_DIR is set as /etc/ant/data/temp
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [initializeDirs():119]: TempDir=/etc/ant/data/temp
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/DbusChannel.cpp: [initializeDbus():42]: DbusChannel: Start dbus initializing
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/DbusChannel.cpp: [initializeDbus():64]: We now own the name org.ant.dbuschannel!
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/DbusChannel.cpp: [listeningLoop():142]: DbusChannel's Listening Loop: Start dbus-enabled glib main loop
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/DbusChannel.cpp: [listeningLoop():151]: [VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/thing/apps -> DbusChannel) is added to MessageRouterTable
Dbus response ready
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(36) > Enter=================
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(39) > ==================Exit
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [start():128]: Start CommChannel
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(39) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(143) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(158) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(64) > Bound BT socket 6 to BT port 1
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(171) > Enter=================
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(246) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(88) > Bluetooth port listening success
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(90) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(39) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(143) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(158) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(64) > Bound BT socket 8 to BT port 2
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(171) > Enter=================
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(246) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(88) > Bluetooth port listening success
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(90) > ==================Exit
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(55) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(95) > Enter=================
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(55) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(95) > Enter=================
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/comp0 -> CommChannel) is added to MessageRouterTable
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/thing/appcore -> LocalChannel) is added to MessageRouterTable
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():58]: Number of camera = 1
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():59]: Recording = queue ! h264parse ! mp4mux ! filesink name=sink_%u sync=f
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():60]: Snapshot = queue ! jpegenc ! image/jpeg,width=1280,height=720,framerate=1/1 ! appsink name=sink_%u
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():61]: Streaming = queue ! h264parse ! rtph264pay pt=96 config-interval=1 ! gdppay ! tcpserversink name=sink_%u sync=f
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():62]: Pre-Recording Init = queue min-threshold-time=10000000000 max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! valve drop=true ! tee name=sink_%u
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():63]: Pre-Recording = queue ! h264parse ! mp4mux ! filesink name=sink_%u sync=f
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():64]: OpenCV = queue ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! videoconvert ! video/x-raw,format=BGRx,width=640,height=480 ! appsink name=sink_%u
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraManager.cpp: [start():62]: Camera device initialization (0)
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraConfigParser.cpp: [getMainBinById():76]: main_0 = rpicamsrc ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! tee name=RAW_TEE ! queue ! tee name=MAIN_TEE ! queue ! omxh264enc ! tee name=H264_TEE ! queue ! fakesink
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: capsfilter0
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: fakesink0
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: queue2
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: H264_TEE
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():40]: Main 0 bin has h264 tee
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: omxh264enc-omxh264enc0
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: queue1
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: MAIN_TEE
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():36]: Main 0 bin has main tee
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: queue0
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: RAW_TEE
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():32]: Main 0 bin has raw tee
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraDevice.cpp: [CameraDevice():29]: rpicamsrc0
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraCommunicator.cpp: [initCommunication():16]: D-Bus initialization
[LOG] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraManager.cpp: [msg_dbus_filter():158]: D-Bus message received
[WARN] CAMERA FW:/home/redcarrottt/ant/framework/camera/src/CameraManager.cpp: [msg_dbus_filter():190]: Receive unidentified D-bus message
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(115) > Bluetooth port accepted
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(118) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=96 / payloadSize=119 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"0","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"1","payload":null}} /
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /thing/appcore(LocalChannel), {
"messageId": "0",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "1",
"payload": null
}
}
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [onReceivedMessage():194]: AppCore command: GetAppList (1)
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /comp0(CommChannel), {
"messageId": "0",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "0",
"commandType": "1",
"payload": {
"appList": [{
"appId": "0",
"appName": "CameraViewer",
"isDefaultApp": "1"
}, {
"appId": "1",
"appName": "SensorViewer",
"isDefaultApp": "1"
}]
}
}
}
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(319) > Send message metadata (1)
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(338) > Send message data (1)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 349
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=96 / payloadSize=349 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(480) > Send message done (1)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=96 / payloadSize=129 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"1","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"12","payload":{"appId":"0"}}} /
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /thing/appcore(LocalChannel), {
"messageId": "1",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "12",
"payload": {
"appId": "0"
}
}
}
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=3 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=3 / flag=96 / payloadSize=129 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"2","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"12","payload":{"appId":"1"}}} /
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /thing/appcore(LocalChannel), {
"messageId": "2",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "12",
"payload": {
"appId": "1"
}
}
}
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [onReceivedMessage():238]: AppCore command: GetAppIcon (12)
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /comp0(CommChannel), {
"messageId": "1",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "1",
"commandType": "12"
}
}
[VERB] APPCORE:/home/redcarrottt/ant/framework/appcore/src/AppCore.cpp: [onReceivedMessage():238]: AppCore command: GetAppIcon (12)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(319) > Send message metadata (2)
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=2 / flag=16 / payloadSize=8 / currOffset=0
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=1387) Route to /comp0(CommChannel), {
"messageId": "2",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "2",
"commandType": "12"
}
}
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(338) > Send message data (2)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 145
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=2 / flag=96 / payloadSize=145 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(480) > Send message done (2)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(319) > Send message metadata (3)
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=3 / flag=16 / payloadSize=8 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(338) > Send message data (3)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 145
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=3 / flag=96 / payloadSize=145 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(480) > Send message done (3)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(115) > Bluetooth port accepted
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(118) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=96 / payloadSize=3 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedControlMessage():302]: Received control message for CommChannel: on
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(54) > Enter=================
Selected interface 'wlan0'
OK
/etc/ant/bin/ant_p2p_setup.sh: line 117: /tmp/wifi/wifi-direct/wfd_stat/self: No such file or directory
stopped
cat: /tmp/wifi/wifi-direct/init/self: No such file or directory
/etc/ant/bin/ant_p2p_setup.sh: line 22: [: -eq: unary operator expected
wpa_supplicant v2.6-devel
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlan0' conf '/etc/ant/config/p2p.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/ant/config/p2p.conf' -> '/etc/ant/config/p2p.conf'
Reading configuration file '/etc/ant/config/p2p.conf'
ctrl_interface='/var/run/wpa_supplicant'
ap_scan=1
device_name='ANT'
Priority group 0
id=0 ssid='DIRECT-CS-ANT'
nl80211: TDLS supported
nl80211: Supported cipher 00-0f-ac:1
nl80211: Supported cipher 00-0f-ac:5
nl80211: Supported cipher 00-0f-ac:2
nl80211: Supported cipher 00-0f-ac:4
nl80211: Using driver-based off-channel TX
nl80211: Supported vendor command: vendor_id=0x1018 subcmd=1
nl80211: Use separate P2P group interface (driver advertised support)
nl80211: use P2P_DEVICE support
nl80211: interface wlan0 in phy phy0
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Subscribe to mgmt frames with non-AP handle 0x5b9960
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=040a
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=040b
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=040c
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=040d
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=090a
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=090b
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=090c
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=090d
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=0409506f9a09
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=7f506f9a09
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=06
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=0a07
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=0a11
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=1101
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=1102
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=0505
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5b9960 match=0500
rfkill: initial event: idx=0 type=1 op=0 soft=0 hard=0
netlink: Operstate: ifindex=3 linkmode=1 (userspace-control), operstate=5 (IF_OPER_DORMANT)
Add interface wlan0 to a new radio phy0
nl80211: Regulatory information - country=GB (DFS-ETSI)
nl80211: 2402-2482 @ 40 MHz 20 mBm
nl80211: 5170-5250 @ 80 MHz 20 mBm
nl80211: 5250-5330 @ 80 MHz 20 mBm (DFS)
nl80211: 5490-5710 @ 160 MHz 27 mBm (DFS)
nl80211: 57000-66000 @ 2160 MHz 40 mBm
nl80211: Added 802.11b mode based on 802.11g information
wlan0: Own MAC address: b8:27:eb:03:8d:46
wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=0 set_tx=0 seq_len=0 key_len=0
wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=1 set_tx=0 seq_len=0 key_len=0
wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=2 set_tx=0 seq_len=0 key_len=0
wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=3 set_tx=0 seq_len=0 key_len=0
wlan0: RSN: flushing PMKID list in the driver
nl80211: Flush PMKIDs
wlan0: No enabled networks (1 disabled networks)
wlan0: State: DISCONNECTED -> INACTIVE
wlan0: WPS: UUID based on MAC address: 2e907359-9a09-54d7-94f6-0aa2a814d850
ENGINE: Loading dynamic engine
ENGINE: Loading dynamic engine
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
nl80211: Skip set_supp_port(unauthorized) while not associated
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
wlan0: Added interface wlan0
wlan0: State: INACTIVE -> DISCONNECTED
nl80211: Set wlan0 operstate 0->0 (DORMANT)
netlink: Operstate: ifindex=3 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT)
nl80211: Create interface iftype 10 (P2P_DEVICE)
nl80211: New P2P Device interface p2p-dev-wlan0 (0x2) created
Initializing interface 'p2p-dev-wlan0' conf '/etc/ant/config/p2p.conf' driver 'nl80211' ctrl_interface '/var/run/wpa_supplicant' bridge 'N/A'
Configuration file '/etc/ant/config/p2p.conf' -> '/etc/ant/config/p2p.conf'
Reading configuration file '/etc/ant/config/p2p.conf'
ctrl_interface='/var/run/wpa_supplicant'
ap_scan=1
device_name='ANT'
Priority group 0
id=0 ssid='DIRECT-CS-ANT'
nl80211: TDLS supported
nl80211: Supported cipher 00-0f-ac:1
nl80211: Supported cipher 00-0f-ac:5
nl80211: Supported cipher 00-0f-ac:2
nl80211: Supported cipher 00-0f-ac:4
nl80211: Using driver-based off-channel TX
nl80211: Supported vendor command: vendor_id=0x1018 subcmd=1
nl80211: Use separate P2P group interface (driver advertised support)
nl80211: use P2P_DEVICE support
nl80211: interface p2p-dev-wlan0 in phy phy0
nl80211: Set mode ifindex 0 iftype 10 (P2P_DEVICE)
nl80211: Failed to set interface 0 to mode 10: -22 (Invalid argument)
nl80211: Subscribe to mgmt frames with non-AP handle 0x5bee58
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=040a
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=040b
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=040c
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=040d
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=090a
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=090b
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=090c
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=090d
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=0409506f9a09
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=7f506f9a09
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=06
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=0a07
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=0a11
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=1101
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=1102
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=0505
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x5bee58 match=0500
nl80211: Use (wlan0) to initialize P2P Device rfkill
rfkill: initial event: idx=0 type=1 op=0 soft=0 hard=0
nl80211: Start P2P Device p2p-dev-wlan0 (0x2): Success
Add interface p2p-dev-wlan0 to existing radio phy0
nl80211: Regulatory information - country=GB (DFS-ETSI)
nl80211: 2402-2482 @ 40 MHz 20 mBm
nl80211: 5170-5250 @ 80 MHz 20 mBm
nl80211: 5250-5330 @ 80 MHz 20 mBm (DFS)
nl80211: 5490-5710 @ 160 MHz 27 mBm (DFS)
nl80211: 57000-66000 @ 2160 MHz 40 mBm
nl80211: Added 802.11b mode based on 802.11g information
p2p-dev-wlan0: Own MAC address: ba:27:eb:03:8d:46
p2p-dev-wlan0: RSN: flushing PMKID list in the driver
nl80211: Flush PMKIDs
p2p-dev-wlan0: State: DISCONNECTED -> INACTIVE
p2p-dev-wlan0: WPS: UUID from the first interface: 2e907359-9a09-54d7-94f6-0aa2a814d850
ENGINE: Loading dynamic engine
ENGINE: Loading dynamic engine
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
nl80211: Skip set_supp_port(unauthorized) while not associated
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
Using existing control interface directory.
P2P: Add operating class 81
P2P: Channels - hexdump(len=13): 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
P2P: Own listen channel: 81:11
P2P: Random operating channel: 81:1
P2P: initialized
P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11,12,13
P2P: cli_channels:
p2p-dev-wlan0: Added interface p2p-dev-wlan0
p2p-dev-wlan0: State: INACTIVE -> DISCONNECTED
nl80211: Set p2p-dev-wlan0 operstate 0->0 (DORMANT)
netlink: Operstate: ifindex=0 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT)
p2p-dev-wlan0: Determining shared radio frequencies (max len 1)
p2p-dev-wlan0: Shared frequencies (len=0): completed iteration
P2P: Add operating class 81
P2P: Channels - hexdump(len=13): 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
P2P: Update channel list
P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11,12,13
P2P: cli_channels:
Daemonize..
Selected interface 'p2p-dev-wlan0'
OK
Selected interface 'p2p-wlan0-0'
12345670Started
udhcpd (v1.22.1) started
started
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(89) > P2p start!
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(96) > Wifi direct turned on
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(98) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/WifiDirectCommPort.cpp(36) > Enter=================
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/WifiDirectCommPort.cpp(85) > Wifi direct port listening success
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/WifiDirectCommPort.cpp(89) > ==================Exit
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(55) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/WifiDirectCommPort.cpp(94) > Enter=================
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/WifiDirectCommPort.cpp(98) > Wifi direct port is now accepting: port = 10001
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(319) > Send message metadata (1)
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(338) > Send message data (1)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 16
CMFW(toByteArray):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=96 / payloadSize=16 / currOffset=0
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(480) > Send message done (1)
CMFW(sendRawMessage):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
Sending OFFER of 192.168.49.26
Sending ACK to 192.168.49.26
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=96 / payloadSize=4 / currOffset=0
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedControlMessage():302]: Received control message for CommChannel: off
CMFW(stopListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(59) > Enter=================
CMFW(stopListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(61) > ==================Exit
CMFW(turnOff):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(103) > Enter=================
Selected interface 'p2p-wlan0-0'
OK
stopped
CMFW(turnOff):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(108) > Wifi direct turned off
CMFW(turnOff):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(113) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/redcarrottt/ant/framework/communication/src/CommRawPacket.cpp(132) > read socket error: Connection reset by peer
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(102) > listeningLoop: header is NULL
CMFW(stopListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(59) > Enter=================
CMFW(stopListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(61) > ==================Exit
CMFW(closeConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(123) > Enter=================
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(39) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(143) > Enter=================
CMFW(bindDynamically):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(158) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(64) > Bound BT socket 8 to BT port 3
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(171) > Enter=================
CMFW(registerBluetoothService):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(246) > ==================Exit
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(88) > Bluetooth port listening success
CMFW(openConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(90) > ==================Exit
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(55) > ==================Exit
[ERR] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onCommPortStateChanged():117]: CommChannel control port closed -> reopenedCMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(95) > Enter=================
CMFW(closeConnection):/home/redcarrottt/ant/framework/communication/src/BluetoothCommPort.cpp(139) > ==================Exit
CMFW(listeningLoop):/home/redcarrottt/ant/framework/communication/src/CommPort.cpp(289) > ==================Exit
Especially, following log is outstanding.
[VERB] APPCORE:/home/redcarrottt/ant/framework/message/src/CommChannel.cpp: [onReceivedControlMessage():302]: Received control message for CommChannel: on
CMFW(turnOn):/home/redcarrottt/ant/framework/communication/src/DeviceController.cpp(54) > Enter=================
Selected interface 'wlan0'
OK
/etc/ant/bin/ant_p2p_setup.sh: line 117: /tmp/wifi/wifi-direct/wfd_stat/self: No such file or directory
stopped
cat: /tmp/wifi/wifi-direct/init/self: No such file or directory
/etc/ant/bin/ant_p2p_setup.sh: line 22: [: -eq: unary operator expected
wpa_supplicant v2.6-devel
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlan0' conf '/etc/ant/config/p2p.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A'
I will handle this bug.
Currently, ANT uses modified OpenCV library for face detection.
However, as the ML framework was developed, I thought that it would be appropriate for face detection to be included in the ML framework.
There are some advantages.
intall-deps-*.sh
is significantly reduced. (Because building OpenCV takes a considerable amount of time.) #7I plan to work with the ANT framework to support ODROID XU4.
This issue is related to #71.
ANT uses libuv v1.7.5.
However, Node.js requires the latest libuv.
Because older versions do not support some functions. (e.g., uv_os_getpid()
)
We made many changes on ANT API. For example, I changed App API and added Machine Learning API. @LeeHayun deprecated Face Detection API.
Therefore, we need to refine ANT sample applications in apps/sample
directory.
Both apps use obsolete App API still. SmartBB
app uses Face Detection API that has already deprecated.
I will update App API calls that are used in the sample apps.
Then, how about SmartBB
app?
As I think, deprecating SmartBB app and making a new machine learning app would be good.
Currently, files in the MTX file format can be read in sparse matrix format.
However, to provide real machine learning inference, you must provide an API that supports various file formats.
In our project, there is target/ directory and install-deps script for each target.
(install-deps-tegraTX1.sh, install-deps-raspberry-pi2_3.sh)
In many open source projects, they use one script file and use argument to support several target platforms.
Therefore, i propose make the install-deps script one using argument with the target name.
Our install.sh script is already done with the argument of target board name.
(./install.sh --target=raspberry_pi2_3)
Which do you think it's better? unify the install-deps.sh script or leave it as it is now?
In ANT, we use Node.js 4.x as javascript runtime.
However, Node.js 4.x LTS Argon is no longer actively supported!
Currently, Node.js 8 LTS is recommended.
Therefore, we need to increase the version of Node.js used in ANT to 8.
For more information about release of Node.js, check the link below.
https://github.com/nodejs/Release
Hi.
ANT has been using Caffe as the runtime of the ML daemon.
However, the libraries used by Caffe are not optimized for ARM devices, making it difficult to achieve good performance.
In order to achieve good ML performance in IoT devices, it is first necessary to use a good baseline library.
libant-message
needs unified API binary fileCurrently, ANT app should execute separated require()
calls to use ANT API.
var appApi = require(process.env.OPEL_BIN_DIR + '/api/app-api');
var cameraApi = require(process.env.OPEL_BIN_DIR + '/api/camera-api');
It is because each API is implemented separately. Each API is implemented as a separated binary.
On the other hand, as libant-message
library is introduced for IPC, message handling is handled by the libant-message
.
Since libant-message
spawns its own message listening thread, separated binary makes duplicated message listening thread.
Therefore, API-related binary (that utilizes libant-message
) need to be unified to single binary as following example.
require()
callAs machine learning API will be implemented with the library, require
call also should be unified to single call.
var antAPI = require(process.env.OPEL_BIN_DIR + '/api/ant-api');
var appAPI = new antAPI.app();
var cameraAPI = new antAPI.camera();
var mlAPI = new antAPI.ml();
SpMV, SpMM kernel code is fixed with the best performance loop unrolling factor.
However, in the deep learning model, fixed values can not be used because the matrix size varies.
So i have to modify your code so that it can handle the residual value to make it all possible.
Related to PR #24 , there was a discussion about the License of Open Source.
In the process of writing Travis script, i used some python scripts from Samsung/iotjs project.
In a general view, now we are using many 3rd party libraries, and
there will be many cases using other project's source code. (which allows its use)
Therefore, i think we need to discuss about the use of Open source and libraries, and
the mention of Licenses which they have.
Let's discuss about the way we mention the License of 3rd party libraries and Open Source Projects.
(Now, in case of #24 , when i use the python code of Samsung/iotjs, i added some comment to our License file)
Now, de facto standard target device of ANT is Raspberry Pi3 and Tegra TX2.
And when we are testing on the raspberry pi3, we had some issue with the bluetooth device.
RPI3 has internal bluetooth module and it would be disabled when used with the external BT module.
This problem is general around several other projects (such as ardupilot with Navio2)
We are on testing continuously, and we will make an announcement or manual soon for RPI3 bluetooth.
Anyway, now i recommend not to use external bluetooth dongle when using RPI3.
If you have another problem, please report here. Thanks.
Currently available deep learning frameworks are typically tensorflow, caffe, pytorch, and the like.
Using these frameworks, training a deep neural network creates a model file of each.
For example, tensorflow is a ckpt file and caffe is a caffemodel file.
To use get_weight_accessor, which is now provided in the ACL, you need to change the files like ckpt, caffemodel to npy file.
Therefore, the model converter function should be provided.
I felt the necessity of our own Docker Image when i made Travis CI test system.
Now in our Travis CI system, we are using sedeen/rpi-raspbian-qemu docker image.
However, there's problem with our current Travis system.
Travis usually provides total maximum 50 minutes for testing, but our system take more than 3 hours to test the whole process.
It's mainly due to building process of OpenCV and Node.js. Of course OpenCV dependency will disappear in #26 .
Nevertheless, we need to diminish the time of testing such as installing libraries, ...
We need to use time in testing the test script of our each framework, not installing libraries.
Therefore, in the long run, we need to create and use our own Docker Image for the target devices.
In addition, currently we are supporting the test environment with the Raspbian, but tegra TX2 is not supported.
We need to use our own Docker images for target devices.
When using "cmake -Bbuild -H.
" instead of "cmake .
", there is a library linking error that cannot find libant-message
and libant-cmfw
.
I guess that it is because of ambiguous path settings in CMakeLists.txt
of app-api
.
redcarrottt@tegra-carrot:~/ant-ml$ cmake .
redcarrottt@tegra-carrot:~/ant-ml/build$ make
[ 2%] Make out directory
[ 2%] Built target out-dir
[ 4%] Built target DeviceController
[ 6%] Built target TmpControl
[ 8%] Built target BluetoothCommPort
[ 11%] Built target WifiDirectCommPort
[ 13%] Built target CommRawPacket
[ 17%] Built target ant-cmfw
[ 37%] Built target ant-message
[ 44%] Built target miniunz
[ 55%] Built target ant-appcore
[ 75%] Built target ant-camera
[ 86%] Built target ant-sensor
[ 86%] Built target nil
[ 88%] Building NIL for App API
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp info spawn /usr/bin/python2
gyp info spawn args [ '/usr/local/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/home/redcarrottt/ant-ml/api/app/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/usr/local/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/redcarrottt/.node-gyp/4.0.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/redcarrottt/.node-gyp/4.0.0',
gyp info spawn args '-Dnode_gyp_dir=/usr/local/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=node.lib',
gyp info spawn args '-Dmodule_root_dir=/home/redcarrottt/ant-ml/api/app',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp info ok
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | arm64
gyp SOLINK_MODULE(target) Release/obj.target/app-api.node
info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
/usr/bin/ld: cannot find -lant-cmfw
/usr/bin/ld: cannot find -lant-message
collect2: error: ld returned 1 exit status
app-api.target.mk:138: recipe for target 'Release/obj.target/app-api.node' failed
make[3]: *** [Release/obj.target/app-api.node] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/node-gyp/lib/build.js:285:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.10.96-tegra
gyp ERR! command "/usr/local/bin/node" "/usr/local/bin/node-gyp" "build"
gyp ERR! cwd /home/redcarrottt/ant-ml/api/app
gyp ERR! node -v v4.0.0
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
api/app/CMakeFiles/nil-appsys.dir/build.make:57: recipe for target 'api/app/CMakeFiles/nil-appsys' failed
make[2]: *** [api/app/CMakeFiles/nil-appsys] Error 1
CMakeFiles/Makefile2:736: recipe for target 'api/app/CMakeFiles/nil-appsys.dir/all' failed
make[1]: *** [api/app/CMakeFiles/nil-appsys.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Currently, the CMakeList.txt files are using the relative path to the its own directory.
For example, "../../out/bin"
We need to use the environment variable to represent all the paths in our project.
E.g., ${CMAKE_SOURCE_DIR}/out/
Our ANT project does not support the multi-threaded compile. (-j option in make)
We should compile the frameworks step by step without multi-threading option.
It's essential to make it support multi-threaded compile to enhance the compile time.
Currently, ANT API is composed of only C++ native code.
Functions in the native code are directly bound to JS function calls.
All the JS API functions should have code for exception handling and argument type checking.
It is because JavaScript is dynamic type language and its functions do not restrict their arguments.
As now, exception handling and argument type checking is implemented in native code.
Implementing those in C++ is very inefficient and not good for code readability.
Accordingly, I propose to divide ANT API by JS part and native part.
In current version of ANT, we cannot install our own applications.
Currently, we can install only applications that are uploaded to our managed market.
Of course, there is another way to install applications manually. (install apps from market and modify the source code on ANT device)
However, this manner is not clear and not good in the long time.
We need app install tool to install our own applications.
As I think, the tool can be implemented as a new menu of ANT manager or shell script.
Currently, there is a stability issue in Wi-fi Direct connection between ANT Manager and ANT AppCore Manager.
Connecting Wi-fi Direct once works well.
However, after disconnecting Wi-fi Direct, re-connecting is often not work.
In many open source projects, they are using documentation in the docs/ dir.
I think it's useful to write down some useful notes about our system.
For example, i firstly write down some useful bluetooth command in docs/bluetooth.md
I will attach the PR number later.
After building the stretch version, I found an error in this environment.
Below is the log of an ANT manager's camera viewer app.
Camera viewer app did not work properly.
[SystemServer] args: Namespace(debugappcore=False, debugapps=False)
[SystemServer] Initializing ANT daemons...
ipcrm: invalid key (9447)
ipcrm: invalid key (5315)
ipcrm: invalid key (4941)
ipcrm: invalid key (49411)
ipcrm: invalid key (49441)
ipcrm: invalid key (4944)
ipcrm: invalid key (9948)
[SystemServer] App-core Framework Daemon process is executed (pid 6277)
[SystemServer] Camera Framework Daemon process is executed (pid 6278)
[SystemServer] Sensor Framework Daemon process is executed (pid 6279)
Cannot read the sensor configuration file[SystemServer] An ANT process (pid 6279) is dead.
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraManager.cpp: [main():154]: ANT Camera Manager Start!
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraManager.cpp: [start():56]: Camera Config file path : /etc/ant/config/camera-config.json
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():63]: UserAppsDir=/etc/ant/apps/user
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():71]: SystemAppsDir=/etc/ant/apps/system
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():76]: AppListDB=/etc/ant/apps/AppListDB.sqlite
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():93]: DataDir=/etc/ant/data
[WARN] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():109]: Cannot read ANT_TEMP_DIR, so ANT_TEMP_DIR is set as /etc/ant/data/temp
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [initializeDirs():119]: TempDir=/etc/ant/data/temp
[VERB] APPCORE:/home/pi/ANT/framework/message/src/DbusChannel.cpp: [initializeDbus():42]: DbusChannel: Start dbus initializing
[VERB] APPCORE:/home/pi/ANT/framework/message/src/DbusChannel.cpp: [initializeDbus():64]: We now own the name org.ant.dbuschannel!
[VERB] APPCORE:/home/pi/ANT/framework/message/src/DbusChannel.cpp: [listeningLoop():142]: DbusChannel's Listening Loop: Start dbus-enabled glib main loop
[VERB] APPCORE:/home/pi/ANT/framework/message/src/DbusChannel.cpp: [listeningLoop():151]: Dbus response ready
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/thing/apps -> DbusChannel) is added to MessageRouterTable
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(36) > Enter=================
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(39) > ==================Exit
[VERB] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [start():128]: Start CommChannel
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(39) > Enter=================
CMFW(bindDynamically):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(143) > Enter=================
CMFW(bindDynamically):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(158) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(64) > Bound BT socket 6 to BT port 1
CMFW(registerBluetoothService):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(171) > Enter=================
CMFW(registerBluetoothService):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(246) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(88) > Bluetooth port listening success
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(90) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(39) > Enter=================
CMFW(bindDynamically):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(143) > Enter=================
CMFW(bindDynamically):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(158) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(64) > Bound BT socket 8 to BT port 2
CMFW(registerBluetoothService):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(171) > Enter=================
CMFW(registerBluetoothService):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(246) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(88) > Bluetooth port listening success
CMFW(openConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(90) > ==================Exit
CMFW(runListeningThread):/home/pi/ANT/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/pi/ANT/framework/communication/src/CommPort.cpp(55) > ==================Exit
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(95) > Enter=================
CMFW(runListeningThread):/home/pi/ANT/framework/communication/src/CommPort.cpp(48) > Enter=================
CMFW(runListeningThread):/home/pi/ANT/framework/communication/src/CommPort.cpp(55) > ==================Exit
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(74) > Enter=================
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(95) > Enter=================
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/comp0 -> CommChannel) is added to MessageRouterTable
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [addRoutingEntry():32]: Entry (/thing/appcore -> LocalChannel) is added to MessageRouterTable
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():75]: Number of camera = 1
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():76]: Recording = queue ! h264parse ! mp4mux ! filesink name=sink_%u sync=f
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():77]: Snapshot = queue ! jpegenc ! image/jpeg,width=1280,height=720,framerate=1/1 ! appsink name=sink_%u
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():78]: Streaming = queue ! h264parse ! rtph264pay pt=96 config-interval=1 ! gdppay ! tcpserversink name=sink_%u sync=f
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():79]: Pre-Recording Init = queue min-threshold-time=10000000000 max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! valve drop=true ! tee name=sink_%u
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():80]: Pre-Recording = queue ! h264parse ! mp4mux ! filesink name=sink_%u sync=f
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [readyCameraConfig():81]: OpenCV = queue ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! videoconvert ! video/x-raw,format=BGRx,width=640,height=480 ! appsink name=sink_%u
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraManager.cpp: [start():79]: Camera device initialization (0)
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraConfigParser.cpp: [getMainBinById():93]: main_0 = rpicamsrc ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! tee name=RAW_TEE ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! queue ! tee name=MAIN_TEE ! video/x-raw,width=1280,height=720,framerate=30/1,format=I420 ! queue ! omxh264enc ! tee name=H264_TEE ! queue ! fakesink
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: capsfilter2
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: capsfilter1
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: capsfilter0
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: fakesink0
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: queue2
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: H264_TEE
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():57]: Main 0 bin has h264 tee
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: omxh264enc-omxh264enc0
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: queue1
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: MAIN_TEE
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():53]: Main 0 bin has main tee
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: queue0
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: RAW_TEE
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():49]: Main 0 bin has raw tee
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraDevice.cpp: [CameraDevice():46]: rpicamsrc0
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraCommunicator.cpp: [initCommunication():33]: D-Bus initialization
[LOG] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraManager.cpp: [msg_dbus_filter():175]: D-Bus message received
[WARN] CAMERA FW:/home/pi/ANT/framework/camera/src/CameraManager.cpp: [msg_dbus_filter():207]: Receive unidentified D-bus message
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(115) > Bluetooth port accepted
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(118) > ==================Exit
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=96 / payloadSize=119 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"0","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"1","payload":null}} /
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /thing/appcore(LocalChannel), {
"messageId": "0",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "1",
"payload": null
}
}
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [onReceivedMessage():194]: AppCore command: GetAppList (1)
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /comp0(CommChannel), {
"messageId": "0",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "0",
"commandType": "1",
"payload": {
"appList": [{
"appId": "0",
"appName": "CameraViewer",
"isDefaultApp": "1"
}, {
"appId": "1",
"appName": "SensorViewer",
"isDefaultApp": "1"
}]
}
}
}
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(319) > Send message metadata (1)
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(338) > Send message data (1)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 349
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=1 / flag=96 / payloadSize=349 / currOffset=0
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(480) > Send message done (1)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=2 / flag=96 / payloadSize=129 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"1","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"12","payload":{"appId":"0"}}} /
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /thing/appcore(LocalChannel), {
"messageId": "1",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "12",
"payload": {
"appId": "0"
}
}
}
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=3 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [onReceivedMessage():238]: AppCore command: GetAppIcon (12)
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /comp0(CommChannel), {
"messageId": "1",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "1",
"commandType": "12"
}
}
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=3 / flag=96 / payloadSize=129 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [onReceivedRawMessage():273]: Received raw message from CommChannel: {"messageId":"2","uri":"/thing/appcore","type":"10","isFileAttached":"0","payload":{"commandType":"12","payload":{"appId":"1"}}} /
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /thing/appcore(LocalChannel), {
"messageId": "2",
"uri": "/thing/appcore",
"type": "10",
"isFileAttached": "0",
"payload": {
"commandType": "12",
"payload": {
"appId": "1"
}
}
}
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(307) > CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Default Port: Waiting to listen message
Enter=================
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(319) > Send message metadata (2)
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=2 / flag=16 / payloadSize=8 / currOffset=0
[VERB] APPCORE:/home/pi/ANT/framework/appcore/src/AppCore.cpp: [onReceivedMessage():238]: CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(338) > Send message data (2)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 145
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=2 / flag=96 / payloadSize=145 / currOffset=0AppCore command: GetAppIcon (12)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(480) > Send message done (2)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(481) > ==================Exit
[VERB] APPCORE:/home/pi/ANT/framework/message/src/MessageRouter.cpp: [routeMessage():91]: (pid=6277) Route to /comp0(CommChannel), {
"messageId": "2",
"uri": "/comp0",
"type": "11",
"isFileAttached": "0",
"payload": {
"commandMessageId": "2",
"commandType": "12"
}
}
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(307) > Enter=================
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(319) > Send message metadata (3)
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=3 / flag=16 / payloadSize=8 / currOffset=0
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(338) > Send message data (3)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(368) > sendRawMessage(message): mPayloadSize = 145
CMFW(toByteArray):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(174) > write header: id=3 / flag=96 / payloadSize=145 / currOffset=0
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(480) > Send message done (3)
CMFW(sendRawMessage):/home/pi/ANT/framework/communication/src/CommPort.cpp(481) > ==================Exit
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(115) > Bluetooth port accepted
CMFW(acceptConnection):/home/pi/ANT/framework/communication/src/BluetoothCommPort.cpp(118) > ==================Exit
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=16 / payloadSize=8 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 1
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(123) > Read complete: message metadata
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
CMFW(readFromSocket):/home/pi/ANT/framework/communication/src/CommRawPacket.cpp(137) > read header: id=1 / flag=96 / payloadSize=3 / currOffset=0
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(104) > Expected type: 2
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(160) > Read complete: message data
[VERB] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [onReceivedControlMessage():302]: Received control message for CommChannel: on
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(54) > Enter=================
Selected interface 'p2p-dev-wlan0'
OK
stopped
1
started
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(89) > P2p start!
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(96) > Wifi direct turned on
CMFW(turnOn):/home/pi/ANT/framework/communication/src/DeviceController.cpp(98) > ==================Exit
CMFW(openConnection):/home/pi/ANT/framework/communication/src/WifiDirectCommPort.cpp(36) > Enter=================
CMFW(openConnection):/home/pi/ANT/framework/communication/src/WifiDirectCommPort.cpp(70) > Wifi direct port open error: bind fail (Cannot assign requested address)
CMFW(openConnection):/home/pi/ANT/framework/communication/src/WifiDirectCommPort.cpp(71) > ==================Exit
[ERR] APPCORE:/home/pi/ANT/framework/message/src/CommChannel.cpp: [enableLargeDataMode():177]: CommChannel enableLargeData: opening largedata port fail
CMFW(listeningLoop):/home/pi/ANT/framework/communication/src/CommPort.cpp(97) > Control Port: Waiting to listen message
Currently, ANT can recognize USB-connected Bluetooth modules on Raspberry Pi 3.
However, built-in Bluetooth module of Raspberry Pi 3 cannot be recognized.
I guess that this is because of bluez version problem.
In the ACL, the input matrix appears in two forms: NCHW or NHWC.
The algorithm we are currently using transposes the input matrix to the column major and proceeds to SpMM.
If you try to use this algorithm by porting to an ACL and you do not provide a matrix transpose in your ACL, you need transpose code.
Hi.
Previously I used ODroid USB Camera 720P in ODROID XU4.
This camera looks like this:
However, using ANT with this camera will cause problems when generating the GStreamer pipeline on the smartphone side.
Below is the logs of Pixel 1 from Android Studio.
2018-11-29 20:31:24.336 28881-28939/com.ant.ant_manager W/GStreamer+gdpdepay: 0:00:03.488077604 0xc1aea6c0 gstgdpdepay.c:565:gst_gdp_depay_decide_allocation:<gdpdepay0> Peer allocation query failed.
2018-11-29 20:31:24.345 28881-28939/com.ant.ant_manager W/GStreamer+gdpdepay: 0:00:03.497453125 0xc1aea6c0 gstgdpdepay.c:565:gst_gdp_depay_decide_allocation:<gdpdepay0> Peer allocation query failed.
2018-11-29 20:31:24.346 28881-28939/com.ant.ant_manager W/GStreamer+GST_PADS: 0:00:03.498171354 0xc1aea6c0 gstpad.c:4109:gst_pad_peer_query:<gdpdepay0:src> could not send sticky events
2018-11-29 20:31:24.346 28881-28939/com.ant.ant_manager W/GStreamer+gdpdepay: 0:00:03.498267708 0xc1aea6c0 gstgdpdepay.c:565:gst_gdp_depay_decide_allocation:<gdpdepay0> Peer allocation query failed.
2018-11-29 20:31:24.346 28881-28939/com.ant.ant_manager W/GStreamer+gdpdepay: 0:00:03.498383854 0xc1aea6c0 gstgdpdepay.c:503:gst_gdp_depay_chain:<gdpdepay0> pushing depayloaded buffer returned -4
2018-11-29 20:31:24.415 28881-28940/com.ant.ant_manager W/GStreamer+basesrc: 0:00:03.566867187 0xc1aea6f0 gstbasesrc.c:2950:gst_base_src_loop:<tcpclientsrc0> error: Internal data stream error.
2018-11-29 20:31:24.415 28881-28940/com.ant.ant_manager W/GStreamer+basesrc: 0:00:03.567190104 0xc1aea6f0 gstbasesrc.c:2950:gst_base_src_loop:<tcpclientsrc0> error: streaming stopped, reason not-negotiated (-4)
2018-11-29 20:31:24.416 28881-28940/com.ant.ant_manager W/GStreamer+queue: 0:00:03.568547916 0xc1aea6f0 gstqueue.c:989:gst_queue_handle_sink_event:<queue0> error: Internal data stream error.
2018-11-29 20:31:24.417 28881-28940/com.ant.ant_manager W/GStreamer+queue: 0:00:03.568644271 0xc1aea6f0 gstqueue.c:989:gst_queue_handle_sink_event:<queue0> error: streaming stopped, reason not-negotiated (-4)
2018-11-29 20:31:24.417 28881-28936/com.ant.ant_manager D/GStreamer+camera-viewer: 0:00:03.568734375 0xc028d320 /home/hayun/jni/camera-viewer.c:107:set_ui_message Setting message to: Error received from element tcpclientsrc0: Internal data stream error.
Refering to PR #82, Google Cloud Plug-in is applied to ANT framework.
Google Cloud Plug-in does only data transfer via MQTT Pub/Sub.
However, there are many applications based on Google Cloud, such as sensor database or machine learning.
Although making those cloud application is a job of application developers, it is good to propose basic cloud application example.
For example, following example code can be made.
I propose Cloud API and Google Cloud Plug-in.
Cloud API covers basic function calls for MQTT Pub/Sub.
Google Cloud Plug-in covers authentication on connection time and name convention handling in MQTT token, subscription, or project name.
Those new modules can be used for connecting ANT sensor framework or inference framework to Google Cloud.
Sensor data or video frame from ANT device can be stored to Google Cloud's "Cloud BigTable" or used to analysis using "Cloud ML".
Currently, when ANT manager app tries to turn on large data mode, it discovers a Wi-fi Direct peer which name is "ANT".
This "name-based discovery" can make a trouble when multiple ANT devices are active nearby. ANT manager app can be confused to select which peer to choose.
Therefore, it should be changed to "MAC address-based discovery".
ACL_GEMM (1024 x 1024) execution time : 10ms
CSR_FLEX_GEMM (1024 x 1024) execution time : 60ms (best performance)
The difference between these two performances seems to be the tiling optimization technique.
ย
To get better performance than ACL_GEMM, consider about tile-based SpMM or use other sparse format.
ANT project is managed in two branches; master
and android
.
In android
branch, there is source code of ANT manager running on companion devices(Android smartphones).
In master
branch, there is source cod of ANT framework running on IoT devices.
Since this project is managed in separated branch, matching binary versions on each devices is tricky.
Therefore, I propose integrating android
branch into master
branch.
Source code inside of android
branch can be relocated to android
directory in master
branch.
Matrix size : 1024 by 1024
There are no difference execution time with different sparsity( number of non-zeros).
The expected results should increase the kernel resolution time as the sparsity increases.
We are using independent logging system for each framework.
However, to easily use the framework with the proper logging, it's necessary to unify our logging system.
I propose to use google's logging system 'glog' (https://github.com/google/glog)
It provides log level and several mode.
How do you think about that?
Now, our framework is a little fragile.
Our framework daemons could die when there were some exceptional stuffs.
We should make it resilient to make our framework sturdy.
For this, we should write some error handling code in our frameworks.
Except the fatal case that must be handled, we should have alternatives for the exceptional case.
For example, in sensor manager,
i'm devising to make virtual sensor driver to make SENSOR daemon alive without real sensor driver.
Now, SENSOR daemon dies when there is no sensor driver file.
I tested ANT framework on Raspberry Pi3 - Stretch (dist).
After install ANT into system successfully, it could make error related to SDP session registration.
I'm not sure what causes this error, but after i reboot, it works well.
As soon as i figured it out, i will debug the error.
Until then, please reboot when you meet the error below.
Most of ANT APIs require nan
package to support native code in ANT API.
Although nan
package is dependent on only ANT APIs, command to install nan
package is included in target/{board_name}/install-deps-{board_name}.sh
.
I propose to move npm package install command to "app/package.json".
After I made a PR #69, git clone
's speed is degraded.
It's reason may be that I included workloads for experiments in selective connection subproject to git commit history.
Therefore, I excluded the workloads with hundreds megabytes of files.
After that, the git clone's speed is recovered.
I'm now trying to pruning for sparse operations with even sparsity among groups, considering load-balancing.
However, simply correcting the number after pruning looks seriously damage the accuracy.
Therefore, a new approach seems necessary.
I have trouble trying to train AlexNet using Pytorch.
Using single GPU doesn't cause any problems, but using multi GPU doesn't work with the following warning message.
/home/khs/anaconda2/lib/python2.7/site-packages/torch/nn/parallel/data_parallel.py:24: UserWarning:
There is an imbalance between your GPUs. You may want to exclude GPU 2 which
has less than 75% of the memory or cores of GPU 0. You can do so by setting
the device_ids argument to DataParallel, or by setting the CUDA_VISIBLE_DEVICES
environment variable.
warnings.warn(imbalance_warn.format(device_ids[min_pos], device_ids[max_pos]))
We've made or updated many APIs in ANT framework 2.0.
However, ANT Project's Wiki page is not updated yet.
Hi.
Currently, the camera framework and the ML framework are separate.
However, it is not natural. (Because doing ML can be considered as some work on the pipeline)
I propose to develop an ML plugin that can be added to the pipeline managed by the camera framework.
This idea is referenced in the following paper:
EdgeEye: An Edge Service Framework for Real-time Intelligent Video Analytics (EdgeSys'18)
I've made test mode of machine learning daemon, as shown in PR #30.
You can use test mode of machine learning framework with following commands.
sudo /etc/ant/bin/ant-ml --test-image
sudo /etc/ant/bin/ant-ml --test-motion
The test mode can run solely, without any ANT app or daemon.
It seems that our community is not well managed. So I want to make the guidelines for community management. Formally create guidelines through the issue and manage to follow them. If you have comments on the guidelines, please comment.
The examples of the guideline is as follows.
Since it is still a simple guideline, it may be lacking in content or the sentence may be ambiguous. If you want to modify or add guidelines, please feel free to comment.
Currently, install-deps-*.sh
spends several hours of execution time.
This script builds all the dependent projects such as bluez
, libuv
and nodejs
.
We don't need to build those projects every time.
There are several options on solution.
install-prebuilt-deps-*.sh
scripts that download and install pre-built projectsapt-get
)Hi.
I had a problem porting to ODROID XU4.
ODROID XU4 does not have OMX plugin installed and avenc_h264
plugin does not work properly.
Currently, I used MPEG4 code for running ANT in ODROID XU4.
When CSR-SpMV was 25%, it showed similar performance as ACL-GEMV.
As a result of the provisioning, the biggest cause of performance was global memory access.
Therefore, it is effective to reduce the cache miss through regular access to the input vector and to use the SIMD-ware pruning method for reducing memory access due to CSR format characteristics.
While these problems can be solved, SIMD-aware pruning is damaging to accuracy because the pruning area is re-structible.
Discussion
Most of cloud services require authentication process using RSA keys.
As now, you should make your own RSA key on command line before using Cloud API.
Since it is cumbersome process, it is good to add RSA key management API to Cloud API.
It makes app developers free from RSA management commands.
Currently, each ANT API is pacakaged with node-gyp tool.
As ANT API grows, packaging all the ANT API as a single package is required.
I propose packaging all the ANT APIs with a single package.
Recently, we've developed Remote UI API.
In order that developers utilize the Remote UI API easily, we have to make example code for Remote UI API.
I think that updating our existing sample application, MachineLearning
and QuickCam
.
When the sparsity is 25%, the csr-SpMV shows the same performance as the ACL-GEMV.
It is reasonable performance?
Reason :
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.