Я пишу «универсальное меню» для затраты ESP32, с круглым ЖК -дисплеем Waveshare 240x240px и вращающимся энкодером. Чтобы убедиться, что он универсален, я экстернализировал какой -то JSON, который описывает структуру меню. Я не могу сказать, что я полностью усовершенствовал JSON для оптимального анализа, но я подтвердил его, и он вернулся как действительный JSON. Намерение состоит в том, что основной и универсальный код может анализировать любую конфигурацию меню JSON, поэтому я могу легко описать различные меню, и код будет отображаться на ЖК -дисплее, контролируется вращающимся энкодером. < /P>
I #include Файл в моем основном коде следующим образом:
error: expected unqualified-id before '{' token
{
^
my menucontent.json файл выглядит так: < / p > < b r / > < c o d e > { < b r / > & q u o t ; f a n M o d e & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 0 0 0 0 & q u o t ; , < b r / > & q u o t ; i n t e r a c t i o n & q u o t ; : & q u o t ; c l i c k & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; o n e O f N & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; F a n m o d e & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; h u m i d i t y & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 1 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; l o n g P r e s s & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; H u m i d i t y & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; h u m i d i t y V a l u e & q u o t ; : { < b r / > & q u o t ; t y p e & q u o t ; : & q u o t ; s e t t i n g & q u o t ; , < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 1 1 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 1 0 0 & q u o t ; , < b r / > & q u o t ; u n i t s & q u o t ; : & q u o t ; % & q u o t ; , < b r / > & q u o t ; d e f a u l t & q u o t ; : 8 0 , < b r / > & q u o t ; r a n g e L o w e r & q u o t ; : 5 0 , < b r / > & q u o t ; r a n g e U p p e r & q u o t ; : 1 0 0 , < b r / > & q u o t ; s t e p & q u o t ; : 5 , < b r / > & q u o t ; s h o r t P r e s s & q u o t ; : & q u o t ; . . & q u o t ; < b r / > } < b r / > } < b r / > } , < b r / > & q u o t ; s h o r t T i m e r & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 2 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; l o n g P r e s s & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; S h o r t T i m e r & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; s h o r t T i m e r V a l u e & q u o t ; : { < b r / > & q u o t ; t y p e & q u o t ; : & q u o t ; s e t t i n g & q u o t ; , < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 2 1 0 & q u o t ; , < b r / > "parent_id":"1200",
"units":"min",
"default":5,
"rangeLower":5,
"rangeUpper":30,
"step":5,
"fallback":"1100",
"shortPress":".."
}
}
},
"longTimer":{
"id":"1300",
"parent_id":"1000",
"childInteraction":"longPress",
"label":"Long Timer",
"children":{
"longTimerValue":{
"type":"setting",
"id":"1310",
"parent_id":"1300",
"units":"min",
"default":30,
"rangeLower":30,
"rangeUpper":90,
"step":5,
"fallback":"1100",
"shortPress":".."
}
}
},
"off":{
"id":"1400",
"parent_id":"1000",
"childInteraction":"longPress",
"label":"Off",
"children":{
"OffTime":{
"type":"setting",
"id":"1410",
"parent_id":"1400",
"units":"min",
"default":"∞",
"rangeLower":30,
"rangeUpper":90,
"step":5,
"fallback":"1100",
"shortPress":".."
}
}
}
}
},
"mirror":{
"id":"2000",
"parent_id":"0000",
"interaction":"click",
"childInteraction":"oneOfN",
"label":"Mirror",
"children":{
"light":{
"id":"2100",
"parent_id":"2000",
"childInteraction":"longPress",
"label":"Mirror",
"children":{
"lightTimeoutValue":{
"type":"setting",
"id":"2110",
"parent_id":"2100",
"units":"min",
"default":30,
"rangeLower":5,
"rangeUpper":65,
"step":10,
"shortPress":".."
}
}
},
"demist":{
"id":"2200",
"parent_id":"2000",
"childInteraction":"longPress",
"label":"Demist",
"children":{
"demisterTimeoutValue":{
"type":"setting",
"id":"2210",
"parent_id":"2200",
"units":"min",
"default":"humidityThresholdVal",
"rangeLower":5,
"rangeUpper":60,
"step":5,
"shortPress":".."
}
}
}
}
},
"clock":{
"id":"3000",
"parent_id":"0000",
"interaction":"click",
"childInteraction":"oneOfN",
"label":"Clock",
"children":{
"defaultTheme":{
"id":"3100",
"parent_id":"3000",
"label":"Default theme"
},
"userTheme":{
"id":"3200",
"parent_id":"3000",
"label":"Default theme"
}
}
}
}
i #include Но я еще даже не пытаюсь использовать JSON. Дайте мне знать, если вам нужна дополнительная информация или выделяется моя ошибка.
Спасибо
Я пишу «универсальное меню» для затраты ESP32, с круглым ЖК -дисплеем Waveshare 240x240px и вращающимся энкодером. Чтобы убедиться, что он универсален, я экстернализировал какой -то JSON, который описывает структуру меню. Я не могу сказать, что я полностью усовершенствовал JSON для оптимального анализа, но я подтвердил его, и он вернулся как действительный JSON. Намерение состоит в том, что основной и универсальный код может анализировать любую конфигурацию меню JSON, поэтому я могу легко описать различные меню, и код будет отображаться на ЖК -дисплее, контролируется вращающимся энкодером. < /P> I #include Файл в моем основном коде следующим образом: [code]#include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_GC9A01A.h" #include #include "menuContent.json" #include [/code] Если я прокомментирую #include "menucontent.json" , он собирает нормально. Если нет, это не удается со следующей неспецифической ошибкой: < /p> [code]error: expected unqualified-id before '{' token { ^ [/code] my menucontent.json файл выглядит так: < / p > < b r / > < c o d e > { < b r / > & q u o t ; f a n M o d e & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 0 0 0 0 & q u o t ; , < b r / > & q u o t ; i n t e r a c t i o n & q u o t ; : & q u o t ; c l i c k & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; o n e O f N & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; F a n m o d e & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; h u m i d i t y & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 1 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; l o n g P r e s s & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; H u m i d i t y & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; h u m i d i t y V a l u e & q u o t ; : { < b r / > & q u o t ; t y p e & q u o t ; : & q u o t ; s e t t i n g & q u o t ; , < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 1 1 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 1 0 0 & q u o t ; , < b r / > & q u o t ; u n i t s & q u o t ; : & q u o t ; % & q u o t ; , < b r / > & q u o t ; d e f a u l t & q u o t ; : 8 0 , < b r / > & q u o t ; r a n g e L o w e r & q u o t ; : 5 0 , < b r / > & q u o t ; r a n g e U p p e r & q u o t ; : 1 0 0 , < b r / > & q u o t ; s t e p & q u o t ; : 5 , < b r / > & q u o t ; s h o r t P r e s s & q u o t ; : & q u o t ; . . & q u o t ; < b r / > } < b r / > } < b r / > } , < b r / > & q u o t ; s h o r t T i m e r & q u o t ; : { < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 2 0 0 & q u o t ; , < b r / > & q u o t ; p a r e n t _ i d & q u o t ; : & q u o t ; 1 0 0 0 & q u o t ; , < b r / > & q u o t ; c h i l d I n t e r a c t i o n & q u o t ; : & q u o t ; l o n g P r e s s & q u o t ; , < b r / > & q u o t ; l a b e l & q u o t ; : & q u o t ; S h o r t T i m e r & q u o t ; , < b r / > & q u o t ; c h i l d r e n & q u o t ; : { < b r / > & q u o t ; s h o r t T i m e r V a l u e & q u o t ; : { < b r / > & q u o t ; t y p e & q u o t ; : & q u o t ; s e t t i n g & q u o t ; , < b r / > & q u o t ; i d & q u o t ; : & q u o t ; 1 2 1 0 & q u o t ; , < b r / > "parent_id":"1200", "units":"min", "default":5, "rangeLower":5, "rangeUpper":30, "step":5, "fallback":"1100", "shortPress":".." } } }, "longTimer":{ "id":"1300", "parent_id":"1000", "childInteraction":"longPress", "label":"Long Timer", "children":{ "longTimerValue":{ "type":"setting", "id":"1310", "parent_id":"1300", "units":"min", "default":30, "rangeLower":30, "rangeUpper":90, "step":5, "fallback":"1100", "shortPress":".." } } }, "off":{ "id":"1400", "parent_id":"1000", "childInteraction":"longPress", "label":"Off", "children":{ "OffTime":{ "type":"setting", "id":"1410", "parent_id":"1400", "units":"min", "default":"∞", "rangeLower":30, "rangeUpper":90, "step":5, "fallback":"1100", "shortPress":".." } } } } }, "mirror":{ "id":"2000", "parent_id":"0000", "interaction":"click", "childInteraction":"oneOfN", "label":"Mirror", "children":{ "light":{ "id":"2100", "parent_id":"2000", "childInteraction":"longPress", "label":"Mirror", "children":{ "lightTimeoutValue":{ "type":"setting", "id":"2110", "parent_id":"2100", "units":"min", "default":30, "rangeLower":5, "rangeUpper":65, "step":10, "shortPress":".." } } }, "demist":{ "id":"2200", "parent_id":"2000", "childInteraction":"longPress", "label":"Demist", "children":{ "demisterTimeoutValue":{ "type":"setting", "id":"2210", "parent_id":"2200", "units":"min", "default":"humidityThresholdVal", "rangeLower":5, "rangeUpper":60, "step":5, "shortPress":".." } } } } }, "clock":{ "id":"3000", "parent_id":"0000", "interaction":"click", "childInteraction":"oneOfN", "label":"Clock", "children":{ "defaultTheme":{ "id":"3100", "parent_id":"3000", "label":"Default theme" }, "userTheme":{ "id":"3200", "parent_id":"3000", "label":"Default theme" } } } }
i #include Но я еще даже не пытаюсь использовать JSON. Дайте мне знать, если вам нужна дополнительная информация или выделяется моя ошибка. Спасибо