2 static const char _afb_description_v2_low_can[] =
3 "{\"openapi\":\"3.0.0\",\"$schema\":\"http:iot.bzh/download/openapi/schem"
4 "a-3.0/default-schema.json\",\"info\":{\"description\":\"\",\"title\":\"l"
5 "ow-can\",\"version\":\"4.0\",\"x-binding-c-generator\":{\"api\":\"low-ca"
6 "n\",\"version\":2,\"prefix\":\"\",\"postfix\":\"\",\"start\":null,\"onev"
7 "ent\":null,\"init\":\"initv2\",\"scope\":\"\",\"private\":false}},\"serv"
8 "ers\":[{\"url\":\"ws://{host}:{port}/api/monitor\",\"description\":\"Low"
9 " level CAN API.\",\"variables\":{\"host\":{\"default\":\"localhost\"},\""
10 "port\":{\"default\":\"1234\"}},\"x-afb-events\":[{\"$ref\":\"#/component"
11 "s/schemas/afb-event\"}]}],\"components\":{\"schemas\":{\"afb-reply\":{\""
12 "$ref\":\"#/components/schemas/afb-reply-v2\"},\"afb-event\":{\"$ref\":\""
13 "#/components/schemas/afb-event-v2\"},\"afb-reply-v2\":{\"title\":\"Gener"
14 "ic response.\",\"type\":\"object\",\"required\":[\"jtype\",\"request\"],"
15 "\"properties\":{\"jtype\":{\"type\":\"string\",\"const\":\"afb-reply\"},"
16 "\"request\":{\"type\":\"object\",\"required\":[\"status\"],\"properties\""
17 ":{\"status\":{\"type\":\"string\"},\"info\":{\"type\":\"string\"},\"toke"
18 "n\":{\"type\":\"string\"},\"uuid\":{\"type\":\"string\"},\"reqid\":{\"ty"
19 "pe\":\"string\"}}},\"response\":{\"type\":\"object\"}}},\"afb-event-v2\""
20 ":{\"type\":\"object\",\"required\":[\"jtype\",\"event\"],\"properties\":"
21 "{\"jtype\":{\"type\":\"string\",\"const\":\"afb-event\"},\"event\":{\"ty"
22 "pe\":\"string\"},\"data\":{\"type\":\"object\"}}}},\"x-permissions\":{\""
23 "monitor\":{\"permission\":\"urn:AGL:permission:low-can:public:monitor\"}"
24 ",\"write\":{\"permission\":\"urn:AGL:permission::platform:can:write \"}}"
25 ",\"responses\":{\"200\":{\"description\":\"A complex object array respon"
26 "se\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/compone"
27 "nts/schemas/afb-reply\"}}}}}},\"paths\":{\"/subscribe\":{\"description\""
28 ":\"Subscribe to CAN signals events\",\"parameters\":[{\"in\":\"query\",\""
29 "name\":\"event\",\"required\":false,\"schema\":{\"type\":\"string\"}}],\""
30 "responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}},\"/unsu"
31 "bscribe\":{\"description\":\"Unsubscribe previously suscribed signals.\""
32 ",\"parameters\":[{\"in\":\"query\",\"name\":\"event\",\"required\":false"
33 ",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"$ref\":\"#"
34 "/components/responses/200\"}}},\"/get\":{\"description\":\"get a current"
35 " value of CAN message\",\"parameters\":[{\"in\":\"query\",\"name\":\"eve"
36 "nt\",\"required\":false,\"schema\":{\"type\":\"string\"}}],\"responses\""
37 ":{\"200\":{\"$ref\":\"#/components/responses/200\"}}},\"/list\":{\"descr"
38 "iption\":\"get a supported CAN message list\",\"responses\":{\"200\":{\""
39 "$ref\":\"#/components/responses/200\"}}},\"/auth\":{\"description\":\"Au"
40 "thenticate session to be raise Level Of Assurance.\",\"get\":{\"x-permis"
41 "sions\":{\"$ref\":\"#/components/x-permissions/write\"},\"responses\":{\""
42 "200\":{\"$ref\":\"#/components/responses/200\"}}}},\"/write\":{\"descrip"
43 "tion\":\"Write a CAN messages to the CAN bus.\",\"get\":{\"x-permissions"
44 "\":{\"LOA\":1},\"parameters\":[{\"in\":\"query\",\"name\":\"bus_name\",\""
45 "required\":false,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"n"
46 "ame\":\"frame\",\"required\":false,\"schema\":{\"type\":\"array\"},\"par"
47 "ameters\":[{\"in\":\"query\",\"name\":\"can_id\",\"required\":false,\"sc"
48 "hema\":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"can_dlc\",\"r"
49 "equired\":false,\"schema\":{\"type\":\"string\"}},{\"in\":\"query\",\"na"
50 "me\":\"can_data\",\"required\":false,\"schema\":{\"type\":\"string\"}}]}"
51 ",{\"in\":\"query\",\"name\":\"signal_name\",\"required\":false,\"schema\""
52 ":{\"type\":\"string\"}},{\"in\":\"query\",\"name\":\"signal_value\",\"re"
53 "quired\":false,\"schema\":{\"type\":\"integer\"}}],\"responses\":{\"200\""
54 ":{\"$ref\":\"#/components/responses/200\"}}}}}}"
57 static const struct afb_auth _afb_auths_v2_low_can[] = {
58 afb::auth_permission("urn:AGL:permission::platform:can:write ")
61 void subscribe(struct afb_req req);
62 void unsubscribe(struct afb_req req);
63 void get(struct afb_req req);
64 void list(struct afb_req req);
65 void auth(struct afb_req req);
66 void write(struct afb_req req);
68 static const struct afb_verb_v2 _afb_verbs_v2_low_can[] = {
71 .callback = subscribe,
73 .info = "Subscribe to CAN signals events",
74 .session = AFB_SESSION_NONE_V2
77 .verb = "unsubscribe",
78 .callback = unsubscribe,
80 .info = "Unsubscribe previously suscribed signals.",
81 .session = AFB_SESSION_NONE_V2
87 .info = "get a current value of CAN message",
88 .session = AFB_SESSION_NONE_V2
94 .info = "get a supported CAN message list",
95 .session = AFB_SESSION_NONE_V2
100 .auth = &_afb_auths_v2_low_can[0],
101 .info = "Authenticate session to be raise Level Of Assurance.",
102 .session = AFB_SESSION_NONE_V2
108 .info = "Write a CAN messages to the CAN bus.",
109 .session = AFB_SESSION_LOA_1_V2
120 const struct afb_binding_v2 afbBindingV2 = {
122 .specification = _afb_description_v2_low_can,
124 .verbs = _afb_verbs_v2_low_can,