diff --git a/lib/hardware/GwHardware.h b/lib/hardware/GwHardware.h index d7d8898..ddf5f95 100644 --- a/lib/hardware/GwHardware.h +++ b/lib/hardware/GwHardware.h @@ -224,4 +224,10 @@ #endif #endif +#ifdef ESP32_CAN_TX_PIN + #ifndef N2K_LOAD_LEVEL + #define N2K_LOAD_LEVEL 3 + #endif +#endif + #endif diff --git a/platformio.ini b/platformio.ini index 0ca5fbf..f33bd51 100644 --- a/platformio.ini +++ b/platformio.ini @@ -126,6 +126,15 @@ build_flags = upload_port = /dev/esp32 upload_protocol = esptool +[env:m5stickc-atom-generic] +board = m5stick-c +lib_deps = ${env.lib_deps} +build_flags = + -D BOARD_M5STICK -D HAS_RTC -D HAS_M5LCD + ${env.build_flags} +upload_port = /dev/esp32 +upload_protocol = esptool + [env:nodemcu-homberger] board = nodemcu-32s lib_deps = ${env.lib_deps} diff --git a/webinstall/build.yaml b/webinstall/build.yaml index 8080b8a..7ec1712 100644 --- a/webinstall/build.yaml +++ b/webinstall/build.yaml @@ -367,6 +367,15 @@ config: children: - *m5base - *m5groove + - value: m5stickc-atom-generic + label: m5stick+ atom + description: "M5 Stick C+" + url: "http://docs.m5stack.com/en/core/m5stickc_plus" + resource: *esp32default + children: + - *m5groove + + - value: nodemcu-generic label: nodemcu description: "Node mcu esp32" diff --git a/webinstall/cibuild.js b/webinstall/cibuild.js index abf67e7..9c7d7cb 100644 --- a/webinstall/cibuild.js +++ b/webinstall/cibuild.js @@ -54,6 +54,8 @@ class PipelineInfo{ let delayedSearch=undefined; let gitSha=undefined; let buildVersion=undefined; + let configName="buildconfig"; + let isModified=false; const modeStrings={ last: 'Last Build', existing: 'Existing Build', @@ -231,7 +233,9 @@ class PipelineInfo{ fsel.click(); } const downloadConfig=()=>{ - let name="buildconfig.json"; + let name=configName; + if (isModified) name=name.replace(/[0-9]*$/,'')+formatDate(undefined,true); + name+=".json"; fileDownload(JSON.stringify(config),name); } const showOverlay=(text, isHtml)=>{ @@ -543,6 +547,7 @@ class PipelineInfo{ let childFrame=buildSelector(frame,cfg,name,current, (child,initial,opt_frame)=>{ if(cfg.key !== undefined) removeSelectors(name,!initial); + if (! initial) isModified=true; buildSelectors(name,child.children,initial,currentBase,opt_frame||childFrame); if (cfg.key !== undefined) configStruct[name]={cfg:child,base:currentBase}; buildValues(initial); @@ -667,6 +672,17 @@ class PipelineInfo{ }); } + const formatDate=(opt_date,opt_includeMs)=>{ + const fmt=(v)=>{ + return ((v<10)?"0":"")+v; + } + let now=opt_date|| new Date(); + let rt=now.getFullYear()+fmt(now.getMonth()+1)+fmt(now.getDate()); + if (opt_includeMs){ + rt+=fmt(now.getHours())+fmt(now.getMinutes())+fmt(now.getSeconds()); + } + return rt; + } window.onload=async ()=>{ setButtons(btConfig); let pipeline=window.localStorage.getItem(CURRENT_PIPELINE); @@ -739,12 +755,7 @@ class PipelineInfo{ val=type+val; } if (type == 'branch'){ - let now=new Date(); - let m=now.getMonth()+1; - m=((m<10)?"0":"")+m; - let d=now.getDate(); - d=((d<10)?"0":"")+d; - val=val+now.getFullYear()+m+d; + val=val+formatDate(); } val=val.replace(/[:.]/g,'_'); val=val.replace(/[^a-zA-Z0-9_]*/g,''); @@ -771,7 +782,7 @@ class PipelineInfo{ let ucfg=getParam('config'); let loadedCfg=undefined; if (ucfg){ - ucfg=ucfg.replace(/[^.a-zA-Z_-]/g,''); + ucfg=ucfg.replace(/[^.a-zA-Z_0-9-]/g,''); if (gitSha !== undefined){ try{ loadedCfg=await fetchJson(GITAPI,Object.assign({},gitParam,{sha:gitSha,proxy:'webinstall/config/'+ucfg+".json"})); @@ -787,6 +798,7 @@ class PipelineInfo{ } } if (loadedCfg !== undefined){ + configName=ucfg; config=loadedCfg; } } diff --git a/webinstall/config/m5stack-atom-canunit.json b/webinstall/config/m5stack-atom-canunit.json new file mode 100644 index 0000000..f2f929c --- /dev/null +++ b/webinstall/config/m5stack-atom-canunit.json @@ -0,0 +1 @@ +{"root:board":"m5stack-atom-generic","root:board:m5groove":"CAN","root:board:m5groove:m5groovecan":"M5_CANUNIT"} \ No newline at end of file diff --git a/webinstall/config/m5stack-atom-rs232-canunit.json b/webinstall/config/m5stack-atom-rs232-canunit.json new file mode 100644 index 0000000..bdbb4dd --- /dev/null +++ b/webinstall/config/m5stack-atom-rs232-canunit.json @@ -0,0 +1 @@ +{"root:board":"m5stack-atom-generic","root:board:m5lightbase":"M5_SERIAL_KIT_232","root:board:m5groove":"CAN","root:board:m5groove:m5groovecan":"M5_CANUNIT"} \ No newline at end of file diff --git a/webinstall/config/m5stack-atom-rs485-canunit.json b/webinstall/config/m5stack-atom-rs485-canunit.json new file mode 100644 index 0000000..cf7acec --- /dev/null +++ b/webinstall/config/m5stack-atom-rs485-canunit.json @@ -0,0 +1 @@ +{"root:board":"m5stack-atom-generic","root:board:m5lightbase":"M5_SERIAL_KIT_485","root:board:m5groove":"CAN","root:board:m5groove:m5groovecan":"M5_CANUNIT"} \ No newline at end of file diff --git a/webinstall/config/m5stack-atom.json b/webinstall/config/m5stack-atom.json new file mode 100644 index 0000000..663b5df --- /dev/null +++ b/webinstall/config/m5stack-atom.json @@ -0,0 +1 @@ +{"root:board":"m5stack-atom-generic","root:board:m5lightbase":"M5_CAN_KIT","root:board:m5groove":"Serial","root:board:m5groove:m5grooveserial":"tail485"} \ No newline at end of file diff --git a/webinstall/config/m5stickc-atom-canunit.json b/webinstall/config/m5stickc-atom-canunit.json new file mode 100644 index 0000000..cdfcc4f --- /dev/null +++ b/webinstall/config/m5stickc-atom-canunit.json @@ -0,0 +1 @@ +{"root:board":"m5stickc-atom-generic","root:board:m5groove":"CAN","root:board:m5groove:m5groovecan":"M5_CANUNIT"} \ No newline at end of file