Deep Slumber, codename ISA, is a program made for the arm MBED during Hack The Burgh 2018 that analyses light, temperature, humidity and CO2 levels in a room. It uploads this information onto an SQL server through a rest API, providing the necessary environment for data processing. Further improvements we hope to provide are the regulation of said parameters by wifi connection to electric heaters, wifi enabled controllable lightbulbs and other iot gadgets as well as a website that will provide recommendations for sleep cycle improvements.

Dependencies:   C12832 CCS811 Sht31 TSL2561

Fork of ARM_HACK_THE_BURGH by Carey Williams

Committer:
Ottomanslap
Date:
Sun Mar 11 02:51:01 2018 +0000
Revision:
60:49746f10fef0
Parent:
54:b9963ccc0c2d
SUCCESS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 43:45429aa163a0 1 properties ([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [
mbed_official 43:45429aa163a0 2 [$class: 'StringParameterDefinition', name: 'mbed_os_revision', defaultValue: '', description: 'Revision of mbed-os to build. Use format "pull/PR-NUMBER/head" to access mbed-os PR']
mbed_official 43:45429aa163a0 3 ]]])
mbed_official 43:45429aa163a0 4
mbed_official 43:45429aa163a0 5 if (params.mbed_os_revision == '') {
mbed_official 43:45429aa163a0 6 echo 'Use mbed OS revision from mbed-os.lib'
mbed_official 43:45429aa163a0 7 } else {
mbed_official 43:45429aa163a0 8 echo "Use mbed OS revisiong ${params.mbed_os_revision}"
mbed_official 43:45429aa163a0 9 if (params.mbed_os_revision.matches('pull/\\d+/head')) {
mbed_official 43:45429aa163a0 10 echo "Revision is a Pull Request"
mbed_official 43:45429aa163a0 11 }
mbed_official 43:45429aa163a0 12 }
mbed_official 43:45429aa163a0 13
mbed_official 43:45429aa163a0 14 // List of targets with supported RF shields to compile
mbed_official 43:45429aa163a0 15 def targets = [
mbed_official 43:45429aa163a0 16 "UBLOX_EVK_ODIN_W2": ["builtin"],
mbed_official 54:b9963ccc0c2d 17 "REALTEK_RTL8195AM": ["builtin"],
mbed_official 43:45429aa163a0 18 "K64F": ["WIFI_ESP8266"],
mbed_official 46:9282f93cd1ce 19 "NUCLEO_F401RE": ["WIFI_IDW0XX1"],
mbed_official 43:45429aa163a0 20 "NUCLEO_F429ZI": ["WIFI_ESP8266"]
mbed_official 43:45429aa163a0 21 ]
mbed_official 43:45429aa163a0 22
mbed_official 43:45429aa163a0 23 // Map toolchains to compilers
mbed_official 43:45429aa163a0 24 def toolchains = [
mbed_official 43:45429aa163a0 25 ARM: "armcc",
mbed_official 43:45429aa163a0 26 GCC_ARM: "arm-none-eabi-gcc",
mbed_official 43:45429aa163a0 27 IAR: "IAR-linux"
mbed_official 43:45429aa163a0 28 ]
mbed_official 43:45429aa163a0 29
mbed_official 43:45429aa163a0 30 // Supported RF shields
mbed_official 43:45429aa163a0 31 def radioshields = [
mbed_official 43:45429aa163a0 32 "builtin",
mbed_official 47:6796df310c90 33 "WIFI_IDW0XX1",
mbed_official 43:45429aa163a0 34 "WIFI_ESP8266"
mbed_official 43:45429aa163a0 35 ]
mbed_official 43:45429aa163a0 36
mbed_official 43:45429aa163a0 37 def stepsForParallel = [:]
mbed_official 43:45429aa163a0 38
mbed_official 43:45429aa163a0 39 // Jenkins pipeline does not support map.each, we need to use oldschool for loop
mbed_official 43:45429aa163a0 40 for (int i = 0; i < targets.size(); i++) {
mbed_official 43:45429aa163a0 41 for(int j = 0; j < toolchains.size(); j++) {
mbed_official 43:45429aa163a0 42 for(int k = 0; k < radioshields.size(); k++) {
mbed_official 43:45429aa163a0 43 def target = targets.keySet().asList().get(i)
mbed_official 43:45429aa163a0 44 def allowed_shields = targets.get(target)
mbed_official 43:45429aa163a0 45 def toolchain = toolchains.keySet().asList().get(j)
mbed_official 43:45429aa163a0 46 def compilerLabel = toolchains.get(toolchain)
mbed_official 43:45429aa163a0 47 def radioshield = radioshields.get(k)
mbed_official 43:45429aa163a0 48
mbed_official 43:45429aa163a0 49 def stepName = "${target} ${toolchain} ${radioshield}"
mbed_official 43:45429aa163a0 50 if(allowed_shields.contains(radioshield)) {
mbed_official 43:45429aa163a0 51 stepsForParallel[stepName] = buildStep(target, compilerLabel, toolchain, radioshield)
mbed_official 43:45429aa163a0 52 }
mbed_official 43:45429aa163a0 53 }
mbed_official 43:45429aa163a0 54 }
mbed_official 43:45429aa163a0 55 }
mbed_official 43:45429aa163a0 56
mbed_official 43:45429aa163a0 57 timestamps {
mbed_official 43:45429aa163a0 58 parallel stepsForParallel
mbed_official 43:45429aa163a0 59 }
mbed_official 43:45429aa163a0 60
mbed_official 43:45429aa163a0 61 def buildStep(target, compilerLabel, toolchain, radioShield) {
mbed_official 43:45429aa163a0 62 return {
mbed_official 43:45429aa163a0 63 stage ("${target}_${compilerLabel}_${radioShield}") {
mbed_official 43:45429aa163a0 64 node ("${compilerLabel}") {
mbed_official 43:45429aa163a0 65 deleteDir()
mbed_official 43:45429aa163a0 66 dir("mbed-os-example-wifi") {
mbed_official 43:45429aa163a0 67 checkout scm
mbed_official 43:45429aa163a0 68 def config_file = "mbed_app.json"
mbed_official 43:45429aa163a0 69
mbed_official 43:45429aa163a0 70 if ("${radioShield}" != "internal") {
mbed_official 43:45429aa163a0 71 // Replace default rf shield
mbed_official 43:45429aa163a0 72 execute("sed -i 's/\"value\": \"internal\"/\"value\": \"${radioShield}\"/' ${config_file}")
mbed_official 43:45429aa163a0 73 }
mbed_official 43:45429aa163a0 74
mbed_official 43:45429aa163a0 75 // Set mbed-os to revision received as parameter
mbed_official 43:45429aa163a0 76 execute ("mbed deploy --protocol ssh")
mbed_official 43:45429aa163a0 77 if (params.mbed_os_revision != '') {
mbed_official 43:45429aa163a0 78 dir ("mbed-os") {
mbed_official 43:45429aa163a0 79 if (params.mbed_os_revision.matches('pull/\\d+/head')) {
mbed_official 43:45429aa163a0 80 execute("git fetch origin ${params.mbed_os_revision}:PR")
mbed_official 43:45429aa163a0 81 execute("git checkout PR")
mbed_official 43:45429aa163a0 82 } else {
mbed_official 43:45429aa163a0 83 execute ("git checkout ${params.mbed_os_revision}")
mbed_official 43:45429aa163a0 84 }
mbed_official 43:45429aa163a0 85 }
mbed_official 43:45429aa163a0 86 }
mbed_official 46:9282f93cd1ce 87 execute("mbed new .")
mbed_official 43:45429aa163a0 88 execute ("mbed compile --build out/${target}_${toolchain}_${radioShield}/ -m ${target} -t ${toolchain} -c --app-config ${config_file}")
mbed_official 43:45429aa163a0 89 }
mbed_official 43:45429aa163a0 90 stash name: "${target}_${toolchain}_${radioShield}", includes: '**/mbed-os-example-wifi.bin'
mbed_official 43:45429aa163a0 91 archive '**/mbed-os-example-wifi.bin'
mbed_official 43:45429aa163a0 92 step([$class: 'WsCleanup'])
mbed_official 43:45429aa163a0 93 }
mbed_official 43:45429aa163a0 94 }
mbed_official 43:45429aa163a0 95 }
mbed_official 43:45429aa163a0 96 }