鼎鼎知识库
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

2021.1.25开放平台开发文档(后端).md 7.1KB

鼎鼎所有售出模块的数据会统一指向到开放平台。所以,针对模块的所有操作围绕开放平台接口进行。本文档针对.NET Core后端开发人员。

原理

所有模块目前被记录在总部数据库的TestMac表,该表记录着模块和项目的映射关系。当通过项目寻找模块,通过HeaderQuarterRepository找到项目下的模块。

如何找到模块下的开关呢?通过开放平台接口(api/breaker/data)就可以。

开放平台:获取模块实时数据接口

请求

POST http://47.103.61.198:5008/api/breaker/data

Headers:

Content-Type: application/json
DD-Open-Key: d2ca79f1-4666-4ad5-953b-7ba5ee480fe0

Body:

{
	"mac":"187ED53338C4"
}

响应:

{
    "data": {
        "serverinfo": {
            "port": "12345",
            "hardware": "T25",
            "execleakcheck": "false",
            "protocol_ver": "19",
            "mac": "187ED53338C4",
            "loginid": "187ED53338C4",
            "gate": "",
            "ip": "192.168.8.134",
            "version": "1.3.08",
            "loginpwd": "7a57a5a743894ae4",
            "ssidpwd": "2803f88db851c67a",
            "ssid": "DDINGW",
            "timezoneId": "Asia/Shanghai",
            "ServerProtocol": "2",
            "server": "47.103.61.198:5008/ebx-bishop/data/carry",
            "datetime": "2021-01-25 14:24:56",
            "leakcheckdate": "3,13,33",
            "lastleakcheckdate": "2017-01-01 10:00:00"
        },
        "distributbox": {
            "breakers": {
                "1": {
                    "version": "1.03",
                    "title": "总路",
                    "model": "JZK2L100-BL6523",
                    "alarm": 0,
                    "enableNetCtrl": true,
                    "mxdw": 0,
                    "mxgg": 14080,
                    "mxgl": 96,
                    "mxgw": 90,
                    "mxgy": 260,
                    "mxld": 30,
                    "mxqy": 0,
                    "openClose": true,
                    "addr": 1,
                    "power": 0,
                    "specification": "64",
                    "control": 1,
                    "visibility": 1,
                    "totalChannelId": -1,
                    "lineType": "220",
                    "a_A": 0,
                    "a_T": 32.1,
                    "a_V": 226,
                    "a_WP": 0,
                    "a_LD": 0.5,
                    "a_PF": 0,
                    "g_A": 0,
                    "g_T": 0,
                    "g_V": 0,
                    "g_WP": 0,
                    "g_LD": 0,
                    "g_PF": 0,
                    "b_A": 0,
                    "b_T": 0,
                    "b_V": 0,
                    "b_WP": 0,
                    "b_PF": 0,
                    "c_A": 0,
                    "c_T": 0,
                    "c_V": 0,
                    "c_WP": 0,
                    "c_PF": 0,
                    "n_A": 0,
                    "n_T": 0
                },
                "2": {
                    "version": "1.03",
                    "title": "线路1",
                    "model": "JZK2L100-BL6523",
                    "alarm": 0,
                    "enableNetCtrl": true,
                    "mxdw": 0,
                    "mxgg": 100,
                    "mxgl": 30,
                    "mxgw": 90,
                    "mxgy": 260,
                    "mxld": 30,
                    "mxqy": 175,
                    "openClose": true,
                    "addr": 2,
                    "power": 0,
                    "specification": "20",
                    "control": 1,
                    "visibility": 1,
                    "totalChannelId": 1,
                    "lineType": "220",
                    "a_A": 0,
                    "a_T": 35,
                    "a_V": 226,
                    "a_WP": 0,
                    "a_LD": 0,
                    "a_PF": 0,
                    "g_A": 0,
                    "g_T": 0,
                    "g_V": 0,
                    "g_WP": 0,
                    "g_LD": 0,
                    "g_PF": 0,
                    "b_A": 0,
                    "b_T": 0,
                    "b_V": 0,
                    "b_WP": 0,
                    "b_PF": 0,
                    "c_A": 0,
                    "c_T": 0,
                    "c_V": 0,
                    "c_WP": 0,
                    "c_PF": 0,
                    "n_A": 0,
                    "n_T": 0
                },
                "3": {
                    "version": "1.03",
                    "title": "线路2",
                    "model": "JZK2L100-BL6523",
                    "alarm": 0,
                    "enableNetCtrl": true,
                    "mxdw": 0,
                    "mxgg": 4400,
                    "mxgl": 30,
                    "mxgw": 90,
                    "mxgy": 260,
                    "mxld": 30,
                    "mxqy": 175,
                    "openClose": true,
                    "addr": 3,
                    "power": 0,
                    "specification": "20",
                    "control": 1,
                    "visibility": 1,
                    "totalChannelId": 1,
                    "lineType": "220",
                    "a_A": 0,
                    "a_T": 35,
                    "a_V": 226,
                    "a_WP": 0,
                    "a_LD": 0,
                    "a_PF": 0,
                    "g_A": 0,
                    "g_T": 0,
                    "g_V": 0,
                    "g_WP": 0,
                    "g_LD": 0,
                    "g_PF": 0,
                    "b_A": 0,
                    "b_T": 0,
                    "b_V": 0,
                    "b_WP": 0,
                    "b_PF": 0,
                    "c_A": 0,
                    "c_T": 0,
                    "c_V": 0,
                    "c_WP": 0,
                    "c_PF": 0,
                    "n_A": 0,
                    "n_T": 0
                }
            },
            "change": null
        }
    },
    "isError": false,
    "message": "success",
    "code": 200
}

在Application层,按如下方式调用:

using Flurl.Http;
using DD.Libs.Devices.ManDun;

string url = "http://47.103.61.198:5008/api/breaker/data";

var dto = new SomeClass{ mac="187ED53338C4"};


var response = await url
            .WithHeader("Content-Type", "application/json")
            .WithHeader("DD-Open-Key", "d2ca79f1-4666-4ad5-953b-7ba5ee480fe0")
            .PostJsonAsync(dto)
            .ReceiveJson<RealtimeData>();

开放平台:合闸或分断

请求

POST http://47.103.61.198:5008/api/breaker/oc

Headers:

Content-Type: application/json
DD-Open-Key: d2ca79f1-4666-4ad5-953b-7ba5ee480fe0

Body:

{
	"cmd":"OCSWITCH",
	"value1":"open",
	"value2":"1,2,3",
	"mac":"187ED53338C4",
	"extra":""
}

在Application层,按如下方式调用:

using Flurl.Http;

string url = "http://47.103.61.198:5008/api/breaker/oc";

var dto = new SomeClass{ cmd="",value1="",value2="",mac="",extra=""};

var response = await url
            .WithHeader("Content-Type", "application/json")
            .WithHeader("DD-Open-Key", "d2ca79f1-4666-4ad5-953b-7ba5ee480fe0")
            .PostJsonAsync(dto);