Skip to content

Commit

Permalink
Pnp summer refresh (#335)
Browse files Browse the repository at this point in the history
* Local folder (#246)

* enable read from local folder and add tests

* electron only for local files

* make route hiden if interface is not found

* remove focus if value is filled

* validate model if not retrieved from model repo; moved constants around (#247)

* use @id to match dtdl not names (#250)

* use @id to match dtdl not names

* update strings

* New discovery (#249)

* discover end2e

* add tests

* add bit more tests and some old discovery mech cleanup

* address comments wave1

* Implement dt get and add tests (#255)

* implement dt get and add tests

* update dt value type

* Folder picker (#254)

* workflow e2e

* add tests

* address comments

* add a resouce key back

* Patch dt (#256)

* implement dt get and add tests

* update dt value type

* implement dt patch and tests

* address comment

* update per telemetry service update; fix property styles (#258)

* Rkessler/semantic units (#259)

Add Semantic units.

* fix a build break (#261)

* Rkessler/rpos (#262)

Remove private repo.

* Update json schema adaptor; integrate service update for json patch (#260)

* remove tooltip from json schema form; fix map in object data converter

* remove dataform refactor

* integrate latest service change

* Allow remove of public repo. (#263)

* remove model on device; remove query on pnp info (#268)

* fix command api path; recomment out validation before the api is ready (#273)

* fix command api path; recomment out validation before the api is ready

* update api endpoint

* Reusable schema (#266)

* implement reusable schema and add test

* add mock data file

* merge master in (#276)

* Rkessler/refactor settings (#281)

* replay (minus test fixes)

* snapshot and test updates.

* Clarify discard message.

* Address comments.

* Fix number of value 0 was not showing (#278)

* allow showing number of value 0

* turn off validation when value is 0 for numbers and intergers

* make validation less hacky

* improve text, comment out things, version update (#283)

* Rkessler/notify repo change (#285)

* Cosmetic changes and add notification.

* Test enhancements.

* boost test coverage.

* raise test coverage.

* comment tune up.

* update product name; added privacy statement (#286)

* update readme with new images (#284)

* render telemetry row with empty body (#287)

* render telemetry row with empty body

* inform users which files are invalid

* address comments

* Default component (#289)

* support default component in ui

* show default component's telemetry

* address a few bugs opened (#288)

* moving to React 16.13 and Router 5 (#290)

* moving to fiber

* fiber tests

* removing unused imports

* addressed review comments

* addressed review comments

* bug fix

* fix telemetry issues

Co-authored-by: yingxue <kalian1127@gmail.com>

* css and null check (#291)

* moving AddDevice to react-async-saga-reducer (#292)

* moving AddDevice to react-async-saga-reducer

* simplifying notification

* addressed review comments

* reduxless device list (#293)

* Devicetwin refactor (#295)

* initial commit

* update test

* rename folder

* Direct method and device events (#296)

* refactor direct method

* refactor telemetry page

* explicit import

* reduxless module and  cloud to device message (#294)

* reduxless cloud to device message

* reduxless module identity

* rebasing with master

* addressed review comments

* moving on - goodbye redux (#302)

* reduxless pnp

* update tests

* fix model definition

* fix typo

* move device identity and related to be reduxless

* update tests

* reduxless

* update tests

* fix telemetry and update tests

* fix tests

Co-authored-by: yingxue <kalian1127@gmail.com>

* remove redux, reselect; Note: azureResource and iotHub folder is removed in this commit, when need to bring them back, this is the commit to refer to (#303)

* Folder rename (#306)

* remove device content folder

* remove default exports

* update tests

* optimizing office-ui-fabric imports (#307)

* optimizing office-ui-fabric imports

* removing unused code

* Localization (#308)

* remove localization context

* update test

* replacing monaco with ace editor (#309)

* Remove moment (#311)

* remove momentjs and fix bugs and warnings

* fix bugs and tests

* use exact version

* fix bug when switch hubs and others (#313)

* moving to brace editor for MIT license (#314)

* rebase from master

* support root level component; fix the bug in connetion string area (#316)

* update dataplane api version (#317)

* add missing css style (#318)

* add missing css style

* exclude button click from header click event

* debug console for useReactAsyncReducer (#319)

* remove copy to clipboard for preview (#320)

* remove dataplane parameter and active connection string (#321)

* remove dataplane parameter and active connection string

* address comment

* state separation (#322)

* remove replace op for dt patch (#323)

* Fixe bugs from 0706 triage meeting (#325)

* fix default telemetry filtering; command response validation; writable property ack validation

* enable edit on model location input box

* bug bash fixes round 1 (#327)

* add digital twin view; remove warning message; show unsupported type of dtdl; allow direct method to accept non-json payload; disallow dataplane response without status code

* fix notificaiton effect

* event use state refactor; validation fixes for map type; checkbox false value (#329)

* add a few more null check (#330)

* some css debt paid (#331)

* Merge telemetry (#334)

* json patch don't like null being the value

* add regex check for map key

* merge device events pages and make system property toggle in realtime

* css update for events; using pivot instead of custome

* rebase from master and update readme

* mock local time response

Co-authored-by: chieftn <rkessler@microsoft.com>
Co-authored-by: asrudra <33266774+asrudra@users.noreply.github.com>
  • Loading branch information
3 people authored Jul 21, 2020
1 parent 3acebb8 commit cd248f0
Show file tree
Hide file tree
Showing 649 changed files with 24,255 additions and 26,320 deletions.
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ ClientBin/
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

Expand Down Expand Up @@ -317,7 +317,7 @@ __pycache__/
# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
Expand All @@ -326,7 +326,7 @@ ASALocalRun/
# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
# MFractors (Xamarin productivity tool) working folder
.mfractor/
node_modules/
dist/
Expand All @@ -338,7 +338,7 @@ dist/
coverage/

# ts complied scripts
scripts/composeLocalizationKeys.js
scripts/*.js

# test results
jest-test-results.trx
Expand Down
37 changes: 20 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@

# Azure IoT explorer (preview)
# Azure IoT Explorer (preview)

[![Build Status](https://dev.azure.com/azure/azure-iot-explorer/_apis/build/status/Azure%20IoT%20Explorer%20CI%20Pipeline?branchName=master)](https://dev.azure.com/azure/azure-iot-explorer/_build/latest?definitionId=31&branchName=master)

## Table of Contents

- [Getting Azure IoT explorer](#getting-azure-iot-explorer)
- [Getting Azure IoT Explorer](#getting-azure-iot-explorer)
- [Features](#features)
- [Contributing](#contributing)

## Getting Azure IoT explorer
## Getting Azure IoT Explorer

You can either download a pre-built version or build it yourself.

Expand All @@ -33,36 +33,39 @@ If you'd like to package the app yourself, please refer to the [FAQ](https://git

### Configure an IoT Hub connection

- After opening the application, add the connection string for your IoT Hub, then click **Connect**.
- Upon opening the application, add the connection string of your IoT hub. You can add multiple strings, view, update or detete them anytime by returning to Home.

<img src="doc/screenshots/login.PNG" alt="login" width="800"/>
<img src="doc/screenRecords/login.gif" alt="login" width="800"/>

### Manage devices
### Device CRUD

- Click **New** to create a new device.
- Select device(s) and click **Delete** to delete device(s). Multiple devices can be selected by clicking while dragging the mouse.
- Devices can by queried by typing the first few characters of a device name in the query box.

<img src="doc/screenshots/manage_devices.PNG" alt="manage_devices" width="800"/>
<img src="doc/screenRecords/create_device.gif" alt="create_device" width="800"/>

### Device functionalities
- Click on the device name to see the device details and interact with the device.
- Check out the [list of features that we support](https://github.com/Azure/azure-iot-explorer/wiki)

<img src="doc/screenshots/device_details.PNG" alt="device_details" width="800"/>
<img src="doc/screenRecords/device_features.gif" alt="device_details" width="800"/>

### Manage Plug and Play devices
### Plug and Play Preview

- Open the **Settings** panel to configure how PnP Model definitions can be resolved. For more information on PnP devices, please visit [Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-pnp/overview-iot-plug-and-play).
**If you are looking for a UI tool to get a flavor of Plug and Play, look no futher. Follow this [Microsoft Docs](https://docs.microsoft.com/en-us/azure/iot-pnp/overview-iot-plug-and-play) to get started.**
- Once your device has gone through discovery, **IoT Plug and Play components** page would be available on device details view.
- The model ID would be shown.
- Follow our guidance to set up how we can retrieve model definitions. If it is already setup, We will inform you where are we resolving your model defintions from.
- A table would show the list of components implemented by the device and the corresponding interfaces the components conform to.
- You can go back to Home (either from device or by directly clicking the breadcrum) to change how we resolve model definitions. Note this is a global setting which would affect across the hub.

<img src="doc/screenshots/settings.PNG" alt="settings" width="400"/>

- Go to the device details page by clicking the name of a PnP device.
- Click Plug and Play from the navigation. If the device is a Plug and Play device, the Device capability model ID would be shown. A table would show the list of components implemented by the device and the corresponding interfaces the components conform to.

<img src="doc/screenshots/pnp_interfaces.PNG" alt="settings" width="800"/>
<img src="doc/screenRecords/pnp_discovery.gif" alt="pnp_discovery" width="800"/>

- Click the name of any component, and switch between interface, properties, commands and telemetry to start interacting with the PnP device.

<img src="doc/screenshots/pnp_device_details.PNG" alt="pnp_device_details" width="800"/>
<img src="doc/screenRecords/pnp_interaction_property.gif" alt="pnp_interaction_property" width="800"/>
<img src="doc/screenRecords/pnp_interaction_telemetry.gif" alt="pnp_interaction_telemetry" width="800"/>

## Contributing

Expand Down
Binary file added doc/screenRecords/create_device.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/device_features.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/login.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/pnp_discovery.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/pnp_interaction.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/pnp_interaction_property.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/screenRecords/pnp_interaction_telemetry.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed doc/screenshots/device_details.PNG
Binary file not shown.
Binary file removed doc/screenshots/login.PNG
Binary file not shown.
Binary file removed doc/screenshots/manage_devices.PNG
Binary file not shown.
Binary file removed doc/screenshots/pnp_device_details.PNG
Binary file not shown.
Binary file removed doc/screenshots/pnp_interfaces.PNG
Binary file not shown.
Binary file removed doc/screenshots/settings.PNG
Binary file not shown.
11 changes: 6 additions & 5 deletions jestSetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License
**********************************************************/
import { setIconOptions } from "office-ui-fabric-react/lib/Styling";
import * as Enzyme from "enzyme";
import * as Adapter from "enzyme-adapter-react-16";
import { setIconOptions } from 'office-ui-fabric-react/lib/Styling';
import * as Enzyme from 'enzyme';
import * as Adapter from 'enzyme-adapter-react-16';

// tslint:disable-next-line: no-string-literal
global['Headers'] = () => {};
window.parent.fetch = jest.fn();

Expand All @@ -22,6 +23,6 @@ Object.defineProperty(global, 'Node', {
value: {firstElementChild: jest.fn()}
});

jest.mock('i18next', () => ({
t: (key: string) => key
jest.mock('react-i18next', () => ({
useTranslation: () => ({t: key => key})
}));
Loading

0 comments on commit cd248f0

Please sign in to comment.