Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Network and cloud diagnostics #1424

Merged
merged 9 commits into from Jan 22, 2018

Conversation

@sergeuz
Copy link
Member

commented Nov 2, 2017

Problem

This PR implements the following diagnostics:

Network

  • Connection status (ID 8)
  • Last connection error (ID 9)
  • Number of unanticipated disconnects (ID 12)
  • Number of connection attempts (ID 27)
  • Disconnection reason (ID 28)

Cloud

  • Connection status (ID 10)
  • Last connection error (ID 13)
  • Number of unanticipated disconnects (ID 14)
  • Number of connection attempts (ID 29)
  • Disconnection reason (ID 30)

Steps to Test

The testing can be tricky since it can only be done manually in most of the cases. A typical testing procedure for an enum diagnostic data source would be to recreate a number of situations specific to the diagnostic and ensure that all enum values defined by the spec get reported correctly depending on a situation. For the error code diagnostics it's probably easier to fake result codes returned by WLAN/Cellular HAL and the comms library directly in the code.

I'm attaching a simple application that dumps the diagnostic data every 5 seconds to start with.

Example App

#include "application.h"

SYSTEM_THREAD(ENABLED)

namespace {

const Serial1LogHandler logHandler(115200, LOG_LEVEL_WARN, {
    { "app", LOG_LEVEL_ALL }
});

unsigned logMillis = 0;
unsigned logCount = 0;

bool logDiagnosticData(void* appender, const uint8_t* data, size_t size) {
    Log.write(LOG_LEVEL_INFO, (const char*)data, size);
    return true;
}

} // namespace

void setup() {
    logMillis = millis();
}

void loop() {
    if (millis() - logMillis >= 5000) {
        ++logCount;
        Log.printf(LOG_LEVEL_INFO, "%u: ", logCount);
        system_format_diag_data(nullptr, 0, 0, logDiagnosticData, nullptr, nullptr);
        Log.print(LOG_LEVEL_INFO, "\r\n");
        logMillis = millis();
    }
}

References

  • [CH8761]

Completeness

  • User is totes amazing for contributing!
  • Contributor has signed CLA (Info here)
  • Problem and Solution clearly stated
  • Run unit/integration/application tests on device
  • Added documentation
  • Added to CHANGELOG.md after merging (add links to docs and issues)

@sergeuz sergeuz closed this Nov 2, 2017

@sergeuz sergeuz added this to the 0.8.0 milestone Nov 2, 2017

@sergeuz sergeuz added the enhancement label Nov 2, 2017

@sergeuz sergeuz reopened this Nov 2, 2017

@sergeuz sergeuz requested a review from m-mcgowan Nov 2, 2017

CLOUD_DISCONNECT_REASON_ERROR = 1, // Disconnected due to an error
CLOUD_DISCONNECT_REASON_USER = 2, // Disconnected at the user's request
CLOUD_DISCONNECT_REASON_NETWORK_DISCONNECT = 3, // Disconnected due to the network disconnection
CLOUD_DISCONNECT_REASON_LISTENING = 4 // Disconnected due to the listening mode

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 3, 2017

Contributor

Since the network reports disconnect due to listening mode, do we need to duplicate it here?

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 3, 2017

Author Member

The Electron doesn't seem to disconnect the network when entering the listening mode: https://github.com/spark/firmware/blob/feature/net_cloud_diag/system/src/system_network_cellular.h#L36 (it disconnects the cloud though)

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 4, 2017

Contributor

I see..hmm that's quite strange. Ok we can leave it as is for now. Going forward, when we have AP mode implemented that allows AP and STA modes to operate concurrently, then the cloud will not be disconnected either when entering listening mode.

class NetworkDiagnostics {
public:
enum Status {
TURNED_OFF = 0,

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 3, 2017

Contributor

I wonder if we can make an encoding here. Use bit 0 to indicate if the state is reached or in transition: 0 means the state is reached, 1 means in transition. And then we can use the upper bits to encode the states ON, CONNECTED, DISCONNECTED. OFF as values 2,4,6, and 8..

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 3, 2017

Author Member

Sure, but what's the use case of such an encoded status?

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 4, 2017

Contributor

It's just a little more consistent, and makes the code to determine if we are transitioning vs stable easier to write.

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 21, 2017

Author Member

I think such an encoding would only complicate things, as the DISCONNECTED state, for example, can be reached from two states: TURNING_ON and DISCONNECTING, i.e. we actually need 2 additional bits to encode a transitional state

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 21, 2017

Contributor

That's not the same thing - I'm not asking for us to encode the state we have come from, just to distinguish between an active transition and a final state.

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 21, 2017

Author Member

i.e. just use odd numbers to encode transitional states without any relation to source/destination states?

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 21, 2017

Contributor

yep! exactly that.

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 21, 2017

Author Member

that sounds good 👍

@@ -416,13 +483,19 @@ class ManagedNetworkInterface : public NetworkInterface
WLAN_CONNECTING = 1;
INFO("ARM_WLAN_WD 1");
ARM_WLAN_WD(CONNECT_TO_ADDRESS_MAX); // reset the network if it doesn't connect within the timeout
const auto diag = NetworkDiagnostics::instance();
diag->status(NetworkDiagnostics::CONNECTING);
system_notify_event(network_status, network_status_connecting);

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 3, 2017

Contributor

I am unsure if we should be explicity setting the network diagnostic status, or instead register a listener to the system event, and update the diagnostic status from that. While it might be cleaner to use the event, I feel we may have a limitation on how many listeners we can attach to the system event.

This comment has been minimized.

Copy link
@sergeuz

sergeuz Nov 3, 2017

Author Member

I would prefer to keep the diagnostics stuff separated from the system event logic for now, since the current eventing system is not designed for anything else than notifying the application code of system events (all handlers are processed in the application thread, user handlers may introduce an arbitrary delay, etc). Definitely it would be nice to track all the states defined by the system in a centralized manner, it just feels more like a task that should be done as part of the system loop refactoring

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Nov 4, 2017

Contributor

👍

@m-mcgowan m-mcgowan changed the base branch from develop to release/v0.7.0-rc.4 Nov 6, 2017

@m-mcgowan m-mcgowan changed the base branch from release/v0.7.0-rc.4 to develop Nov 6, 2017

avtolstoy added a commit that referenced this pull request Nov 9, 2017
@avtolstoy avtolstoy referenced this pull request Nov 9, 2017
4 of 6 tasks complete
m-mcgowan added a commit that referenced this pull request Nov 16, 2017
@m-mcgowan

This comment has been minimized.

Copy link
Contributor

commented Nov 21, 2017

@sergeuz - could you fix up the conflicts please!

@sergeuz sergeuz force-pushed the feature/net_cloud_diag branch from 62e9a61 to de88de9 Nov 21, 2017

@sergeuz

This comment has been minimized.

Copy link
Member Author

commented Nov 21, 2017

Done!

@sergeuz sergeuz force-pushed the feature/net_cloud_diag branch from de88de9 to 20b7912 Nov 21, 2017

@@ -85,17 +85,17 @@ String spark_deviceID(void);
extern "C" {
#endif

enum cloud_disconnect_reason {
CLOUD_DISCONNECT_REASON_OTHER = 0,
typedef enum cloud_disconnect_reason {

This comment has been minimized.

Copy link
@m-mcgowan

m-mcgowan Jan 18, 2018

Contributor

Should we have a cloud disconnect reason CLOUD_DISCONNECT_NETWORK_DOWN or similar?

@m-mcgowan m-mcgowan modified the milestones: 0.8.0, 0.8.0-rc.2 Jan 18, 2018

@m-mcgowan m-mcgowan merged commit 587830c into develop Jan 22, 2018

0 of 2 checks passed

continuous-integration/travis-ci/pr The Travis CI build failed
Details
continuous-integration/travis-ci/push The Travis CI build failed
Details

@m-mcgowan m-mcgowan deleted the feature/net_cloud_diag branch Jan 22, 2018

elcojacobs added a commit to elcojacobs/brewblox-firmware that referenced this pull request Jan 11, 2019
Squashed 'platform/spark/firmware/' changes from 9c47fcc1b3..6aae1ede3f
6aae1ede3f bump module version for 1.0.0 (v1000), update CHANGELOG.md
4f227f1841 bump module version for 0.8.0-rc.14 (v312), update CHANGELOG.md
0f3d3cf903 Merge pull request #1666 from particle-iot/fix/lte-socket-cleanup
7f6f63460a fixes unique stale socket issue with LTE devices
cf295282ad bump module version for 0.8.0-rc.12 (v311), update CHANGELOG.md
c9280574ee Merge pull request #1650 from particle-iot/fix/button_handler
ecaf7b1540 Fix SYSTEM_07_fragmented_heap test
3a08c04f86 Run the OOM event handler synchronously
ffa595ba90 Wrap APPLICATION_THREAD_CONTEXT_ASYNC() into a function
222fecf9c9 Execute button event handlers synchronously in the ISR
086ea94599 Fix wiring/networking test for Core
ea1516e2d0 Merge pull request #1646 from particle-iot/fix/unit_tests
7e4f559dd6 Fix SYSTEM_04_button_mirror test
dd9d5512a3 Merge pull request #1528 from particle-iot/feature/thread-wait-start
92d70604a0 Add a comment
8f23af1464 Implement move semantics for Thread instances; minor fixes
f9bbf94671 Merge pull request #1640 from particle-iot/fix/cache_feature_flags
bc1e50172b Cache persistent feature flags
0140a25e0b Merge pull request #1639 from particle-iot/fix/invalidate_sockets
d0e1af5743 Minor fix
c4e5859499 Invalidate all sockets when turning WiFi off
fd00e46eec Merge pull request #1635 from particle-iot/fix/wifi_on_mem
b113b6cfa9 Merge pull request #1600 from particle-iot/fix/ch24165/system_event_on_isr_develop
df1ab05c8a Reduce the size of the decompressor context structure
8ce5367de7 Merge pull request #1627 from particle-iot/fix/atcnum
de1b755de9 removes AT+CNUM command
ad9c563142 Merge pull request #1624 from particle-iot/fix/session_resume_ota
1e245868fc Do not set the sticky skip hello after handshake
67b4e05347 Merge pull request #1622 from particle-iot/fix/isr_task_queue
876004901d [system] Minor bugfix
a94a436acc [system] ISRTaskQueue: we don't really want to disable interrupts on EVERY invokation of ISRTaskQueue::process()
8e03ae77e1 Merge pull request #1581 from particle-iot/fix/powermanager
7715c9dc40 Make it safe to call system_notify_event() from an ISR
3b23970d45 Input current limit is stored in the lowest 3 bits of the input source control register (fixes #1557)
2aa615ed03 Power manager: do not report battery charge if currently in DISCONNECTED state, do not transition from DISCONNECTED to NOT_CHARGING state immediately (backported from mesh-develop)
ad982a5aa9 moves the processing of system events that are on an ISR to the system ISR queue.
17c6c6e376 comments on panic codes
c6d615d64f [system] power manager: no longer using PMIC watchdog because it causes current limit to drop to 100mA temporarily when it expires
14d3d76460 bump module version for 0.8.0-rc.11 (v310), update CHANGELOG.md
44abc719da do not check and lock bootloader write protect on every boot
c12bd468f7 adds SPARK_ASSERT to ensure __malloc_lock/unlock is not called from an ISR
c5418ab505 adds PANIC SOS 14 for SemaphoreLockTimeout, and reduces timeout to a reasonable 60 seconds
b01c35e6f3 Merge pull request #1576 from particle-iot/fix/lte-socket-send-error
cf6f9a67f7 [LTE] adds 1 retry for UDP/TCP socket send in case of error
80f7d19f5e bump module version for 0.8.0-rc.10 (v309), update CHANGELOG.md
936df3cf3f Merge pull request #1567 from particle-iot/fix/edrx-psm-disabled-by-default
734fa70192 increase OTA update timeout on Electron/LTE devices to 300 seconds
f192a16a58 adds logging for DNS server used by 2G/3G devices
a0673bcf55 disables eDRX mode and Power Saving mode explicitly by default
8db1a25b9a bump module version for 0.8.0-rc.9 (v308), update CHANGELOG.md
b9aee446d6 Merge pull request #1558 from particle-iot/fix/fast-ota-lte
0adac2c3f7 simplify and remove magic number
72a80b85b6 More Fast OTA fixes [ch16346] ...
2d2599b77c removes unused code
b946b440fa sends ChunkMissed messages only after an UpdateDone.
356159d4f2 ensures the number of requested chunks does increment, even for small initial values.
9c7fad4e61 sets the number of missed chunks to request based on the number of chunks received, plus a small growth factor. This ensures that when the network drops many of the chunks sent by the server, that the device requests fewer chunks.
9ede97f9a3 fixes fast ota on LTE (wip)
29a616f238 fixes docs to install arm-none-eabi-gcc version 5.3.1 20160307 [ci-skip]
1b1805fb4a bump module version for 0.8.0-rc.8 (v307), update CHANGELOG.md
ad3b66f0e8 bump module version for 0.8.0-rc.7 (v306), update CHANGELOG.md
b20d009711 Merge pull request #1547 from particle-iot/fix/lte-ota-disconnects
dcb7378e4a enables 30 second ping for Kore SIMs on SARA_R410
9733d157c7 disables Fast OTA for SARA_R410
37c41919c5 fixes GPRS URCs that were causing SARA_R410 to disconnect
6bcdb11f10 bump module version for 0.8.0-rc.6 (v305), update CHANGELOG.md
7822d831d4 Merge pull request #1544 from particle-iot/fix/sticker-rig-issue
ca10f3dc1d Merge branch 'develop' into fix/sticker-rig-issue
b0a2a69c26 Merge pull request #1543 from particle-iot/fix/electron-monolithic-build
d5cef4c11a fixes sticker-rig issue with POWER_ON command
3fd89f0fad fixes electron monolithic build
1ecc3da3a6 bump module version for 0.8.0-rc.5 (v304), update CHANGELOG.md
3339194180 Fixes up some modem logging issues
1b35016db2 Adds RSSI/RSRP QUAL/RSRQ for RAT LTE, Band select and data usage API's not supported by SARA-R410
1df0c18d4f Update tests for SARA_R410
26b27529d4 Increase timeout for the +USOCO command
176ffff96e Adds U201 modem type
faee2848b7 Make the modem initialization fail if the modem type cannot be detected; fix UART reinitialization issue
ba6128d3eb Fix MDM_* logging macros
faee9ec1e8 Enable the flow control when initializing the UART for the first time
df3c3bd19a Do not try to query modem type if the modem is not responsive
f360230ef3 Determine type of the modem at runtime
cc60200502 DNS protocol limits the maximum size UDP packets to 512 bytes
d2458a55d2 Fix network disconnection handling
f2c31177cf Use our own DNS client with SARA-R4 modules
8e5b80e332 Disable hex mode; hardcode address of the UDP device service for testing purposes
cd9af717e6 Allow setting a custom APN
2d757869fa Hex encoding fixes
c723217ecb Hex mode for TCP socket commands
9061baeafa Dump context settings
5530f2d84b Add cellular_connect() and cellular_disconnect() functions
e3179b6178 Check EPS network registration
38c4dabc9e Add a feature macro for SARA-R4
6057b7c68f bump system (v303) for 0.8.0-rc.4, update CHANGELOG.md
612ee4279d Merge pull request #1537 from particle-iot/feature/increase-limits
e4f6c939b0 fixes PLATFORM=Core build
3dc9060f91 Merge pull request #1536 from particle-iot/fix/keepalive
68f50f1068 adds keepalive_source_t to a struct to pass a pointer over the dynalib interface
b61cfcabc8 adds error checking for when the describe message would overflow due to the number of functions and variables registered.  Fixes [CH14711]
8ba2e434b2 adds keepalive_source_t to infer when Pinger interval should be updated
82847bf93c increase pub-sub-var-func limits
40f486a14a Merge pull request #1530 from particle-iot/fix/missing-urcs
36c616c56e precede socket handling with ISSOCKET test
d35a83c5f0 Modify Thread test to fail on old behavior
ce3877309f Wait for Wiring Thread to start
8cdeed669b fixes missing URCs for received data when TX or RX socket operations are in progress
e1e8564652 more reliable TEST=wiring/no_fixture_long_running for electron G350
5d5de36855 fixes test WIFI_06 that should only run with threading disabled
a60953ce65 bump bootloader (v201) and system (v302) for 0.8.0-rc.3, update CHANGELOG.md
228a18862a Merge pull request #1522 from particle-iot/fix/080rc3-1
afb653e364 WICED header update: 725e09c9c940ec4cb13af24e0d6234eba7fc6303
eccea4ab87 core: config should not be updated from within a notify_dhcp() callback
0c72b0b69e WICED rebuild: 725e09c9c940ec4cb13af24e0d6234eba7fc6303
ee54fe36f1 Merge pull request #1517 from particle-iot/fix/recursive-logging
0511a594fe Merge pull request #1501 from particle-iot/feature/photon-wpa-ent-sha384-512
816750bc1f WICED rebuild: 01bb20b0777f2e791252f38c4fe21f3a5553b951
5dc9945a3c photon: Enables support for sha384 and sha512 certificates for WPA Enterprise
e4ba14ddd8 Merge pull request #1492 from particle-iot/fix/photon-tcp
546695688a Merge pull request #1500 from particle-iot/fix/photon-networking-1
70bbc42e2a wlan_hal: when enabling softap, WICED_AP_INTERFACE needs to be set as the default interface
e34ff7a127 keeps coding style uniform
27ad29ef68 adds test to capture multiple recursive logging failure
3bc22ff2e1 allows LogManager to be subclassed with recursive logMessage calls
40564fd90e adds test to capture recursive logging failure
26ad1ad837 fix CONTRIBUTE link
cdc47fc2be Pull in CHANGELOG updates from 0.7.x,0.6.x,0.5.x.  Added tinker binary output for all platforms to build script
a8f00c77d7 changes TEST=wiring/networking to not be dependent on hardcoded ip address
1f4299d5d4 change pin D7 to D6 to not conflict with PLATFORM=electron TEST=wiring/sleep
55b42f236d Merge pull request #1496 from particle-iot/fix/wkp-pin-after-deep-sleep
b3d586c229 Merge branch 'release/v0.8.0-rc.2' into develop
d9e528a42a adds test for issue #1447
7e190b82f5 wiced: particle-iot/photon-wiced#29 3ddba7d12b1086c0b8eccde8cf65e9c4714c7e64
72fd3e9174 socket_hal: (Photon) makes socket_xxx() calls thread safe
9748b3f8b9 wlan_hal: (Photon) removing socket_close_all() call in wlan_disconnect_now()
9cf791808a system_cloud_internal: (FIXME) Added a default hard-coded 20s socket_send() timeout to Spark_Send()
57426c65d0 tcpclient: Adds a default timeout to write() operations
633af54376 TCPServer: fixes a socket resource leak in TCPServer::available()
b7c31f9e51 photon/p1: WKP pin needs to be disabled on boot in order for it to function normally after exiting deep sleep
62c0d81709 communication: Fixes broken Pinger (#1479)
080456b33f Photon: socket_hal: Fixes a hardfault due to socket destruction in socket_close_all()
d8f6a1acd2 WICED rebuild: 968ea8166230418d9797b96e2863c8a4daa2c27e
6e857a03d6 system_network_internal: ip config needs to be updated in notify_dhcp() in order to mitigate an issue when network_ready() == true but the config has not been updated yet
245fc46c3d wlan_hal: call wiced_network_down() in wlan_connect_finalize() to prevent DHCP from being started asynchronously under certain conditions
d387c00212 Photon: socket_create_tcp_server() needs to close() server instance in case of an error before deleting it
0161a372e4 beginnings of the style guide
c3e7fe6d4f 0.8.0-rc.2
b35150be84 Merge branch 'release/v0.7.0-rc.7' into develop.  Rebuilt wiced against commit 0eeac588ae5c48739f051db674fcd031b9ccecf2
a1605c58b1 changelog for 0.7.0-rc.7
cc880e5d9d wiring/tcpclient: write error needs to be reset on every write() invocation
05b6ce37ba wiring/print: Removes write() overloads with timeout argument
508af67c47 wiring/api: adds api_tcpserver_write_timeout and api_tcpclient_write_timeout tests
1d2fbc2e63 Minor fix
c79694d7ef WICED rebuild: particle-io/photon-wiced#25
5e071cca66 Wiring: TCPServer/TCPClient write() with a timeout
503e4fbc64 Wiring: additional Print::write() overloads taking timeout argument
9a57ff5a8d socket_hal: implements new socket_send_ex() function which allows to specify flags and timeout
f4342485af adds UPSV handling to cellular_hal
76a4695dc6 removes the `--email` option which has been removed from docker login
2b7a7131a2 Output the device ID as the DFU serial number.  This required the serial number buffer size to be increased (since it's unicode, and was only 26 bytes before.) The device ID requires 50 bytes -  12 bytes, as hex digits (*2) in unicode (*2) with a 0 terminator.
be3f1b2d0d Use the device ID as the USB serial number for Core
080398a7e7 simpler fix for shadowing of write() in USBKeyboard
dedc221647 Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard
2e0e197e82 simpler fix for shadowing of write() in USBKeyboard
d20d76a2e8 Fixed shadowing of write(const unint_8_t*, sizte_t) in USBKeyboard
1dc896f182 Zero-initialize HAL_IPAddress in Cellular/WiFi.resolve()
841c0ece14 inet_gethostbyname returns 0 on success and any non-zero value on error. Correctly handle that
8d3cbebd49 app/particle_connect_semi_automatic_issue_1399 test for issue #1399
c1f1703756 wiring/no_fixture: CLOUD_ tests fixes
d50001f8fe Fixes the behavior of Particle.connect() in SEMI_AUTOMATIC mode [branch CH1399]
cddf1a1358 user/tests/app/softap_http: adjust maximum number of concurrent http connections
b681724f3c WICED rebuild: particle-io/photon-wiced#24
97481bb853 softap: Increases number of maximum http connections to 10 (same as maximum number of active TCP connections)
ebb8aecd1e softap: baseurl needs to be checked for nullptr, prior to its length calculation
d829c42b03 tests/app/softap_http: Updates the tests:
0f88c34611 SoftAP: HTTP url passed to application softap handler function should include query string. Fixes #1458
aaabdd9e63 fixes system-part1 build which does not define `linker_heap_location_end`
55c80526a2 fixes the upper bound of the heap that was causing the Electron to fail memory exhaustion stress tests.
991aa2af93 adds docs and removes an obsolete method
e0a4b632ce FuelGauge: removes requirement to call begin(). Custom Wire interface instead should be passed in constructor
8bcc66083c Electron: implements os_thread_join() support
3292bcce57 wiring/no_fixture: band select tests should be performed deregistered from the network (AT+COPS=2)
f090c9c516 Adds comments for low level USB request completion notifications; `1` replaced with `USB_REQ_DATA_STAGE_COMPLETED` macro
65c498aece fixes system-part1 build which does not define `linker_heap_location_end`
faa5c64df0 fixes the upper bound of the heap that was causing the Electron to fail memory exhaustion stress tests.
5cee5250c5 [Core] Fixes I2C slave
7a5fda466d dedups HAL_Core_Get_Last_Reset_Info
07bc766092 Fixes unit tests
c59c31ff72 app/sleep_multiple_pins: updated to report wake up reason
aaf2a2a468 wiring/api: updates System.sleep() tests
0aa6714cfe system/wiring_system: Wakeup reason support
3ad4fcc6c6 core_hal: Adds wakeup reason support to STOP mode
23141f8573 Support for multiple wakeup pins in System.sleep() [branch ch8405]
b805a88437 Split processServiceRequest() into several methods; add comments
a552336ca4 wiring/api: updates System.sleep() tests
6b934c0b2c system_sleep: passes HAL_STANDBY_MODE_FLAG_DISABLE_WKP_PIN to HAL_Core_Enter_Standby_Mode when SLEEP_DISABLE_WKP_PIN was used in a call to System.sleep()
a7a88be34a Modifies System.sleep() to use particle::Flags which can be OR-ed. Adds SLEEP_DISABLE_WKP_PIN flag
3ba08b8e45 Adds HAL_STANDBY_MODE_FLAG_DISABLE_WKP_PIN and modifies HAL_Core_Enter_Standby_Mode() to accept flags
fed1d33d99 fixes unit tests build for I2C - the I2C wiring, global wiring and HAL needed to be included.  Some of the standard library functions are defined in string_convert - these are made weak so they don't impede the standard definitions when available.
4fb451b60b fixes the condition used to determine if the out of memory event should be fired
57364af977 remove duplicate heap_4_lock file, and do not invoke the malloc failed handler when the allocation size is 0
5547550086 makes electrons heal_4_lock consistent with photon version.
921377d68e memory tests are not supported on the Core
e7b2375fad adds a system event for heap allocation failure that reports the size of the block requsted, adds the largest heap block to the runtime info, and adds integration tests for these.
e2bbf92227 app/sleep_multiple_pins test application
d14ce32fe3 WICED: spark/photon-wiced#20 rebuild
2115e7d754 Added multi-pin System.sleep() variants to wiring/api tests
f9075f65ce Support for multiple wakeup pins in System.sleep() [branch ch8405]
76eb0a4b88 Use DEBUG() macro instead of Log.error()
cd430f70e4 Logging only with v0.6.0+
9a49ffe379 Generalize FuelGauge to also use alternative I2C interfaces (2nd attempt)
587830c907 Use odd numbers to encode transitional states
213f157471 Use define to specify diagnostic source names
405f74eb99 Compilation fixes
fdde87c93c Add a separate disconnection reason code for recovery network resets
54210fc5eb Minor fixes
456340cfd8 Cloud diagnostics: last disconnection reason, last connection error
18af59d52e Cloud diagnostics: connection status, number of connection attempts
39f4c8695a Add counter for network connection attempts
89b0e38434 Network diagnostics: network status, last disconnection reason, number of unexpected disconnections, last connection error
a463736bc6 Make it possible to lock the modem's serial using WITH_LOCK(Cellular)
dda2a05fb4 Get rid of extra printf() formatting; reduce stack usage; make cellular_command() check the cancellation flag
d94a8cf290 Guard cellular_command() with a global lock
2c34614b7e Fix caching of the description CRCs in the backup RAM (issue 1172)
43bbf93b98 i2c_hal: mutex should not be locked/unlocked from an ISR
ee5b12dc4e fix for hard fault on electron calling Wire1.begin() on the electron, due to the fact that Wire and Wire1 share the same peripheral, configured for different pins.
e6a1c963be queue up the next built bootloader version (so we don't forget to bump it) but only update the dependency when the bootloader is built.
506eb1c129 wlan_hal: fixes scope
4da65b3530 wiring/no_fixture: Updates WIFI_03_config test to enable WiFi.dnsServerIP() and WiFi.dhcpServerIP() tests on Photon and P1
6ce226da55 [photon] wlan_hal: DNS and DHCP server support in wlan_fetch_ipconfig()
a2b35721d9 WICED update: spark/photon-wiced#19
18e9115079 Don't use result codes to return application-specific values
1c038d399e Fix path to nanopb
41c6f73a61 Fixes UDP cloud connection on GCC platform: socket needs to be bound to 0.0.0.0 and in order to run multiple clients on same host, an ephemeral port needs to be used, instead of a static one
8bacb4473a MDMElectronSerial::resume() method should be renamed to resumeRecv() as to avoid a name clash with MDMParser::resume()
6f4f7fe00e electron: connect_cancelled flag needs to be reset, otherwise the next connect_cancel() call will not cancel the connection
798966b077 Add a test for concurrent CRC32 computations
5e065ed16d Serialize access to the CRC peripheral (STM32F2xx)
057a868f33 Electron: moves some newlib functions into part1
3d493292e3 Fixes a typo in nanopb/build.mk
758f165b8f We need more ~gold~ RAM!
44e75910d7 Moves nanopb to separate static lib. Juggles some things around between modules to free some space in Electron system-part3
444f575ca2 Merge pull request #1444 from particle-iot/feature/usb-requests
6faab0c344 Add a request for getting the actual size of a section data; rename some of the requests; update submodule refs
1c6e846f60 Move protocol files to a git submodule
07c0249798 Add requests for accessing internal flash, DCT and EEPROM
fc4d8d8590 Use completion callbacks to reset the device _after_ sending a reply to the host
fdd21f1738 Make it possible to attach an application-specific completion handler to a control request
b7725daa0f Make system_ctrl_alloc_reply_data() act as realloc() for the reply data
887aa0d5da Add firmware update requests
192743cb60 Use separate requests for entering/leaving the listening mode
d29ae44916 Added info on the two major things that prevented me from successfully compiling locally
4ba9076a9b Fix usage of an incorrect prerequisite name in program-* targets
65b675a385 Merge branch 'fix_namespace' of https://github.com/kreopt/firmware into kreopt-fix_namespace
84f89bf662 Fixes ec/rsa key size and public key extraction handling in fetch_device_public_key()
49beaa16db DCD fixes
9aa4b8ff35 Only remake $(TARGET_BASE).elf el al. if necessary
a207044ead rebuild WICED against 7460eed00d01490ecd3cd0ce875b091c83a718d5
f50c4ae89e fixes build on the Core that requires interrupts_irq.h
337fb53c83 updates changelog
9d079460c1 bump the bootloader for the 0.8.x line.
dc24e0c096 Adds SPARK_NO_PLATFORM define for unit tests
f887b4a807 wiring/no_fixture: Adds INTERRUPTS_04_attachInterruptDirect test for attachInterruptDirect()/detachInterruptDirect() [branch ch7827]
e4acace9ba wiring: adds attachInterruptDirect()/detachInterruptDirect()
5859100335 Photon: HAL_Core_Restore_Interrupt() implementation. Simplifies interrupt handler overrides
8597ab0ae8 Electron: HAL_Core_Restore_Interrupt() implementation. Simplifies interrupt handler overrides
eb249c0394 Photon/Electron/P1: HAL_Set_Direct_Interrupt_Handler() implementation
9fa381d8e2 Core/GCC HAL_Set_Direct_Interrupt_Handler() stubs
b86ba6951e Workaround for services and communication source files including interrupts_hal.h without platform dependency (is there a better way?)
81473eaa7f HAL_Set_Direct_Interrupt_Handler() and supporting declarations
5bca46e676 Pass SPARK_NO_PLATFORM from makefiles as a define during compilation
186d48bc93 Adds an Electron-specific startup file with correct interrupt handler names
2da6b396f9 HardFault_IRQn is missing from IRQn_Type enum for some reason in STM32F2xx platform headers
c77dd9eb6d removes the `--email` option which has been removed from docker login
1f57fb6b63 Merge branch 'release/v0.6.4' into develop
b7766e5486 Merge branch 'release/v0.7.0-rc.6' into develop
988279be98 fix typo (the c key on my keyboard likes to snooze sometimes....) [ci-skip]
b070269743 Added clarification on the electron module naming [ci-skip]
1e3ccbd554 system-part1 (the directory) is internally part3, so we have to use that.
6ee034674d bump versions for 0.7.0-rc.6
a3b09a11bf Moves USB request handler implementations into separate source files based on request category
97e2af1f87 Merge remote-tracking branch 'origin/feature/wifi-network-ctrl-req' into feature/nanopb
0b6e69c5ea Merge remote-tracking branch 'origin/feature/usb_dev_config' into feature/nanopb
3618b65319 Fix error handling in Cellular's getDataUsage() and setDataUsage() (#1435)
c2e8739499 fuelgauge: removes lower 20% soc clamp in getNormalizedSoC() (#1442)
248a952a7f core/gcc/template: wlan_get_ipaddress_source()/wlan_get_ipaddress() implementation
d432c46bcb Disable control requests on GCC platform
d40766be66 Disable control requests on GCC platform
01ca1f8023 Updated wifi and network control requests
3e9790b6cd Recompiled proto files
73b2be19b6 Update wifi.proto and network.proto definitions
f738bbe95e system_control: added NETWORK_GET_STATUS request type
f4a6f3e09e Control requests: factory reset, nyan indication, setting SoftAP SSID
9eed8c04be Control requests for getting/setting the cloud protocol
ad7a9242f6 Control requests: setting the claim code, checking if the device is claimed, device/server key management
cbaa369d09 Protocol messages for the device configuration requests
de3a8c173d Functions for reading/writing the key and server address data from/to DCT
f173a0dcab bumps module versions
467b290f0a fies a bootloader upgrade loop where upgrading to 0.7.0-rc.x via OTA/OTW causes a never ending loop
e164dbecc5 WiFi/Network usb requests implementation
4ac8574973 control_proto: updates build.sh to compile multiple proto files
6213903268 Adds various wifi and network request ids
26a383c9bb control.proto
3e97c1bf7d Adds wlan_get_ipaddress() and wlan_get_ipaddress_source()
ef77602dd3 Splits control.proto into several files
992ed84d58 Minor fix
c0bf1768bb Export additional nanopb functions
3bafa4dce6 Adds CTRL_REQUEST_WIFI_SET/GET_ANTENNA control reqeusts
80effc103a Implements wlan_get_antenna()/WiFi.getAntenna()
37ca30a1e9 Fixes nanopb support functions
fbae6db42e Adds initial version of protobuf-based control.proto
253982b438 Feature/go faster stripes (#1439)
0059838fab Workaround for the clang compiler
8265427dc2 builds the bootloader as part of the release sript [ci-skip]
ffc80be4ab Force add prebuilt nanopb proto files
ed8fa5fd83 Exports nanopb functions from services-dynalib
cbb3d49cb8 Disable nanopb error messages to save some space
ac7e7df5b9 Vanilla nanopb 0.3.9
12e5c8d343 Revert "Disable MBEDTLS_GENPRIME to save a bit of space in system-part1"
27b2674d13 WICED rebuild: spark/photon-wiced#22 (OSX toolchain)
0eb962de93 Fix rebasing artifacts
1644d86314 Make CI's GCC 4.9 happy
7a3a943ba3 Add a few more test cases; minor bugfixes
e326372f08 Implement a reporter for the diagnostic data working on top of the USB requests
59a619cb57 Fix rebase artifacts
63459303c9 Unit tests
b9c12cc37b Define mockable wrappers for malloc/free to simplify unit testing
ae6f27cd7b Build the USB requests protocol as part of the unit test suite
a8f69f7fb9 gcc platform fixes
1c66007d24 Fix unit tests
bf7c1077c9 Use memory pool to allocate request objects; use completion callback provided by the USB HAL
47c608a17b System API for the pooled memory allocator
af2d584f05 WIP
ff6ca74083 simple pool allocator implementation [branch ch7595]
350e5145f6 Add an API function for freeing a reply buffer
412a32220d Adds completion handler to vendor requests [branch ch7585]
fb9af24c2d USB requests: Initial code for testing
51f87d7221 Forward application-specific control requests to the user module
dbfe481ef1 Added missing API functions for control requests
2f0ae28910 Initial implementation of the protocol for USB vendor requests
aa29558e87 Fixes bytes2hex_lower unit test: bytes2hexbuf_lower_case does not write terminating zero byte
dfe651a4da Of course there is no newlib stuff when building PLATFORM_ID=3
340b90f20a Moves a part of mbedtls back into part1 on Photon/P1
472b7eca8a Moves _printf_float from part2 into part1 on Photon/P1
d42e5afb7d skip debug build for the Core
6f73cf125a fixes the system dynalib after merging multiple PRs defining the same index
f6dfa54d88 Adds RANDOM_10_reseeded_from_cloud_on_reconnect test
97ac9772bf Fixes build with SPARK_NO_CLOUD defined
ed403481d5 Fixes RNG behavior:
509dff373e Moves WiFiTester initialization into a static function
08fdd0c2f7 WiFiTester moved into user module. The applications that require this feature need to enable it using System.enableFeature(FEATURE_WIFITESTER)
53d391a436 fixes missing include for `os_thread_t`.  the `bits/gthr.h` header is not available on regular gcc.  Removes the duplicate diagnostics typedef which fails on platform_id 3 on osx.
7f16916f6b fixes newhal build by adding missing system_tick_hal header
62b88cbd93 fixed missing undersore and removed 070 version define until the release
60be4539bf removes duplicate symbol after merge
e98cd4e5ca update system part1 dependency to 0.7.0-rc.5
5bd7d02062 bootloader v101
6a49e8a850 Merge branch 'release/v0.7.0-rc.5' into develop
ef5ddd3eea bumps versions for 0.7.0-rc.5 (module 204)
724a6a78cf bootloader v101
e914096a50 added missing header...strange it compiles on my machine ;-)
cc3d1d92bb unit tests for bytes2hexbuf_lower_case
7f4b463fdb Device ID exposed via USB serial number descriptor should be in lower case
814229ef8d increase the DTLS packet size to 800
658bd282db increase the DTLS packet size to 800
7c1eb283e3 Remove obsolete dependency check (part1 on Photon has a dependency since 0.8.x)
35cd470c8c Adds app/diagnostics application from spark/firmware#1424
937922a877 CellularSignal/WiFiSignal unit tests
a2fe3270f8 Minor CellularSignal/WiFiSignal fixes
64c5f4f09c Moved part of cellular_signal() into cellular_internal.cpp to simplify unit testing
a9325069b3 adds error reporting to the binary diagnostic reporter
50240b705d bumps version numbers for 0.8.0 line
98106a4a27 fixes the 0.7.0-rc.4 version number
3256ac324a Photon/P1: adds system-part2 v0.7.0-rc.4 as a dependency of system-part1 to avoid bricking devices when upgrading to 0.8.0-rc.1 from < 0.7.0-rc.4 version
4266ff8b79 changelog and bump module versions for 0.7.0-rc.4 (v203)
f0ef08c2af Electron: disables PowerManager::logStat in DEBUG_BUILD too, as it might flood the logs when the battery voltage is near the recharge threshold
06cc4a414c Changes signal strength diagnostic source id to 37, implements compatibility net:rssi diagnostic source
ff55f2d32c Merge branch 'feature/diagnostics-merge' into develop
fa412807d4 Merge branch 'develop' of https://github.com/spark/firmware into develop
71b2a4c5e0 fixes up merge errors related to diagnostics
44d11af624 Disable compatibility logging callbacks
c3ed35e3cb strcasecmp() -> strncmp() to check 'spark/' event prefix
a31e28d921 mbedtls: oid.c string optimizations
e36f33b725 DIAG_ID_SYSTEM_POWER_SOURCE provisional id change to 24
bb51a1f373 system_power_management_update() no longer needs to be called from Spark_Idle_Events or listening mode event loop
60cf952b51 Moved power management implementation into PowerManager class
0ba482a02c Adds battery_state and power_source system events
10015fd41e battery_state_t and power_source_t changes:
849d5f844b FIXME: provisional DIAG_ID_SYSTEM_POWER_SOURCE definition
adf741f161 Wakeup high priority thread conditionally in os_queue_put when called from an ISR
279a6a7e4e Implements FuelGauge::getNormalizedSoC() returning normalized state of charge value based on termination voltage (upper bound) and 20% of physcial charge (lower bound).
d2e7b127c3 PMIC changes:
12d17a436f Merge branch 'develop' of https://github.com/spark/firmware into develop
b56767a587 WICED rebuild: spark/photon-wiced#22
b8cad6aaac Adds support for compressed resources
aa41f2ab3f Updated wiced_resource.h header with support for compressed resources
3530e4e9ab Adds platform_read_external_resource() that deflates wifi firmware blob
97ceb95c2f Changes some default miniz parameters
89dd2d8130 Adds amalgamated miniz
705e37d5e7 Merge branch 'feature/diagnostics-merge' into develop
d9831de281 Fixes diagnostics IDs
2f668fd431 Superseding net.rssi diagnostic data source:
c763d9b49b Updates system_display_rssi() to use signal strength to calculate bars. We can now enable this on Photon as well
b604cae486 Minor fixes
5cde990e1c Adds wlan_connected_info stubs
98af802e34 core: wlan_connected_info() implementation
dbbd65feff Adds WiFiSignal class
f8a443d349 photon: Adds wlan_connected_info() implementation reporting RSSI, noise and SNR
eaa33d8425 wlan: adds wlan_connected_info() function definition
d8ca2afb16 Updates CellularSignal to use Signal as a base class and report signal strength/quality
10eeafa1dc Adds common Signal base class to be used by Cellular and WiFi classes when reporting signal quality parameters
49dc996c62 NET_ACCESS_TECHONOLOGY_ enum
7cb3cab09d cellular_signal(): cellular_signal_t filling
739c4d1dc2 Adds SYSTEM_ERROR_INVALID_ARGUMENT
0362cf8f0a cellular_signal() should not take a reference, as it is a C function. The reserved parameter is now used for cellular_signal_t
2e9c58b140 Adds new cellular_signal_t struct that exposes raw RAT-specific quality parameters
d722703ca6 Fill in RAT-specific quality parameters according to the current RAT and scale if necessary
a5c4a2f858 Adds RAT-specific parameters to NetStatus according to 3GPP TS 45.008, TS 25.133, TS 36.133
a4ce0fc474 FixedPointSQ should count sign bit as part of M bits
711ee882ee Merge branch 'release/v0.7.0-rc.4' into develop
0a88610c7c changelog and bump module versions for 0.7.0-rc.4 (v203)
f9825909d6 link_heap_location and link_heap_location_end definitions missing
2bacdaa598 fixes issue #1380 [ch7922] by checking the actual length of the string. (The code previously assumed the string was null-terminated, which is not the case typically.)
9fefb7a825 Updated serial_halfduplex test
77228d50c5 Changes default USART half-duplex mode back to push-pull
b865adf378 Adds wiring/serial_halfduplex test set
25c9e78742 Adds SERIAL_HALF_DUPLEX and SERIAL_HALF_DUPLEX_NO_ECHO USART configuration options Ensures that TX pin is configured as Open Drain in half-duplex mode.
c14d20d339 Fix unit tests
d79f404b0d Exports WICED's resource_read() from system-part1 to enable upgrade to a version supporting wifi firmware image compression
175faa3c34 WICED rebuild: WWD_for_SDIO_FreeRTOS.a STM32F2xx.a spark/photon-wiced#21
75d993afc5 WICED: Upgrades 43362 firmware to 5.90.230.22 with KRACK WPA2 fixes
ba93937e54 Disable MBEDTLS_GENPRIME to save a bit of space in system-part1
9d1acba2cb Disable compatibility logging callbacks
c9d4eb8203 strcasecmp() -> strncmp() to check 'spark/' event prefix
9c64732d79 mbedtls: oid.c string optimizations
21a300180b fixing contact us link
29d54394f8 missed one
870a81c499 more formatting improvements
2f34540f04 fixing bold
16c38b07ba adding FAQ section
aaa01c5e90 adding some old bootloader versions to docs [ci skip]
89f8e270ce strcasecmp() -> strncmp() to check 'spark/' event prefix
a4cde35cd8 Fix unit tests
d1f9279373 Disable compatibility logging callbacks
8783d28caa Adds RAM-related diagnostic sources:
4a4f327525 Updates HAL_Core_Runtime_Info to provide additional fields:
5b077756c3 bump the compiler to 4.9.3
3633d03268 bumps module versions for 0.6.3 and adds changelog notces
8e56ac0c1e Compilation fixes
085575805b Version of the bootloader shipped with 0.7.0-rc.1 is actually 100
9ae1ac79ad Downgrade the bootloader if it's 0.7.0 or higher
f653c3f8ec WICED: Upgrades 43362 firmware to 5.90.230.22 with KRACK WPA2 fixes
86df92ac98 Add a diagnostic counter for unexpected cloud disconnections
647fd31071 Add convenience macros declaring persistent diagnostic data sources
a2de0cd040 Take a storage instance by reference
66da05a0e7 Move utility classes and functions to separate header files
90116924a5 Use non-template method arguments to pass a diagnostic ID to a retained storage
60b9d35139 Move retained variables out of the diagnostic classes
862fa2e080 Tests for persistent diagnostic data
aa4dc04797 Persistent diagnostic data; refactoring
d82e2a65ee Use inheritance to apply policy classes
c088973728 adds hello flags which indicate if the device supports diagnostics
4470c37600 uses symbols rather than literals for the diagnostic names
5d3296baba adds a binary encoding of the diagnostics packet. Refactored the json formatter to remove the common iteration components.
a5acb2348c Provide a separate getter function for the 64-bit milliseconds counter in libplatform
6d21ac75df Minor fixes
9ca3bc7d3e Use uint64_t for the milliseconds counter
8066c66c6a Test fixes
b460288593 Add "sys.uptime" diagnostic data
8735eac13c Add HAL_Timer_Get_Seconds() function
2729ab7059 Shifting signed integers is an undefined behavior
3aded36c8c Minor fixes
8c0dda3135 Add RSSI diagnostic data source
c52d25fc40 Fix unit tests
3fb3484128 remove unused error strings so system-part1 fits
1e766fc42d consolidate diagnostics names. fix double brace in describe diagnostics packet
dc05e81522 Merge branch 'feature/diagnostics-battery-state' of https://github.com/spark/firmware into feature/diagnostics-merge
113d4bd15b Merge branch 'feature/diagnostics-battery-charge' of https://github.com/spark/firmware into feature/diagnostics-merge
ac8522434f Merge branch 'feature/system-part1-optimizations' into feature/diagnostics-merge
7925fdaac7 Allocate the service's singleton with 'new' to save some bytes in part1
8836b4f0e3 Add 'd' command to print the diagnostic data to the setup console
b678d644c4 Fix trailing commas in generated JSON data
35be880d5d Define system data source IDs
36e018766e Add a system function to dump the diagnostic data in JSON format
f6bf51dd90 Add return value to the enumeration callback
15120ebdf4 Use uint16_t for structure size fields
897b4ba03b Use separate enums for data source and service commands; minor renamings
f67f1ba4bf Use std::lock_guard with LockingPolicy classes; minor improvements in the unit tests
b6a37a191b Add stubs for CRT functions dealing with memory allocations to the bootloader
5138ca95f8 Adds __dso_handle to Electron system-part1 and system-part2 newlib stubs
2d6a5ad4e1 Makes spark_wiring_diagnostics header only
3e58204439 Revert "enable the newer protocol implementation for TCP devices except the Core"
9d72551864 enable the newer protocol implementation for TCP devices except the Core
4f78d3f036 adds a new describe message type for system metrics, and a callback to provide the data for this.
e3a6f8efc0 Moved the locking functionality to policy classes
e3311e0a02 Unit tests; minor fixes
68f8d8d34b Enum and non-atomic classes; minor API changes
d5696e359b Implemented data source API
25b5472a07 Device diagnostics: Initial data source API
f50806020b Disable compatibility logging callbacks
1038b3d7ea strcasecmp() -> strncmp() to check 'spark/' event prefix
a0fd15e9e7 mbedtls: oid.c string optimizations
df55a74488 Merge branch 'fix/0.7.0-rc.3-monolithic-build' of https://github.com/spark/firmware into feature/diagnostics-merge
a9b7ef6d78 Merge branch 'feature/diag_rssi' into feature/diagnostics-merge
ed3c9b4eee Merge branch 'feature/diag_uptime' into feature/diagnostics-merge
893a554a12 Merge branch 'feature/diagnostics-cloud-ratelimit-unack' into feature/diagnostics-merge
d5d881baf2 enable the new protocol implementation.  Requires monolithic build on Photon
2afe8836fb adds diagnostic report to cloud
ad13a05d00 Shifting signed integers is an undefined behavior
50dc62fd14 Fixes weird crashes after waking up from stop mode on Electron/p1/photon
f110c10281 batter state detection and diagnostice data source
7ef279afdd Adds DIAG_ID_SYSTEM_BATTERY_STATE = 7, // sys.battState diagnostic id
5dfab06ce7 system_power_manage_update() needs to be called from listening loop as well
48244ffb3e Minor fixes
cec760fd6a Add RSSI diagnostic data source
0805794ee8 Provide a separate getter function for the 64-bit milliseconds counter in libplatform
3eba9dcef3 Adds missing __gthread_time_t typedef to newhal concurrent_hal_impl.h to make it happy
5f0bc43946 Adds <mutex> include to spark_wiring_power.cpp for std::lock_guard
1330b2fcd0 Specifies DIAG_ID_CLOUD_RATE_LIMITED_EVENTS and DIAG_ID_CLOUD_UNACKNOWLEDGED_MESSAGES string names in-place during construction
cfb0686e33 Specifies DIAG_ID_SYSTEM_BATTERY_CHARGE = 3 // sys.battCharge string name in-place during construction
5114aedf30 Add <mutex> include to spark_wiring_fuel.cpp for std::lock_guard
bcc4986eb8 Allocate the service's singleton with 'new' to save some bytes in part1
d7c7a9f3ed Battery charge diagnostics
cea37a488a spark_wiring_fixed_point.h: Q fixed point format implementation
75db250e01 PMIC and FuelGauge thread-safety
97abe76f8b Adds DIAG_ID_SYSTEM_BATTERY_CHARGE_NAME definition
7a2c5a2079 I2C thread safety: Wire.lock()/unlock() and HAL_I2C_Acquire()/HAL_I2C_Release()
ee64e36811 const variables declared in header files will have external linkage when built by C (as opposed to C++) compiler. Replace const variables like OS_THREAD_INVALID_HANDLE in concurrent_hal.h with defines when being built by C compiler
13efa08ed6 Saves some bytes in Photon system-part1 by using strncasecmp to check if the event is spark/ prefixed
02a83fbef1 Adds communication_diagnostic.cpp into communication/src/build.mk
6920f8b0aa Implements DIAG_ID_CLOUD_RATE_LIMITED_EVENTS DIAG_ID_CLOUD_UNACKNOWLEDGED_MESSAGES data sources. [branch ch7641] [branch ch7640]
d60b507dcb Minor fixes
0fd9d76133 Use uint64_t for the milliseconds counter
555c631a7e Add 'd' command to print the diagnostic data to the setup console
9083377a89 Test fixes
59eac7a661 Add "sys.uptime" diagnostic data
a43d091506 Add HAL_Timer_Get_Seconds() function
75e8264430 Fix trailing commas in generated JSON data
afca0d711d Define system data source IDs
b101c09707 Add a system function to dump the diagnostic data in JSON format
015b360c9d Add return value to the enumeration callback
7cfe614ec5 Use uint16_t for structure size fields
77ae8abc33 Use separate enums for data source and service commands; minor renamings
ad996b9f64 Use std::lock_guard with LockingPolicy classes; minor improvements in the unit tests
ee742dde0e Add stubs for CRT functions dealing with memory allocations to the bootloader
c4ce53a168 Adds __dso_handle to Electron system-part1 and system-part2 newlib stubs
4de24466f5 Makes spark_wiring_diagnostics header only
8141455f78 Revert "enable the newer protocol implementation for TCP devices except the Core"
ca4a3964b2 enable the newer protocol implementation for TCP devices except the Core
1b90b54397 adds a new describe message type for system metrics, and a callback to provide the data for this.
58acf8a813 Moved the locking functionality to policy classes
89734c2516 Unit tests; minor fixes
f4f445ef40 Enum and non-atomic classes; minor API changes
defe19cc98 Implemented data source API
919a770d11 Device diagnostics: Initial data source API
13faa691e2 Merge pull request #1384 from spark/feature/readme_update
9cf56ac37c fixing contact us link
550f91cc90 missed one
76d2b73a14 more formatting improvements
0cc3e465c8 fixing bold
15cff8d11d adding FAQ section
a9ee5caeeb adding some old bootloader versions to docs [ci skip]
02192a5441 link_heap_location and link_heap_location_end definitions missing
3c9fff9de0 bump module version for 0.7.0-rc.3 (v202), update CHANGELOG.md
ae35b3909b added POWER_ON:; command to WiFiTester, electron will default to power off state
8351dfd70d Reduce delays below 1 second to avoid calls to idle task.  This was preventing System calls from completing
3d6dedf01c makes sticker rig test app more reliable
bff9de14ea enable Serial1 in listen_mode app
4132a09922 flashes tinker as factory restore firmware, and user firmware that puts the device in listening mode
ecf90a4aef script to build the combined manufacturing image. The dct_prep.bin file was created using the makefile goal `prep_dct` after creating the appropriate release directory.
92c1beb26c Merge pull request #1365 from spark/feature/deprecated_msg
af61b4909b Merge pull request #1362 from spark/fix/ch6490-softap-crash
e18bd8a695 Generate deprecation warnings when Particle.publish() and Particle.subscribe() methods are invoked with default event scope
8be8c636d6 Disable MBEDTLS_SSL_DEBUG_CRT when MBEDTLS_DEBUG_C is enabled but MBEDTLS_X509_INFO_SUPPORT is not
0b1f2a0dd5 Add MBEDTLS_X509_INFO_SUPPORT config option to disable mbedtls_x509_crt_info and mbedtls_x509_crt_verify_info functions saving some flash space
5aae28253a Added app/softap_http test
f079e11f57 WICED: rebuilt Lib_HTTP_Server.a (see spark/photon-wiced#17)
6f57e0dc15 SoftAP HTTP enhancements and fixes:
83c009bd0a Last entry in soft_ap_http_pages should be a wildcard '/*'
f55d1b023b improve TEST=wiring/no_fixture reliability for electron
a5b61d4f46 updated CHANGELOG.md for v0.7.0-rc.2
9db2388a68 Merge branch 'develop' into release/v0.7.0-rc.2
5e986870cb Merge pull request #1355 from spark/feature/reduced-heap-usage
370842c3a3 reducing logging level to NONE for comm logs reduces size for DEBUG_BUILD=y
05d1cc328a reducing logging level to NONE for system logs reduces size for DEBUG_BUILD=y
990289d6b5 bump module version for 0.7.0-rc.2 (v201) [ci skip]
f1e74670f3 updated docs for GCC build version and other minor updates
d582e89def Merge branch 'develop' into release/v0.7.0-rc.2
deb48b2af5 Merge pull request #1357 from spark/feature/ch3737-6-digit-serial
c5e9492419 Merge pull request #1359 from spark/fix/osx-platform-gcc-build
3044971005 Merge pull request #1358 from spark/fix/gcc-version-check
7c10b25b21 Fixes build with PLATFORM=gcc on OSX with clang's gcc wrapper
a1e51c3573 Updates minimal ARM gcc version required to 5.3.1
db69867029 adds 6-digit support for the electron
799061f5bc fixes WiFi build (had not removed duplicate symbols)
2d2b9914fe sticker rig support for electron with tests. closes [closes ch1667] [branch ch6259]
5457c6e2db fixes #1348 - ensures the null terminator is also copied if the string is less than the maximum field width.
40d0e26ea0 factors the device code generation from the Photon HAL into a common stm32 area so it can be used on the Electron too.  Changes maximum length of the device code to 6 chars. Device code retrieval tweaked to allow the device code to be less than the maximum length of 6 chars.
af9f76ea58 Merge pull request #1352 from spark/fix/rgb_on_change_test
51400d4127 Merge pull request #1354 from spark/fix/wlan-scan-hardfault
744a7b903a Merge pull request #1346 from spark/fix/tcpserver-threading
0a5b4a4f2e Merge pull request #1342 from spark/feature/unlink-docs
3571b3c31b wiring/no_fixture: Added WIFI_11_scan_returns_zero_result_or_error_when_wifi_is_off and WIFI_12_restore_connection tests
64f8384665 Removed WIFI_11_scan_returns_zero_result_or_error_when_wifi_is_off and WIFI_12_restore_connection wiring/no_fixture tests, as they should go in a separate PR
3acede2542 Photon/P1: WICED rebuild, see spark/photon-wiced#16
16f2086052 wiring/no_fixture: reduced static RAM and heap usage
00406ea1d7 Increased DCT_LOCK_TIMEOUT for debug builds
6c7f5fab00 Photon/P1/Electron: migrated to FreeRTOS heap_4 allocator
7718bc7653 DER certificate/private key support for WPA Enterprise
caa03025af Test for RGB.onChange() handler leak
bc02fa693c Photon/P1: sniff_security should check that wiced_wlan_connectivity_initialized() returns true
77c207fd6f Add USE_THREADING option to app/tcp_server test
07787f41c5 Updated Supplicant_BESL.a. See spark/photon-wiced#14
bfe701f6fa TCPClient: It's much better to just copy from a previously created s_invalid_client static TCPClient(socket_handle_invalid()) when there are no new connections, instead of allocating new one each call
f62225036f [Photon/P1] socket_hal: Some cosmetic changes: wiced semaphores replaced by os_mutex_t, std::vector replaced with spark::Vector, SocketListLock implemented with std::lock_guard
f6a5e24873 Constantly holding a mutex breaks priority inheritance mechanisms in FreeRTOS. Do not block _start mutex in ActiveObjectBase. It's not even used anywhere
82e4e318cb updated README.md License section with info for WICED SDK ToS
3e1edf3574 capture module version update schema
3cb8e5fa9b Do not check if bootloader dependency is satisfied in order to avoid entering into the safe mode unnecessarily (Electron-only)
48375b5055 correction to CHANGELOG.md [ci skip]
0cfdeae45b bump bootloader module version (v100), update CHANGELOG.md
3f22d291b4 bump module version for 0.7.0-rc.1 (v200)
ad64959eac Merge pull request #1289 from spark/feature/photon/wiced-3.7.0-7
afd6d6f422 Allocate 5k stack for the system thread on both Photon and Electron
5514f279d9 Decrease MBEDTLS_MPI_MAX_SIZE and MBEDTLS_MPI_WINDOW_SIZE parameters to reduce stack usage during cloud handshake
2e9a6d4446 [usbd.mcdc] USB CDC out endpoint should not be manually switched to VALID state
6049092a6a Move log_printf_wiced() to HAL
9e8aad1593 Increase stack size of the system thread on Photon to workaround stack overflow during cloud handshake
0160fcf762 Update Supplicant_BESL.a: - Wake tls_agent, peap and supplicant threads to cancel the connection attempt faster - Declare tls_host_malloc/tls_host_callc/tls_host_free as weak functions
b1632f73d8 Electron: provide millis() to system-part1 mbedtls using mbedtls_set_callbacks()
576c58b88e Fixes USB serial issue on OSX when pasting PEM certificates
be2c845cfe Photon/P1: wpa minor fixes - wpa supplicant should not be canceled from an ISR. - implemented tls_host_malloc/tls_host_calloc/tls_host_free to easier debug WICED crypto allocations
d2d7a08f98 Reverted conditional in dtls_message_channel.cpp due to a0e736367cee67b0654f75c17f67846ed0bb1d9d. _gettimeofday in system-part1 should use millis() from system-part2
a3f13fcf7f SHA256 exported from system-part1 on Electron
d60ea7f449 Moves part1 size optimizations into a separate mbedtls_communication.inc file which gets compiled as part of communication library. Helps to avoid linking issues when recompiling without 'clean'
b38a55f387 Applied patches to mbedTLS: 00c737fee036a46697d48f44c18c1bcfb605c696 155e3b37c6728ff1f0b34a35fa841163ce5710fc 1a2cabe200310d894ee0e9bdc06eb4d31b06de18 867ca2b5b045baac993f7c7fd8ab68b8b34d263c 00c737fee036a46697d48f44c18c1bcfb605c696
795ebbc10b Merge pull request #1343 from spark/fix/disable_iwdg
72f456d113 Fix error handling
ac826dcb1f Reduces system logging level to ERROR only to free up about 7KB for DEBUG_BUILD=y on Photon/P1
cbcec46e3b Return negative values in case of errors
a303ed3c0a Use SYSTEM_PART2_MODULE_VERSION as a version number of the main module in case of a monolithic build
bf203a337d Minor bugfix
4d190d02b6 Do not enable IWDG if a pre-0.7.0 firmware is detected
1f294d84f6 Fixes a build issue with GCC platform on 64-bit systems
263391f73a rng_hal implementation for Core
4294f9498f WICED<->mbedTLS compatibility layer. Photon/P1 wifi hal and softap updated for mbedTLS
2c17afdf91 Adds Photon/P1 HAL dependency on crypto
e87d75952e System modules and monolithic builds updated to use crypto lib
364603c2ec communication lib updated to use only mbedtls from crypto lib
92a70ce2f6 mbedtls_config.h removed from communication library
44a3873958 Adds crypto and crypto-dynalib
76d2d986de Removes mbedtls/tropicssl from communication folder
cbb505a361 Merge branch 'develop' into feature/wiced-3.7.0-freertos-8.2.1
ebf4ed8ef1 Fix rebasing artifacts
d1d099be9b Do not try to initialize mutex until RTOS is initialized and malloc() is available
48a6d5deee Rebuilt WICED
2fd8e592aa Fix directory names for case-sensitive systems
52e0fa2848 Fixes monolithic builds
2cea869506 Revert WiFi/Cellular.disconnect() to terminating the cloud connection non-gracefully
b24ad3463c Process some USB requests faster by cancelling the connection
394de0fee0 Adds TERMINATE protocol command to clear ack handlers
5e51f0feb9 Adds logging for wiced_join_ap_specific() result code
60546a0bc0 Move tls deinitialization after WPA enterprise supplicant deinitialization to avoid a hardfault inside tls agent thread. Thanks, @sergeuz
826efd5d70 Make wiced.sh fail on a first failed command
043d1fb26b Do not access DCT from an ISR
cbc4daf7b2 Minor fixes
a0c5ebbe6b Remove obsolete extern declarations (WLAN_* flags are private members of the ManagedNetworkInterface class now)
e6de5d612a Remove WLAN_SMART_CONFIG_STOP flag since it duplicates functionality of the WLAN_SMART_CONFIG_FINISHED flag in the current code
9457a4e713 Make ManagedNetworkInterface::listening() return true when listening mode is pending
e6417f3806 [USB Serial] Set bInterval to a maximum value on OUT endpoint. Fixes an issue with Serial on OSX when consecutive multiple 64-byte (CDC_DATA_OUT_PACKET_SIZE) transmissions from Host occur, causing it to no longer receive any data at all if RX queue is not cleared fast enough and multiple NAKs are sent to the Host
93388bd16a Fixes weird connection issues when connected to enterprise access point. WIP
574e7bbfe8 Remove separate TLS-related system-part1 implementations and provide them via TlsCallbacks
b2e5008618 wlan_restart() is no longer needed here for correct supplicant cancellation
4db35d30c8 Fixes WPA supplicant cancellation
ae7c9effc5 Disable global flash lock in bootloader
18f6379c48 Compilation fixes for unit tests
168290fa35 Do not generate log messages in ISRs unless LOG_FROM_ISR macro is defined
c1fa062e13 Fix bootloader update
4dfeefdc64 wlan_set_enterprise_credentials: add credentials length checks
f46758a58f Fixed DCT wlan configuration access. Minor refactoring
9c5d374788 Adds a void* reserved to wlan_restart
0d8c773c37 Uninitialize WICED's WLAN subsystem when turning off the WiFi connectivity; cancel active connection attempt to unblock the system thread (see #1125)
855ef1d131 renames is_header to isHeader and avoids hard-coding the crc type
0cdac391fc fixes dcd unit tests
82248a4537 add backward compatibility. unit tests not passing [ci skip]
937dcf2c76 wip - the build is broken but the ideas are clearer [ci skip]
545e70bf3b sketch out the plan for backward compatibility in the DCD
bce6372a05 uses the makefile to launch the runner so that the environment can be correctly setup
92322918ce use an actual crc check in the test code - uncovers that the crc is computed on data that is subsequently modified after writing the header.
af089b8580 v2 dcd format and tests
24b05d88e2 Use std::make_shared()
f91c7ed730 Minor fix
78beeb290f tcp_server_t crash fix
84c7d5c5d1 TCP server tests
84a930e65b Make TCPClient close underlying socket handle when last reference to it is destroyed
2b7e5068b6 Fixed handling of const IPAddress objects
670a1866f3 Few more convenience methods
5dec10dc36 Empty device-to-host requests are fixed since 0.6.1
751934e410 MacOS fix
2368f4c0ec Adds an include of spark_wiring_interrupts.h for ATOMIC_BLOCK
d62d105c3f Verify the bootloader was flashed correctly and retry if not
f78d2b4b9c Default to invalid in HAL_Core_Validate_Modules
8e02eb7ed4 Add MODULE_DEPENDENCY2 to main/build.mk
8ca799383c Fixes unit tests. sizeof(void*) is 8 on 64-bit systems
bd8dd8214d Adds a secondary module dependency. system-part2 now depends both on system-part1 and bootloader
9399a054b1 Adds bootloader module validation
178331de69 Makes photon/p1 system-part1 and electron system-part3 depend on bootloader
cb3523a8db Moves BOOTLOADER_VERSION definition into system_module_version.mk
7fc504f4ca Fix assertion
c574e6fe51 Minor fixes
a159acfd02 Put bootloader's RAM region into the middle of user part's SRAM
2dbba1828b Handle uninitialized startup mode flags correctly
b470faad0d 0.7.0-rc.1 will have module version 200
45c508958c Ensure bootloader's RAM region doesn't overlap with the system modules
cdda34d701 Use correct module version number for upcoming 0.7.0-rc.1
cddb46bf4e Don't update system flags with uninitialized data
fe50f17e81 Move DCT functions to HAL (Electron); minor fixes
1a99858903 Move DCT functions to the separate dynalib; minor refactoring
b030b776c1 Implement DCT locking functions in bootloader
d21d730090 Adds comments to fetch_device_public_key usage in softap.cpp
5a4fe6821f Renamed RecursiveMutex to StaticRecursiveMutex
38af8466b2 Remove os_mutex_recursive_create_static as it is not implemented
fb49284f59 SystemISRTaskQueue needs to be processed while in listening mode
7d02f90d13 We can't use HAL_Feature_Get from an ISR
6797352e48 Moved dct_lock/dct_unlock functions into concurrent_hal
b192c9a8ed Added RecursiveMutex implementation
6492e36100 DCT locking fixes
3105f9fe90 Fix bootloader build. It still overflows, but since we are going to dynalib import dct functions from system-part2, let's at least leave the source tree in a working state
f404b078fb Changed DCT access to lock()/unlock() or read-with-copy style Added DCT and flash locking support for Photon/P1
6459af025d add stub functions for concurrency in stm32 bootloaders
7e2797a3f7 adds atomic flag mutex, for use with DCD and flash operations on the electron
7f69f16bfe makes FLASH_Unlock()/Lock() functions enforce a critical section around flash access.
dfd4fbc67e Initialize static data of each module before calling any of the dynamically loaded functions
044ef0c601 Unit test for platform system flags (stm32f2xx)
b492c4e3f3 Minor fixes
67d861e070 Fill DFU packet with zeros to make reading errors more apparent
1dec75ec2b Fix buttons setup in a situation when DCT functions are missing in bootloader
2394108fdf Don't clear module info slots in DCT unconditionally to avoid slowing down the boot process
8bb5e4ea23 Check IWDG flag in DCT for compatibility with old bootloaders
f9d176747c Check addresses of the dynamically loaded functions
f865ec7b90 Enable dynamic loading of the DCT functions on Photon
ace3d11091 Check module dependencies
0411f1e70b Use backup registers to store system flags (stm32f2xx)
c1b462f693 Load DCT functions on first call; error handling for DCT read operations
42ac971121 Clear module info in DCT before updating modules
6ee4ea762e Disable reading/writing of DCT via DFU if DCT functions cannot be loaded dynamically
80ffcb418a Panic messages are now logged only in debug builds
2098be3c95 Compilation fixes, renamings
6250d74c4f Load DCT functions dynamically in bootloader (P1)
312379aa18 Use network.listen() instead of WiFi.listen()/Cellular.listen() for usb vendor requests
d1a052ddf0 Minor fixes
3af793e615 Moves wValue field in USBRequest to the end of it to keep ABI compatibility
3577a5505d Most of the currently supported vendor requests should be executed on system thread. USB_REQUEST_MODULE_INFO added
036e7601cb SystemISRTaskQueue needs to be processed while in listening mode
8489326606 This check should use maximum between provided ssid and learned ssid to avoid false-positive triggers on APs that have similar names
2fdabdd74c Fixes LwIP include path
6135cacb98 DHCP hostname support
8c915778af Remove the firmware docs from the repo
6bbafed19b Merge pull request #1332 from spark/fix/latest-stable-branch-recommendation
7745ff1760 Updates recommended stable branch in compile error
4b661eb30c Merge pull request #1326 from spark/fix/system_error_enum
57e157d53e Rename system_error to system_error_t
e1a519b2ac Merge pull request #1302 from spark/feature/electron/i2c-wire1-fixes
37116a5642 Merge pull request #1300 from spark/feature/psk-servaddr-repair
2422547809 Merge pull request #1270 from spark/feature/update_done
34c9f66e5c Removes communication lib dependency on system
159593b049 Moves UpdateFlags out of system_update.h and into protocol_defs.h
4588078694 update_done should take `const uint8_t*'
cad5abcb71 initialize particle_key_errors just to be safe
3d66a6929e move data objects to a source file
254db2c71f opt for simpler flag usage with system firmware
db003638dd makes pointers const, and lets system decide which protocol HAL should use
5926f04424 adds missing functions for GCC build
2ee1c1aba3 restores public server key and server address if missing
61bdcc5fdc Merge pull request #1317 from RaemondBW/patch-1
10cdcbf5e2 Merge pull request #1316 from spark/fix/led_clear_network_cred
ef6c8e3a24 Merge pull request #1315 from spark/fix/type_safe_flags
48ab297730 Merge pull request #1313 from spark/fix/gcc_mac_os
4d8bb12642 Merge pull request #1271 from spark/feature/photon/rssi-constrain
2303f9e85b Merge pull request #1260 from spark/fix/cancel_comms
8b0e66012e Merge pull request #1259 from spark/fix/sync_sleep
c7075eac7a Merge pull request #1255 from spark/fix/core_interrupts
31ba206802 move boost assets to S3
64f89370e6 Merge branch 'release/v0.6.2' into develop
ed6f66405a bump module version for 0.6.2 (v108), update CHANGELOG.md
3fbec41749 Changed branch to checkout from 'latest' to 'release/stable'
d291e7337a Fix LED indication when clearing network credentials
69c48c9339 Merge branch 'release/v0.6.2-rc.2' into develop
cd3497674a update CHANGELOG.md (v0.6.2-rc.2) [ci skip]
181f0c7a7e update CHANGELOG.md (v0.6.2-rc.2) [ci skip]
f31c294b07 Merge pull request #1311 from spark/feature/electron/twilio-apn-support-062rc2
60d0abc51d Fix paths to .strip/.weaken files
394bf58408 Use type-safe wrapper for flag values
7c637dd020 removes data object from the header file
89bd0609c0 Compilation fixes for GCC platform (Mac OS)
ea94668c81 Merge pull request #1310 from spark/fix/arduino_math
d23bc7ebcf refactor network provider logic to HAL
3db3d780da flush on-boot URCs, and improve checks for "+CPIN: READY" URCs
fbc552b80c Added BESL.ARM_CM3.release.a.strip and BESL.ARM_CM3.release.a.weaken
d8006dd2e9 Photon/P1 system-part2 optimizations: - Stubbed x509parse_key_ecc - mbedtls SHA256 implementation instead of default WICED tropicssl SHA256 - Weakens some BESL.ARM_CM3.release.a symbols - RSA functions dynalib-exported from system-part1 to avoid duplication
ae97800582 fixes PLATFORM=newhal build
c26690a829 removes unnecessary network provider logs
a192818c43 adds cellular unit tests
d3edbb03c2 adds support for Twilio SIMs by default in system firmware
5fb87c645a bump module version for 0.6.2-rc.2 (v107) [ci skip]
f8c28e2e6e removed extraneous include of math.h in spark_wiring_arduino.h - we only want to include it when Arduino compatibility is enabled (via Arduino.h)
8317244c5f Wire::reset() should really be a HAL function. Moved it to HAL_I2C_Reset
ae22a39758 Adds USE_WIRE support to i2c_mcp23017 test
72ad2339e5 Added custom test.mk to i2c_master_slave tests that allow to specify which Wire to test. Modified i2c_master_slave tests accordingly
784d37d17e Moved old i2c master/slave tests to a separate directory
f81b102d4b Rename custom build.mk in tests to test.mk, as otherwise all build.mk are being included for some reason
a8326dda24 Adds WIRE_02_Wire_and_Wire1_cannot_be_enabled_simultaneously_on_Electron tests to wiring/no_fixture
cb30e4bb5d Ensures that Wire and Wire1 cannot be enabled simultaneously on Electron as they share the same peripheral. Fixes I2C1 interrupt processing according to which Wire interface (Wire or Wire1) is currently enabled.
90a51920e1 Remove unused variables/functions
38987e7d5a We no longer need to check for DCT version
df1d2660d3 Add <memory> include to fix builds with gcc 4.9.3
3ef4ffcd89 Serial setup: SSID cannot be empty
1acc9436a3 Rogue Serial1LogHandler
fb6f9ce0c8 Don't write to DCT flash directly
ce5744226f wlan_scan might return an access point with no SSID (ssidLength = 0), which would result in this strncmp to succeed. Add an additional check
59ab7b24be Rebuilt WICED
b127d3fb96 Photon/P1 WLAN HAL: wlan_supplicant_cancel implementation
6059c141f4 hal/src/photon/wiced.sh build script should also create Lib_crypto_open_part2.a
3d10e6b0ec WICED header update
11715c6f23 We don't need to do soft-flowcontrol in SystemSetupConsole anymore
a3863f0244 wlan_hal: Enterprise credential checks
ccbfb8c324 Adds automatic security/cipher detection in WiFiSetupConsole
688cc1d08a Since we only support single WPA Enterprise access point, we should remove any other configured WPA Enterprise access point when setting new enterprise credentials
596f738917 Fixes an infinite loop in softap when a connection is closed by remote host 'prematurely'
018db6d160 Build fixes
f7be0a3abe updates output directory for builds on WICED 3.7.0
32bbd0527c Glad we have -Wundef to track these kind of errors
152c1674ca Updated WICED build script
55e0cd5d70 Updating WICED
a9b9d39a96 adds wlan_join() function on WICED platforms to manully loop over the list of configured access points
bdec4ae990 WPA Enterprise configuration support via Serial and SoftAP
d68f294054 Add stdint.h to mallocr.c
4340efd6e2 Move WiFiCredentials to a separate header for usage in softap
fe100e297d WICED rebuild
7e77b8952e WIFI_05_reconnections_that_use_wlan_restart_dont_cause_memory_leaks test
33aa1ccb2a WPA Enterprise connection error fixes
189efb7096 system-part2 RAM optimizations: - Removes duplicate USART- and USBSerial static buffers. Allocate them on heap if needed. - Stubs for __cxa_atexit and __cxa_finalize. Frees around 1.5k
f4b695c242 Thread stack memory leak fix/workaround for Photon/P1 Relevant tests: THREAD_02_thread_doesnt_leak_memory, APPLICATION_WATCHDOG_03_doesnt_leak_memory
be06a8db8d IMPORTANT: Photon/P1 system-part2 RAM increased due to overlap with stack A check has been added to the linker file to catch this error.
f38fe894db Expose wlan_restart as dynalib function for tests
2635ca62e1 WICED update: wiced_tcp_close_shutdown()
54941f3600 WiFi/Cellular.disconnect() should also try to terminate cloud connection gracefully
593c5dd8ef Log spark_cloud_socket_disconnect messsages only in DEBUG builds
ac06e9da5d Graceful disconnect
a43b1a420a DCT compatibility fixes
9f15b6e9a8 DCT compatibility fixes
dcc07f8a19 Disable malloc() in modular builds until sbrk_heap_top has been updated
c82ad31cd4 Bootloader size optimizations
40270fc0ee Initial WPA Enterprise support
f7a0c1212c Updated WICED libraries and headers to 3.7.0-7
f79b8bdc7a Merge branch 'release/v0.6.2-rc.1' into develop
ca0eb5d54f fixes the test - uncommited change (Eclipse doesn’t save editors by default.)
724c35968c Merge pull request #1283 from spark/feature/arduino_compatibility_regression
c3fe44e014 adds tests for other public arduino APIs
4643b43d51 bool `Serial` test
040b516a27 adds a stub for `SPI.usingInterrupt()` for arduino compatibility
5830bf5fe8 adds `Wire.setClock()` for arduino compatibility
ad5a10ca54 adds support for `__FlashStringHelper` in the String class.
35d1f41aaa allow Arduino.h to be included after Particle.h.  ensure min/max/constrain/round are not rredefined.  adds more tests
d0ab86f84f missing change - sourcetree doesn’t always fully refresh the workspace view
fe2fb7bc91 update CHANGELOG.md (v0.6.2-rc.1) [ci skip]
1292314a9d makes the arduino compatibility symbols always defined. Adds a test for SPISettings API and arduino dependency.
48a841eedf fix IDE rename typo
6331ec633a rename SPISettings because it’s ambiguous.
47289ed28b ensure the ISR queue is available to non-threading platforms too
5f1bfcd8c7 remove “active_object.h” from application headers since this stops the C functions `isnan`, `isinf` from being available.
b860e10408 ensures that SPISettings (a new Arduino API) is only available when Arduino.h is included to prevent clashes with libraries that define this.
fa3e7557d0 when the full arduino API is used, the few progmem related symbols from the partial API are undefined.
52b4f3416a PARTICLE_ARDUINO_COMPATIBILTY  -> PARTICLE_WIRING_ARDUINO_COMPATIBILTY
c57c10c9d4 removes documentation for arduino compatibility switch
40264bcd31 adds demarkation for functions already defined by particle as templates so they are not redefined as macros later.  If we are splitting hairs, this could be a potential compatibility issue when porting Arduino libraries, in cases where the macro behaves differently from the template, since our version is included by the particle preprocessor for .ino files. The workaround is to disable the preprocessor and then include “Arduino.h” to get the arduino macros rather than the particle templates.  I mention this only as a possibi…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.