Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - openconnectivity/IOTivity-setup: IoTivity Classic setup, please use Iotivity-lite-setup. · GitHub
Skip to content
This repository was archived by the owner on May 21, 2020. It is now read-only.

Repository files navigation

IoTivity Classic setup

This repo contains bash scripts to setup a build enviroment to use DeviceBuilder with IoTivity Classic. The scripts setup the next repos (from git) in the folders:

  • IoTivity Classic (IOTivity 1.3.1 or 2.0.0)
  • DeviceBuilder (latest version)
  • mraa (MRAA library to interact with HW)

All repos are being set up 1 level above the folder of IOTivity-setup folder.

Running the curl command below installs the development environment with IOTivity 1.3.1:

curl https://openconnectivity.github.io/IOTivity-setup/install.sh | bash

Running the curl command below installs the development environment with IOTivity 2.0.0:

curl https://openconnectivity.github.io/IOTivity-setup/install2.0.sh | bash

for manual installation instructions see: https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Folder structure

Folder structure after everything is installed:

~/iot |-- core core resource definitions (in swagger) |-- DeviceBuilder The device builder tool chain
|-- device_output The output of device builder.
| |
| |-- code The generated code.
| | the files will be copied to folder iotivity/examples/OCFDeviceBuilder
| |- server.cpp
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
|
|-- iotivity IOTivity source code
| | | |-- examples
| | |
| | |- OCFDeviceBuilder The folder with the project to build.
| | |- server.cpp file that is being build and edited.
| |
| |-- out
| |-- linux ARCH=x86_64:Ubuntu, ARCH=armv71:pi
| |-- <ARCH>/release/examples/OCFDeviceBuilder executable folder
| |- server executable
| |- server_security.dat SVR data
| |- server_introspection.dat introspection device data
| |-- IOTDataModels oneIOTa resource definitions (in swagger)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- IOTivity-setup This repo.
|-- iotivity-tool Tool to convert the SVR json in to cbor (and visa versa)
|-- mraa MRAA library to talk to HW attached to the pi boards
|-- swagger2x swagger2x code generation
|- gen.sh generation command to convert the example.json in to code
|- build.sh building the generated code
|- run.sh run the generated code
|- reset.sh reset the device to ready for onboarding state.
|- edit_code.sh edits the iotivity/examples/OCFDeviceBuilder/server.cpp file with nano.
|- edit_input.sh edits the input file for device builder with nano.
|- example.json the input for device builder.
legenda: folder
|-- folder
|-- folder/subfolder
|- file

The installDeviceBuilder script generates scripts in the folder above this repo. These scripts are convienent scripts, e.g. they are short cuts for entering generation, build, excute and reset commands.

referenced information:

repodescriptionlocation
DeviceBuildertool chainhttps://github.com/openconnectivityfoundation/DeviceBuilder
swagger2xcode generationhttps://github.com/openconnectivityfoundation/swagger2x
iotivity-toolcbor conversion for IOTivity Securityhttps://github.com/alshafi/iotivity-tool.git
IoTivity ClassicC++ code (v1.3.1 or v2.0.0)https://iotivity.org/https://github.com/iotivity/iotivity
MRAAcode library, communication abstracting hardwarehttps://github.com/intel-iot-devkit/mraa.git
IOTdataModelsoneIOTa data models https://oneiota.orghttps://github.com/openconnectivityfoundation/IoTDataModels
coreOCF core data modelshttps://github.com/openconnectivityfoundation/core

development flow

The development flow is depicted the figure below:

 start
| v
-------------- | | | edit_input.sh| --- edit the input file for the code generation
| | default file contains the binary switch resource
-------------- |
| v
--------------
| |
| gen.sh | --- generates the code & introspection file
| | --- script contains the device type, -------------- change the argument to change the device type.
|
| initial code --- in iotivity classic tree, to build
v --- introspection/security files -------------- in the iotivity executable folder
| | | edit_code.sh |<-------- --- edit the generated code
| | |
-------------- |
| |
| edited code |
v |
-------------- |
| | build |
| build.sh |---->----| --- build the executable
| | failed |
-------------- |
| |
| ok |
v |
-------------- |
run | | modify |
--------->| run.sh |---->---- --- onboarding will change the security file clients | | behaviour in the executable folder
against -------------- to refresh/reset the security file execute reset.sh
application |
v
finished
Note: if gen.sh is run again, the generated code is overwritten.
e.g. before running that tool again, safe the file in the iotivivty tree to another name if one wants to keep that code as reference

OCF clients

information about the clients for development support can be found at:

https://github.com/openconnectivityfoundation/development-support

edit_input.sh

This scripts edits the device builder input file with nano.

Nano

Nano is supplied on various linux systems like ubuntu and pi. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

nano beginners guide:

https://www.howtogeek.com/howto/42980/the-beginners-guide-to-nano-the-linux-command-line-text-editor/

input file

Device Builder input file information can be found at: https://github.com/openconnectivityfoundation/DeviceBuilder/tree/master/DeviceBuilderInputFormat-file-examples

gen.sh

This script runs the DeviceBuilder with the arguments:

  • ~IOT/example.json as input file
  • light device as device type

when the device type needs to change from oic.d.light to something else the next mechanisms are available to change the device type:

  • change the server code from oic.d.light to the specific value
    • search for oic.d.light in the server code, and change the value.
    • no need to re-generate the server code
    • can be done when one is already changing the server code.
  • change the gen.sh file e.g. replace oic.d.light to something
    • to see the changes the code needs to be re-generated by running gen.sh
    • can be done when no code has been changed yet.

Running this script generates the device_output folder AND copies the result to the correct executable folder in the IoTivity classic tree structure.

copied to the executable folder from the device:

  • server.cpp to simpleserver.cpp in the examples/OCFDeviceBuilder folder
  • introspection file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
  • security file (in CBOR format) to the out/linux/$ARCH/release/examples/OCFDeviceBuilder directory
    • The original JSON file is using "just works" onboarding

edit_code.sh

This scripts edits the code with nano. The file being edited is the file in IoTivity classic tree. so please make sure when generating a new version, that a changed file is saved under a different name.

build.sh

This script builds the examples/OCFDeviceBuilder by means of scons. e.g. run in the IoTivity classic folder the scons examples/OCFDeviceBuilder command

run.sh

This script executes the executable in the folder where the executable resides in.

linux executes in folder:

./iotivity/out/linux/x86_64/release/examples/OCFDeviceBuilder

pi executes in folder:

./iotivity/out/linux/armv7l/release/examples/OCFDeviceBuilder

note that the executable needs to be started in folder where it recides to avoid issues with reading the security and introspection files.

reset.sh

This script overwrites the SVR settings in the security file from the device_output folder to the out/linux/$ARCH/release/examples/OCFDeviceBuilder folder.

Note execute this command only when the device is not running. The device will go to the ready for onboarding state.

advanced usage

see https://github.com/openconnectivity/IOTivity-setup/blob/master/advanced.md

Device Builder OCF developer kit info

https://github.com/openconnectivity/IOTivity-setup/tree/master/pi-boards

About

IoTivity Classic setup, please use Iotivity-lite-setup.

Topics

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages