Initial commit
This commit is contained in:
parent
5bfbcadaf0
commit
88963161d2
BIN
.pio/build/esp32dev/.sconsign39.dblite
Normal file
BIN
.pio/build/esp32dev/.sconsign39.dblite
Normal file
Binary file not shown.
BIN
.pio/build/esp32dev/firmware.bin
Normal file
BIN
.pio/build/esp32dev/firmware.bin
Normal file
Binary file not shown.
BIN
.pio/build/esp32dev/firmware.elf
Normal file
BIN
.pio/build/esp32dev/firmware.elf
Normal file
Binary file not shown.
128268
.pio/build/esp32dev/firmware.map
Normal file
128268
.pio/build/esp32dev/firmware.map
Normal file
File diff suppressed because one or more lines are too long
1
.pio/build/esp32dev/idedata.json
Normal file
1
.pio/build/esp32dev/idedata.json
Normal file
File diff suppressed because one or more lines are too long
BIN
.pio/build/esp32dev/partitions.bin
Normal file
BIN
.pio/build/esp32dev/partitions.bin
Normal file
Binary file not shown.
1
.pio/build/project.checksum
Normal file
1
.pio/build/project.checksum
Normal file
@ -0,0 +1 @@
|
||||
d85b38ded3be2a5ad8d82c9bbd72bb83a77f67c6
|
0
.pio/libdeps/esp32dev.lock
Normal file
0
.pio/libdeps/esp32dev.lock
Normal file
3
.vs/ProjectSettings.json
Normal file
3
.vs/ProjectSettings.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"CurrentProjectSetting": "\u65E0\u914D\u7F6E"
|
||||
}
|
13
.vs/VSWorkspaceState.json
Normal file
13
.vs/VSWorkspaceState.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"ExpandedNodes": [
|
||||
"",
|
||||
"\\include",
|
||||
"\\lib",
|
||||
"\\src",
|
||||
"\\src\\hal",
|
||||
"\\src\\utils",
|
||||
"\\test"
|
||||
],
|
||||
"SelectedNode": "\\src\\main.cpp",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
BIN
.vs/mini_printer/v17/.wsuo
Normal file
BIN
.vs/mini_printer/v17/.wsuo
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/Browse.VC.db
Normal file
BIN
.vs/mini_printer/v17/Browse.VC.db
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/Browse.VC.db-shm
Normal file
BIN
.vs/mini_printer/v17/Browse.VC.db-shm
Normal file
Binary file not shown.
0
.vs/mini_printer/v17/Browse.VC.db-wal
Normal file
0
.vs/mini_printer/v17/Browse.VC.db-wal
Normal file
BIN
.vs/mini_printer/v17/Browse.VC.opendb
Normal file
BIN
.vs/mini_printer/v17/Browse.VC.opendb
Normal file
Binary file not shown.
449
.vs/mini_printer/v17/DocumentLayout.json
Normal file
449
.vs/mini_printer/v17/DocumentLayout.json
Normal file
@ -0,0 +1,449 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_config.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\em_config.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\em_device.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\em_device.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\em_task.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\em_task.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\include\\README||{8B382828-6202-11D1-8870-0000F87579D2}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:include\\README||{8B382828-6202-11D1-8870-0000F87579D2}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\lib\\README||{8B382828-6202-11D1-8870-0000F87579D2}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:lib\\README||{8B382828-6202-11D1-8870-0000F87579D2}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_adc.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_adc.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_ble.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_button.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_button.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_hal.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_hal.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_motor.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_printer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_printer.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_spi.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_timer.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_spi.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_timer.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_motor.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:src\\hal\\em_ble.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\platformio.ini||{3B902123-F8A7-4915-9F01-361F908088D0}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:platformio.ini||{3B902123-F8A7-4915-9F01-361F908088D0}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 9,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "README",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\include\\README",
|
||||
"RelativeDocumentMoniker": "include\\README",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\include\\README",
|
||||
"RelativeToolTip": "include\\README",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
|
||||
"WhenOpened": "2024-10-03T10:06:10.417Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "README",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\lib\\README",
|
||||
"RelativeDocumentMoniker": "lib\\README",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\lib\\README",
|
||||
"RelativeToolTip": "lib\\README",
|
||||
"ViewState": "AgIAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|",
|
||||
"WhenOpened": "2024-10-03T10:06:06.216Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "em_adc.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_adc.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_adc.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T10:05:56.489Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "em_adc.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_adc.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_adc.h",
|
||||
"RelativeToolTip": "src\\hal\\em_adc.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T10:05:55.763Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "em_ble.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_ble.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.h",
|
||||
"RelativeToolTip": "src\\hal\\em_ble.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T10:05:54.649Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "em_button.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_button.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_button.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_button.h",
|
||||
"RelativeToolTip": "src\\hal\\em_button.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T10:05:53.219Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "em_task.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.cpp",
|
||||
"RelativeDocumentMoniker": "src\\em_task.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.cpp",
|
||||
"RelativeToolTip": "src\\em_task.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T10:04:13.335Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "em_task.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.h",
|
||||
"RelativeDocumentMoniker": "src\\em_task.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_task.h",
|
||||
"RelativeToolTip": "src\\em_task.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAYAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T10:04:11.427Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"Title": "em_printer.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_printer.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_printer.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:10.295Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "main.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\main.cpp",
|
||||
"RelativeDocumentMoniker": "src\\main.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\main.cpp",
|
||||
"RelativeToolTip": "src\\main.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:48:55.016Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "em_device.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.h",
|
||||
"RelativeDocumentMoniker": "src\\em_device.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.h",
|
||||
"RelativeToolTip": "src\\em_device.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T10:04:14.105Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "em_device.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.cpp",
|
||||
"RelativeDocumentMoniker": "src\\em_device.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_device.cpp",
|
||||
"RelativeToolTip": "src\\em_device.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:48:52.489Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "em_config.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_config.h",
|
||||
"RelativeDocumentMoniker": "src\\em_config.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\em_config.h",
|
||||
"RelativeToolTip": "src\\em_config.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAARAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:48:50.814Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"Title": "em_printer.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_printer.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_printer.h",
|
||||
"RelativeToolTip": "src\\hal\\em_printer.h",
|
||||
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:49:23.194Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"Title": "em_spi.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_spi.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_spi.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:24.404Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"Title": "em_timer.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_timer.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.h",
|
||||
"RelativeToolTip": "src\\hal\\em_timer.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAAADAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:49:35.039Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"Title": "em_motor.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_motor.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_motor.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:10.909Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"Title": "em_hal.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_hal.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.h",
|
||||
"RelativeToolTip": "src\\hal\\em_hal.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:49:08.216Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"Title": "em_hal.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_hal.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_hal.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_hal.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:03.898Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"Title": "em_spi.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_spi.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_spi.h",
|
||||
"RelativeToolTip": "src\\hal\\em_spi.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:49:29.82Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"Title": "em_timer.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_timer.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_timer.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_timer.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:30.567Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"Title": "em_motor.h",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.h",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_motor.h",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_motor.h",
|
||||
"RelativeToolTip": "src\\hal\\em_motor.h",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
|
||||
"WhenOpened": "2024-10-03T09:49:06.988Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 22,
|
||||
"Title": "em_ble.cpp",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.cpp",
|
||||
"RelativeDocumentMoniker": "src\\hal\\em_ble.cpp",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\src\\hal\\em_ble.cpp",
|
||||
"RelativeToolTip": "src\\hal\\em_ble.cpp",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
|
||||
"WhenOpened": "2024-10-03T09:49:03.033Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 23,
|
||||
"Title": "platformio.ini",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\platformio.ini",
|
||||
"RelativeDocumentMoniker": "platformio.ini",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\platformio.ini",
|
||||
"RelativeToolTip": "platformio.ini",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002768|",
|
||||
"WhenOpened": "2024-10-03T09:48:59.273Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 24,
|
||||
"Title": ".gitignore",
|
||||
"DocumentMoniker": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\.gitignore",
|
||||
"RelativeDocumentMoniker": ".gitignore",
|
||||
"ToolTip": "C:\\Users\\Jcen\\Downloads\\mini_printer_v1.0.2\\mini_printer\\.gitignore",
|
||||
"RelativeToolTip": ".gitignore",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAG/SURBVDhPrZRNTgIxFMerDIaEhHgU97JxwUKGGaNeQJdyCY0XUBDWGhg4AB\u002BuvQk7OQCRFTP1fXWmMxUMCT94ee177eu/LVQdFK31kTSJ0WgEIa0SMJ2A6QTHcF9iicQqlYpa/6zv2\u002B2HD5nuEkWR/l4udRzHZBtjGzFor1YrPR6P9WKx0MNhpN96vTuZThyLJ1AJLK/iJFFxjBanBsXIozqkWq2qev1c1Wq19063e0ZBwBNP4JaQ6WRC/i8ajQb5wWBAvnxyghpOqQPkC8L5IEEQKjgxaqOTFsCd65tb6nmlkur1\u002BxwXCgX58KfT7QptwvCK52wrSLcJvtUKOABkQ6HFXwbGsmMRBkchzpjNphLZDSrEn5G1qnsp\u002BPEtheloXouRnXDTTjhb5tXmeyg0IgzuliHp\u002By0OANbiOCDXp1IYo3mMUxBT8/mMA/8QhGH6ZzC4Zwi5ZqoQB9M3h62I/\u002B/SAQpniBmtPvdQyGeYUdgyX8pl05eIBSxmTzQYEYbc42AuJQWLGJNQEcrJG4A4BTHneSW2sqfKOyybkxXMPbAvrx3IsyLzkPJFmUcWYtDntjG6lIvnp8cvKXNIlPoFvstpJRlQPIAAAAAASUVORK5CYII=",
|
||||
"WhenOpened": "2024-10-03T09:48:58.366Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/287971159f82026d/MAIN.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/287971159f82026d/MAIN.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/39c2067422bfe668/EM_ADC.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/39c2067422bfe668/EM_ADC.ipch
Normal file
Binary file not shown.
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/654b59951948fa13/EM_TIMER.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/654b59951948fa13/EM_TIMER.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/7448a133fd566faf/EM_HAL.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/7448a133fd566faf/EM_HAL.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/762cff6523176b7c/EM_TASK.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/762cff6523176b7c/EM_TASK.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/809f2e5ec2ca91f7/EM_HAL.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/809f2e5ec2ca91f7/EM_HAL.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/84c1d66d372a1564/EM_TASK.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/84c1d66d372a1564/EM_TASK.ipch
Normal file
Binary file not shown.
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/85ffb8ba74908e0b/EM_TIMER.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/85ffb8ba74908e0b/EM_TIMER.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/863f6d42848e6c63/EM_BLE.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/863f6d42848e6c63/EM_BLE.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/a993c258b4055f45/EM_QUEUE.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/a993c258b4055f45/EM_QUEUE.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/aba0871dbebd92ec/EM_SPI.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/aba0871dbebd92ec/EM_SPI.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/c178b59038ebf920/EM_ADC.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/c178b59038ebf920/EM_ADC.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/c35131991f5151c3/EM_MOTOR.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/c35131991f5151c3/EM_MOTOR.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/d9b1dcdf318a7eb5/MAIN.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/d9b1dcdf318a7eb5/MAIN.ipch
Normal file
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/e950940821875eb/EM_MOTOR.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/e950940821875eb/EM_MOTOR.ipch
Normal file
Binary file not shown.
Binary file not shown.
BIN
.vs/mini_printer/v17/ipch/AutoPCH/fe5dfe201a7a5714/EM_SPI.ipch
Normal file
BIN
.vs/mini_printer/v17/ipch/AutoPCH/fe5dfe201a7a5714/EM_SPI.ipch
Normal file
Binary file not shown.
BIN
.vs/slnx.sqlite
Normal file
BIN
.vs/slnx.sqlite
Normal file
Binary file not shown.
469
.vscode/c_cpp_properties.json
vendored
Normal file
469
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,469 @@
|
||||
//
|
||||
// !!! WARNING !!! AUTO-GENERATED FILE!
|
||||
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
|
||||
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
|
||||
//
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "PlatformIO",
|
||||
"includePath": [
|
||||
"g:/work/Arduino/mini_printer/include",
|
||||
"g:/work/Arduino/mini_printer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/button/button/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dotprod/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/hann/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_harris/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_nuttall/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/nuttall/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/flat_top/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/iir/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fir/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/add/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sub/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mul/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/addc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mulc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sqrt/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/matrix/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fft/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dct/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/conv/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf_imu13states/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/esp-tts/esp_tts_chinese/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/qspi_qspi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/u8g2_wqy/src",
|
||||
""
|
||||
],
|
||||
"browse": {
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"path": [
|
||||
"g:/work/Arduino/mini_printer/include",
|
||||
"g:/work/Arduino/mini_printer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions/freertos",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/port/xtensa/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include/esp_additions",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/include/soc/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/heap/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/log/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/include/apps/sntp",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/lwip/src/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/lwip/port/esp32/include/arch",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/soc/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/hal/platform_port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rom/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/soc",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_system/port/public_compat",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/xtensa/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/driver/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_pm/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ringbuf/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/efuse/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/vfs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_wifi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_event/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_netif/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_eth/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcpip_adapter/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_phy/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_ipc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_trace/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_timer/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/mbedtls/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mbedtls/esp_crt_bundle/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/app_update/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spi_flash/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bootloader_support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nvs_flash/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/pthread/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/xtensa",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_gdbstub/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/espcoredump/include/port/xtensa",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wpa_supplicant/esp_supplicant/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ieee802154/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/console",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/asio/asio/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/asio/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/osi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/include/esp32/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/api/include/api",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/common/btc/profile/esp/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cbor/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/unity/unity/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/cmock/CMock/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/coap/libcoap/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/nghttp/nghttp2/lib/includes",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-tls/esp-tls-crypto",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_adc_cal/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_hid/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/tcp_transport/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_client/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_http_server/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_https_ota/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_lcd/interface",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protobuf-c/protobuf-c",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/common",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/security",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/protocomm/include/transports",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mdns/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_local_ctrl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/sdmmc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_serial_slave_link/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_websocket_client/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/expat/expat/lib",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/expat/port/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wear_levelling/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/diskio",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/vfs",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fatfs/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freemodbus/common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/idf_test/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/jsmn/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json/cJSON",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/libsodium/src/libsodium/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/libsodium/port_include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/mqtt/esp-mqtt/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/openssl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/perfmon/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/spiffs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ulp/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/wifi_provisioning/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/button/button/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/rmaker_common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_parser/upstream",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/json_generator/upstream",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_schedule/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_rainmaker/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/qrcode/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/ws2812_led",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dotprod/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/support/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/hann/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_harris/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/blackman_nuttall/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/nuttall/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/windows/flat_top/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/iir/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fir/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/add/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sub/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mul/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/addc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/mulc/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/math/sqrt/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/matrix/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/fft/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/dct/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/conv/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/common/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dsp/modules/kalman/ekf_imu13states/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp_littlefs/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/tool",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/typedef",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/image",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/math",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/nn",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/layer",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/detect",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-dl/include/model_zoo",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/esp-tts/esp_tts_chinese/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp-sr/include/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/driver/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/esp32-camera/conversions/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/qspi_qspi/include",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/cores/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/variants/esp32",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
|
||||
"C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/u8g2_wqy/src",
|
||||
""
|
||||
]
|
||||
},
|
||||
"defines": [
|
||||
"PLATFORMIO=60111",
|
||||
"ARDUINO_ESP32_DEV",
|
||||
"HAVE_CONFIG_H",
|
||||
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
|
||||
"UNITY_INCLUDE_CONFIG_H",
|
||||
"WITH_POSIX",
|
||||
"_GNU_SOURCE",
|
||||
"IDF_VER=\"v4.4.1-1-gb8050b365e\"",
|
||||
"ESP_PLATFORM",
|
||||
"_POSIX_READER_WRITER_LOCKS",
|
||||
"ARDUINO_ARCH_ESP32",
|
||||
"ESP32",
|
||||
"F_CPU=240000000L",
|
||||
"ARDUINO=10812",
|
||||
"ARDUINO_VARIANT=\"esp32\"",
|
||||
"ARDUINO_BOARD=\"Espressif ESP32 Dev Module\"",
|
||||
"ARDUINO_PARTITION_default",
|
||||
""
|
||||
],
|
||||
"cStandard": "gnu99",
|
||||
"cppStandard": "gnu++11",
|
||||
"compilerPath": "C:/Users/kemp/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-gcc.exe",
|
||||
"compilerArgs": [
|
||||
"-mlongcalls",
|
||||
""
|
||||
]
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
10
.vscode/extensions.json
vendored
Normal file
10
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"platformio.platformio-ide"
|
||||
],
|
||||
"unwantedRecommendations": [
|
||||
"ms-vscode.cpptools-extension-pack"
|
||||
]
|
||||
}
|
44
.vscode/launch.json
vendored
Normal file
44
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
|
||||
//
|
||||
// PIO Unified Debugger
|
||||
//
|
||||
// Documentation: https://docs.platformio.org/page/plus/debugging.html
|
||||
// Configuration: https://docs.platformio.org/page/projectconf/section_env_debug.html
|
||||
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug",
|
||||
"executable": "g:/work/Arduino/mini_printer/.pio/build/esp32dev/firmware.elf",
|
||||
"projectEnvName": "esp32dev",
|
||||
"toolchainBinDir": "C:/Users/kemp/.platformio/packages/toolchain-xtensa-esp32/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"preLaunchTask": {
|
||||
"type": "PlatformIO",
|
||||
"task": "Pre-Debug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug (skip Pre-Debug)",
|
||||
"executable": "g:/work/Arduino/mini_printer/.pio/build/esp32dev/firmware.elf",
|
||||
"projectEnvName": "esp32dev",
|
||||
"toolchainBinDir": "C:/Users/kemp/.platformio/packages/toolchain-xtensa-esp32/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart"
|
||||
},
|
||||
{
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug (without uploading)",
|
||||
"executable": "g:/work/Arduino/mini_printer/.pio/build/esp32dev/firmware.elf",
|
||||
"projectEnvName": "esp32dev",
|
||||
"toolchainBinDir": "C:/Users/kemp/.platformio/packages/toolchain-xtensa-esp32/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"loadMode": "manual"
|
||||
}
|
||||
]
|
||||
}
|
7
.vscode/settings.json
vendored
Normal file
7
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"array": "cpp",
|
||||
"string": "cpp",
|
||||
"string_view": "cpp"
|
||||
}
|
||||
}
|
42
.vscode/tasks.json
vendored
Normal file
42
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build: HTML and binary",
|
||||
"dependsOn": [
|
||||
"Build: HTML only",
|
||||
"Build: binary only"
|
||||
],
|
||||
"dependsOrder": "sequence",
|
||||
"problemMatcher": [
|
||||
"$platformio",
|
||||
],
|
||||
},
|
||||
{
|
||||
"type": "PlatformIO",
|
||||
"label": "Build: binary only",
|
||||
"task": "Build",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true,
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$platformio"
|
||||
],
|
||||
"presentation": {
|
||||
"panel": "shared"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "build",
|
||||
"group": "build",
|
||||
"problemMatcher": [],
|
||||
"label": "Build: HTML only",
|
||||
"detail": "npm run build",
|
||||
"presentation": {
|
||||
"panel": "shared"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
BIN
ProProject_Mini打印机-V8_2023-09-16.zip
Normal file
BIN
ProProject_Mini打印机-V8_2023-09-16.zip
Normal file
Binary file not shown.
39
include/README
Normal file
39
include/README
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
This directory is intended for project header files.
|
||||
|
||||
A header file is a file containing C declarations and macro definitions
|
||||
to be shared between several project source files. You request the use of a
|
||||
header file in your project source file (C, C++, etc) located in `src` folder
|
||||
by including it, with the C preprocessing directive `#include'.
|
||||
|
||||
```src/main.c
|
||||
|
||||
#include "header.h"
|
||||
|
||||
int main (void)
|
||||
{
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Including a header file produces the same results as copying the header file
|
||||
into each source file that needs it. Such copying would be time-consuming
|
||||
and error-prone. With a header file, the related declarations appear
|
||||
in only one place. If they need to be changed, they can be changed in one
|
||||
place, and programs that include the header file will automatically use the
|
||||
new version when next recompiled. The header file eliminates the labor of
|
||||
finding and changing all the copies as well as the risk that a failure to
|
||||
find one copy will result in inconsistencies within a program.
|
||||
|
||||
In C, the usual convention is to give header files names that end with `.h'.
|
||||
It is most portable to use only letters, digits, dashes, and underscores in
|
||||
header file names, and at most one dot.
|
||||
|
||||
Read more about using header files in official GCC documentation:
|
||||
|
||||
* Include Syntax
|
||||
* Include Operation
|
||||
* Once-Only Headers
|
||||
* Computed Includes
|
||||
|
||||
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
46
lib/README
Normal file
46
lib/README
Normal file
@ -0,0 +1,46 @@
|
||||
|
||||
This directory is intended for project specific (private) libraries.
|
||||
PlatformIO will compile them to static libraries and link into executable file.
|
||||
|
||||
The source code of each library should be placed in a an own separate directory
|
||||
("lib/your_library_name/[here are source files]").
|
||||
|
||||
For example, see a structure of the following two libraries `Foo` and `Bar`:
|
||||
|
||||
|--lib
|
||||
| |
|
||||
| |--Bar
|
||||
| | |--docs
|
||||
| | |--examples
|
||||
| | |--src
|
||||
| | |- Bar.c
|
||||
| | |- Bar.h
|
||||
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
|
||||
| |
|
||||
| |--Foo
|
||||
| | |- Foo.c
|
||||
| | |- Foo.h
|
||||
| |
|
||||
| |- README --> THIS FILE
|
||||
|
|
||||
|- platformio.ini
|
||||
|--src
|
||||
|- main.c
|
||||
|
||||
and a contents of `src/main.c`:
|
||||
```
|
||||
#include <Foo.h>
|
||||
#include <Bar.h>
|
||||
|
||||
int main (void)
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
PlatformIO Library Dependency Finder will find automatically dependent
|
||||
libraries scanning project source files.
|
||||
|
||||
More information about PlatformIO Library Dependency Finder
|
||||
- https://docs.platformio.org/page/librarymanager/ldf.html
|
BIN
mini_printer_v1.0.2.zip
Normal file
BIN
mini_printer_v1.0.2.zip
Normal file
Binary file not shown.
BIN
mini_printer_v1.0.3_1.zip
Normal file
BIN
mini_printer_v1.0.3_1.zip
Normal file
Binary file not shown.
17
platformio.ini
Normal file
17
platformio.ini
Normal file
@ -0,0 +1,17 @@
|
||||
; PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[env:esp32dev]
|
||||
platform = espressif32
|
||||
board = esp32dev
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
; monitor_port = COM9
|
||||
; upload_speed = 256000
|
87
src/em_config.h
Normal file
87
src/em_config.h
Normal file
@ -0,0 +1,87 @@
|
||||
#ifndef _EM_CONFIG_H_
|
||||
#define _EM_CONFIG_H_
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#define _FREERTOS_OPEN_
|
||||
|
||||
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" // 自定义打印服务UUID
|
||||
|
||||
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" // 自定义打印特征UUID
|
||||
|
||||
#define BLE_NAME "Mini-Printer"
|
||||
|
||||
//接收完成所有数据才开始打印
|
||||
#define START_PRINTER_WHEN_FINISH_RAED 1
|
||||
|
||||
//按键引脚
|
||||
//34 35 36 39仅可以作为输入INPUT,不支持INPUT_PULLUP
|
||||
#define PIN_KEY 5
|
||||
//缺纸检测引脚
|
||||
#define PIN_PAPER 35
|
||||
//电量相关引脚
|
||||
#define PIN_BATTERY_ADC 34
|
||||
#define PIN_ADC_EN 4
|
||||
//set the resolution to 12 bits (0-4096)
|
||||
#define BATTERY_ADC_BIT 12
|
||||
//热敏电阻
|
||||
#define PIN_TEMPERATRUE 36
|
||||
//蜂鸣器
|
||||
#define PIN_BEEP 18
|
||||
#define PIN_LED 18
|
||||
|
||||
//V3 电机引脚
|
||||
#define PIN_MOTOR_AP 23
|
||||
#define PIN_MOTOR_AM 22
|
||||
#define PIN_MOTOR_BP 21
|
||||
#define PIN_MOTOR_BM 19
|
||||
|
||||
//打印头数据引脚
|
||||
#define PIN_LAT 12
|
||||
#define PIN_SCK 15
|
||||
#define PIN_SDA 13
|
||||
|
||||
//原厂 V3
|
||||
#define PIN_STB1 25
|
||||
#define PIN_STB2 33
|
||||
#define PIN_STB3 32
|
||||
#define PIN_STB4 14
|
||||
#define PIN_STB5 27
|
||||
#define PIN_STB6 26
|
||||
|
||||
//拆机 V2
|
||||
// #define PIN_STB1 14
|
||||
// #define PIN_STB2 27
|
||||
// #define PIN_STB3 26
|
||||
// #define PIN_STB4 25
|
||||
// #define PIN_STB5 33
|
||||
// #define PIN_STB6 32
|
||||
//打印头电源升压控制引脚
|
||||
#define PIN_VHEN 17
|
||||
|
||||
#ifdef _FREERTOS_OPEN_
|
||||
// #define MOTOR_WATI_TIME 4 //ms
|
||||
// #define PRINT_TIME 2 //ms
|
||||
// #define PRINT_END_TIME 2 //ms
|
||||
#define PRINT_TIME 1700 //打印加热时间 5700
|
||||
#define PRINT_END_TIME 200 //冷却时间
|
||||
#define MOTOR_WATI_TIME 4000 //电机一步时间
|
||||
#define LAT_TIME 1 //数据锁存时间
|
||||
#else
|
||||
//打印头电机参数
|
||||
#define PRINT_TIME 1700 //打印加热时间
|
||||
#define PRINT_END_TIME 200 //冷却时间
|
||||
#define MOTOR_WATI_TIME 4000 //电机一步时间
|
||||
#define LAT_TIME 1 //数据锁存时间
|
||||
#endif
|
||||
|
||||
#ifdef _FREERTOS_OPEN_
|
||||
// #define us_delay(ms) vTaskDelay(ms)
|
||||
#define us_delay(ms) delayMicroseconds(ms)
|
||||
#else
|
||||
#define us_delay(ms) delayMicroseconds(ms)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
24
src/em_device.cpp
Normal file
24
src/em_device.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
#include "em_device.h"
|
||||
|
||||
device_state_t g_device_state;
|
||||
|
||||
device_state_t * get_device_state(){
|
||||
return &g_device_state;
|
||||
}
|
||||
|
||||
void set_device_paper_status(paper_state_e status){
|
||||
g_device_state.paper_state = status;
|
||||
}
|
||||
|
||||
void set_read_ble_finish(bool finish){
|
||||
g_device_state.read_ble_finish = finish;
|
||||
}
|
||||
|
||||
void init_device_state(){
|
||||
memset(&g_device_state,0,sizeof(device_state_t));
|
||||
g_device_state.printer_state = PRINTER_STATUS_INIT;
|
||||
g_device_state.battery = 100;
|
||||
g_device_state.temperature = 30;
|
||||
g_device_state.paper_state = PAPER_STATUS_NORMAL;
|
||||
g_device_state.read_ble_finish = false;
|
||||
}
|
35
src/em_device.h
Normal file
35
src/em_device.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef _EM_DEVICE_H_
|
||||
#define _EM_DEVICE_H_
|
||||
|
||||
#include "em_config.h"
|
||||
|
||||
typedef enum{
|
||||
PRINTER_STATUS_INIT = 0,
|
||||
PRINTER_STATUS_START,
|
||||
PRINTER_STATUS_WORKING,
|
||||
PRINTER_STATUS_FINISH,
|
||||
}printer_state_e;
|
||||
|
||||
typedef enum{
|
||||
PAPER_STATUS_NORMAL = 0,
|
||||
PAPER_STATUS_LACK,
|
||||
}paper_state_e;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t battery;
|
||||
uint8_t temperature;
|
||||
paper_state_e paper_state;
|
||||
printer_state_e printer_state;
|
||||
bool read_ble_finish;
|
||||
}device_state_t;
|
||||
|
||||
void init_device_state();
|
||||
|
||||
device_state_t * get_device_state();
|
||||
|
||||
void set_read_ble_finish(bool finish);
|
||||
|
||||
void set_device_paper_status(paper_state_e status);
|
||||
|
||||
#endif
|
202
src/em_task.cpp
Normal file
202
src/em_task.cpp
Normal file
@ -0,0 +1,202 @@
|
||||
#include "em_task.h"
|
||||
#include "hal/em_button.h"
|
||||
#include "hal/em_motor.h"
|
||||
#include "hal/em_printer.h"
|
||||
#include "hal/em_adc.h"
|
||||
|
||||
Button_t Button;
|
||||
bool printer_test = false;
|
||||
|
||||
void Btn_Dowm_CallBack(void *btn)
|
||||
{
|
||||
Serial.print("Button 单击!");
|
||||
printer_test = true;
|
||||
// read_all_hal();
|
||||
}
|
||||
|
||||
void Btn_Double_CallBack(void *btn)
|
||||
{
|
||||
Serial.print("Button 双击!");
|
||||
}
|
||||
|
||||
void Btn_Long_CallBack(void *btn)
|
||||
{
|
||||
Serial.print("Button 长按!");
|
||||
device_state_t *pdevice = get_device_state();
|
||||
bool need_beep = false;
|
||||
// 不缺纸且不在打印中才执行
|
||||
if (pdevice->paper_state == PAPER_STATUS_NORMAL)
|
||||
{
|
||||
if (pdevice->printer_state == PRINTER_STATUS_FINISH ||
|
||||
pdevice->printer_state == PRINTER_STATUS_INIT)
|
||||
{
|
||||
Serial.print("开始走纸\n");
|
||||
motor_start();
|
||||
}
|
||||
else
|
||||
{
|
||||
need_beep = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
need_beep = true;
|
||||
if (need_beep)
|
||||
{
|
||||
run_beep(BEEP_WARN);
|
||||
run_led(LED_WARN);
|
||||
}
|
||||
}
|
||||
|
||||
void Btn_Logn_Free_CallBack(void *btn)
|
||||
{
|
||||
Serial.print("停止走纸\n");
|
||||
motor_stop();
|
||||
}
|
||||
|
||||
uint8_t Read_Button_Level(void)
|
||||
{
|
||||
return digitalRead(PIN_KEY);
|
||||
}
|
||||
|
||||
void init_key()
|
||||
{
|
||||
Button_Create("Button", // 按键名字
|
||||
&Button, // 按键句柄
|
||||
Read_Button_Level, // 按键电平检测函数接口
|
||||
LOW); // 触发电平
|
||||
Button_Attach(&Button, BUTTON_DOWM, Btn_Dowm_CallBack); // 按键单击
|
||||
Button_Attach(&Button, BUTTON_DOUBLE, Btn_Double_CallBack); // 双击
|
||||
Button_Attach(&Button, BUTTON_LONG, Btn_Long_CallBack); // 长按
|
||||
Button_Attach(&Button, BUTTON_LONG_FREE, Btn_Logn_Free_CallBack); // 长按释放
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 处理上报相关事件
|
||||
*
|
||||
*/
|
||||
void run_report()
|
||||
{
|
||||
if (get_state_timeout())
|
||||
{
|
||||
clean_state_timeout();
|
||||
read_all_hal();
|
||||
if (get_ble_connect())
|
||||
{
|
||||
Serial.print("report device status : report time up\n");
|
||||
ble_report();
|
||||
}
|
||||
}
|
||||
if (read_paper_irq_need_report_status())
|
||||
{
|
||||
// 缺纸中断产生,需要上报
|
||||
Serial.print("report device status : paper irq\n");
|
||||
ble_report();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 处理打印相关事件
|
||||
*
|
||||
*/
|
||||
void run_printer()
|
||||
{
|
||||
device_state_t *pdevice = get_device_state();
|
||||
#ifdef START_PRINTER_WHEN_FINISH_RAED
|
||||
if (pdevice->read_ble_finish == true)
|
||||
{
|
||||
if (pdevice->printer_state == PRINTER_STATUS_FINISH ||
|
||||
pdevice->printer_state == PRINTER_STATUS_INIT)
|
||||
{
|
||||
pdevice->read_ble_finish = false;
|
||||
pdevice->printer_state = PRINTER_STATUS_START;
|
||||
ble_report();
|
||||
Serial.printf("report device status : printing start %d\n",get_ble_rx_leftline());
|
||||
run_beep(BEEP_PRINTER_START);
|
||||
run_led(LED_PRINTER_START);
|
||||
}
|
||||
}
|
||||
#else
|
||||
// 接收大于100条时,才触发开始打印
|
||||
if (get_ble_rx_leftline()> 100)
|
||||
{
|
||||
if (pdevice->printer_state == PRINTER_STATUS_FINISH ||
|
||||
pdevice->printer_state == PRINTER_STATUS_INIT)
|
||||
{
|
||||
pdevice->printer_state = PRINTER_STATUS_START;
|
||||
ble_report();
|
||||
Serial.print("report device status : printing start\n");
|
||||
run_beep(BEEP_PRINTER_START);
|
||||
run_led(LED_PRINTER_START);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
// 开始打印
|
||||
if (pdevice->printer_state == PRINTER_STATUS_START)
|
||||
{
|
||||
// 正常打印
|
||||
start_printing_by_queuebuf();
|
||||
pdevice->printer_state = PRINTER_STATUS_FINISH;
|
||||
}
|
||||
}
|
||||
|
||||
void task_report(void *pvParameters)
|
||||
{
|
||||
for (;;) // A Task shall never return or exit.
|
||||
{
|
||||
run_report();
|
||||
vTaskDelay(100);
|
||||
}
|
||||
}
|
||||
|
||||
void task_button(void *pvParameters)
|
||||
{
|
||||
for (;;) // A Task shall never return or exit.
|
||||
{
|
||||
Button_Process(); // 需要周期调用按键处理函数
|
||||
vTaskDelay(20);
|
||||
}
|
||||
}
|
||||
|
||||
void printer_run(){
|
||||
for (;;) // A Task shall never return or exit.
|
||||
{
|
||||
run_printer();
|
||||
// vTaskDelay(10);
|
||||
if(printer_test){
|
||||
printer_test = false;
|
||||
testSTB();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void init_task()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.print("init_task\n");
|
||||
Serial.print("--mini printer V1.0.2--\n");
|
||||
init_device_state();
|
||||
init_timer();
|
||||
init_hal();
|
||||
init_queue();
|
||||
adc_init();
|
||||
init_ble();
|
||||
init_key();
|
||||
init_printer();
|
||||
xTaskCreate(
|
||||
task_report, // 任务函数
|
||||
"TaskReport", // 任务名
|
||||
1024*10, // 任务栈
|
||||
NULL, // 任务参数
|
||||
1, // 任务优先级, with 3 (configMAX_PRIORITIES - 1) 是最高的,0是最低的.
|
||||
NULL // 任务句柄
|
||||
);
|
||||
|
||||
xTaskCreate(
|
||||
task_button, // 任务函数
|
||||
"TaskButton", // 任务名
|
||||
1024*5, // 任务栈
|
||||
NULL, // 任务参数
|
||||
0, // 任务优先级, with 3 (configMAX_PRIORITIES - 1) 是最高的,0是最低的.
|
||||
NULL // 任务句柄
|
||||
);
|
||||
}
|
14
src/em_task.h
Normal file
14
src/em_task.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef _EM_TASK_H_
|
||||
#define _EM_TASK_H_
|
||||
|
||||
#include "em_config.h"
|
||||
#include "em_device.h"
|
||||
#include "hal/em_timer.h"
|
||||
#include "hal/em_ble.h"
|
||||
#include "hal/em_hal.h"
|
||||
#include "utils/em_queue.h"
|
||||
|
||||
void init_task();
|
||||
void printer_run();
|
||||
|
||||
#endif
|
114
src/hal/em_adc.cpp
Normal file
114
src/hal/em_adc.cpp
Normal file
@ -0,0 +1,114 @@
|
||||
#include "em_config.h"
|
||||
|
||||
|
||||
|
||||
void adc_init() {
|
||||
pinMode(PIN_ADC_EN, OUTPUT);
|
||||
analogReadResolution(BATTERY_ADC_BIT);
|
||||
digitalWrite(PIN_ADC_EN, HIGH);
|
||||
}
|
||||
|
||||
void adc_test() {
|
||||
// read the analog / millivolts value for pin 2:
|
||||
int analogValue = analogRead(PIN_BATTERY_ADC);
|
||||
int analogVolts = analogReadMilliVolts(PIN_BATTERY_ADC);
|
||||
// print out the values you read:
|
||||
Serial.printf("ADC analog value = %d\n",analogValue);
|
||||
Serial.printf("ADC millivolts value = %d\n",analogVolts);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 获取ADC引脚电压值,可根据需要加入滤波算法
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
int get_adc_volts(){
|
||||
// int analogValue = analogRead(PIN_BATTERY_ADC);
|
||||
// Serial.printf("ADC analog value = %d volts = %d\n",analogValue,analogValue*2.6/4095.0);
|
||||
int analogVolts = analogReadMilliVolts(PIN_BATTERY_ADC);
|
||||
Serial.printf("ADC millivolts value = %d\n",analogVolts);
|
||||
return analogVolts;
|
||||
}
|
||||
|
||||
/**
|
||||
公式法:
|
||||
NTC 热敏电阻温度计算公式:Rt = Rp *EXP(B*(1/T1-1/T2))
|
||||
可以得到温度T1与电阻Rt的关系T1=1/(log(Rt/Rp)/B+1/T2)
|
||||
|
||||
T1和T2指的是K度,即开尔文温度,K度=273.15(绝对温度)+摄氏度。
|
||||
T2=(273.15+25)
|
||||
Rt 是热敏电阻在T1温度下的阻值。
|
||||
Rp 是热敏电阻在T2常温下的标称阻值。100K的热敏电阻25℃的值为100K(即R=100K)。T2=(273.15+25)
|
||||
B值是热敏电阻的重要参数 B25/50= 3950K ±1%
|
||||
最终对应的摄氏温度t=T1-273.15,同时+0.5的误差矫正。
|
||||
|
||||
查表法:
|
||||
ADC采样率8位 串联电阻R1=10K R2=热敏电阻 电压3.3V
|
||||
已知
|
||||
Rt = R*(3.3-VR)/VR
|
||||
VR = 3.3*ADC_Value/1024
|
||||
得出
|
||||
ADC_Value = VR*4096/3.3 =3.3*R/(Rt+R)*4096/3.3 = R/(Rt+R)*1024
|
||||
ADC_Value=3.3/(C5+10)*10/3.3*1023
|
||||
如果需要用到小数点后面的温度,正确的方法是使用公式RT=R0*exp(B (1/T-1/T0))在excel中计算得到步进值为0.1℃的温度表
|
||||
Rt=100*exp(3950*(1/(273.15+T1)-1/(273.15+25)))
|
||||
Rt=100*EXP(3990*(1/(273.15+T1)-1/(273.15+25)))
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief 阻值转换温度
|
||||
*
|
||||
* @param Rt 热敏电阻阻值
|
||||
* @return float 返回摄氏度温度
|
||||
*/
|
||||
float em_temp_calculate(float Rt)
|
||||
{
|
||||
float Rp = 30000; // 30k
|
||||
float T2 = 273.15 + 25;
|
||||
float Bx = 3950; // B值
|
||||
float Ka = 273.15;
|
||||
float temp = 0.0f;
|
||||
|
||||
temp = 1 / (log(Rt / Rp) / Bx + 1 / T2) - Ka + 0.5;
|
||||
return temp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the adc temperatrue object
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
float get_adc_temperatrue(){
|
||||
float temp = 0.0f;
|
||||
float Rt=0;
|
||||
float vol=0;
|
||||
//ADC转换为电压 vol=AD/4096*VCC
|
||||
// vol=(float)((analogRead(PIN_TEMPERATRUE))*(3.3/4096));
|
||||
// vol=(float)((analogRead(PIN_TEMPERATRUE))*(3900.0/4095.0));
|
||||
// Serial.printf("ADC temperatrue analog value = %f %d\n",vol,analogRead(PIN_TEMPERATRUE));
|
||||
vol = analogReadMilliVolts(PIN_TEMPERATRUE)/1000.0;
|
||||
Serial.printf("ADC temperatrue analog value = %f\n",vol);
|
||||
//电压转换为阻值 10k vol/VCC=Rt/(R+Rt) vol/3.3=Rt/(10000+Rt)
|
||||
Rt=(vol*10000)/(3.3-vol);
|
||||
Serial.printf("ADC temperatrue Rt = %f\n",Rt);
|
||||
temp = em_temp_calculate(Rt);
|
||||
return temp;
|
||||
}
|
||||
|
||||
void em_adc_test(){
|
||||
float Rt=0;
|
||||
float vol=3.0f;
|
||||
Rt=(vol*10000)/(3.3-vol);
|
||||
Serial.printf("Rt = %f\n",Rt);
|
||||
|
||||
Rt = 60000; //60k 10°C
|
||||
float temp = 0.0f;
|
||||
temp = em_temp_calculate(Rt);
|
||||
Serial.printf("temp = %f\n",temp);
|
||||
|
||||
if(temp >= 1e-7){
|
||||
Serial.printf("正\n");
|
||||
}else{
|
||||
Serial.printf("负\n");
|
||||
}
|
||||
}
|
12
src/hal/em_adc.h
Normal file
12
src/hal/em_adc.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _EM_ADC_H_
|
||||
#define _EM_ADC_H_
|
||||
|
||||
void adc_init();
|
||||
|
||||
int get_adc_volts();
|
||||
|
||||
void em_adc_test();
|
||||
|
||||
float get_adc_temperatrue();
|
||||
|
||||
#endif
|
114
src/hal/em_ble.cpp
Normal file
114
src/hal/em_ble.cpp
Normal file
@ -0,0 +1,114 @@
|
||||
#include "em_ble.h"
|
||||
#include "em_printer.h"
|
||||
|
||||
BLECharacteristic *pCharacteristic = NULL;
|
||||
bool bleConnected = false;
|
||||
uint32_t packcount = 0;
|
||||
|
||||
void clean_blepack_count(){
|
||||
packcount = 0;
|
||||
}
|
||||
|
||||
uint32_t get_blepack_count(){
|
||||
return packcount;
|
||||
}
|
||||
|
||||
bool get_ble_connect(){
|
||||
return bleConnected;
|
||||
}
|
||||
|
||||
void ble_report(){
|
||||
if (get_ble_connect()){
|
||||
device_state_t *pdevice = get_device_state();
|
||||
uint8_t status[4];
|
||||
status[0] = pdevice->battery;
|
||||
status[1] = pdevice->temperature;
|
||||
status[2] = pdevice->paper_state;
|
||||
status[3] = pdevice->printer_state;
|
||||
pCharacteristic->setValue((uint8_t*)&status,sizeof(status));
|
||||
pCharacteristic->notify();
|
||||
}
|
||||
}
|
||||
|
||||
// Server回调函数声明
|
||||
class bleServerCallbacks : public BLEServerCallbacks
|
||||
{
|
||||
void onConnect(BLEServer *pServer)
|
||||
{
|
||||
bleConnected = true;
|
||||
packcount = 0;
|
||||
Serial.println("现在有设备接入~");
|
||||
run_beep(BEEP_CONNECT);
|
||||
run_led(LED_CONNECT);
|
||||
}
|
||||
|
||||
void onDisconnect(BLEServer *pServer)
|
||||
{
|
||||
bleConnected = false;
|
||||
Serial.println("现在有设备断开连接~");
|
||||
// 在有设备接入后Advertising广播会被停止,所以要在设备断开连接时重新开启广播
|
||||
// 不然的话只有重启ESP32后才能重新搜索到
|
||||
pServer->startAdvertising(); // 该行效果同 BLEDevice::startAdvertising();
|
||||
}
|
||||
};
|
||||
|
||||
class bleCharacteristicCallbacks : public BLECharacteristicCallbacks
|
||||
{
|
||||
void onRead(BLECharacteristic *pCharacteristic)
|
||||
{ // 客户端读取事件回调函数
|
||||
Serial.println("触发读取事件");
|
||||
}
|
||||
|
||||
void onWrite(BLECharacteristic *pCharacteristic)
|
||||
{ // 客户端写入事件回调函数
|
||||
size_t length = pCharacteristic->getLength();
|
||||
uint8_t *pdata = pCharacteristic->getData();
|
||||
if(length == 5){
|
||||
if(pdata[0] == 0xA5 && pdata[1] == 0xA5 && pdata[2] == 0xA5 && pdata[3] == 0xA5){
|
||||
if(pdata[4] == 1){
|
||||
set_heat_density(30);
|
||||
}else if(pdata[4] == 2){
|
||||
set_heat_density(60);
|
||||
}else{
|
||||
set_heat_density(100);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(pdata[0] == 0xA6 && pdata[1] == 0xA6 && pdata[2] == 0xA6 && pdata[3] == 0xA6){
|
||||
set_read_ble_finish(true);
|
||||
Serial.printf("接收打印数据完成,总行数=%d\n",packcount);
|
||||
}
|
||||
}
|
||||
packcount++;
|
||||
write_to_printbuffer(pdata,length);
|
||||
Serial.printf("触发写入事件 length=%d count=%d ", length, packcount);
|
||||
for (int index = 0; index < length; index++)
|
||||
{
|
||||
Serial.printf(" %x", pdata[index]);
|
||||
}
|
||||
Serial.printf("\n");
|
||||
}
|
||||
};
|
||||
|
||||
void init_ble()
|
||||
{
|
||||
BLEDevice::init(BLE_NAME); // 填写自身对外显示的蓝牙设备名称,并初始化蓝牙功能
|
||||
BLEDevice::startAdvertising(); // 开启Advertising广播
|
||||
|
||||
BLEServer *pServer = BLEDevice::createServer(); // 创建服务器
|
||||
pServer->setCallbacks(new bleServerCallbacks()); // 绑定回调函数
|
||||
|
||||
BLEService *pService = pServer->createService(SERVICE_UUID); // 创建服务
|
||||
pCharacteristic = pService->createCharacteristic( // 创建特征
|
||||
CHARACTERISTIC_UUID,
|
||||
BLECharacteristic::PROPERTY_READ |
|
||||
BLECharacteristic::PROPERTY_NOTIFY |
|
||||
BLECharacteristic::PROPERTY_WRITE |
|
||||
BLECharacteristic::PROPERTY_WRITE_NR);
|
||||
// 如果客户端连上设备后没有任何写入的情况下第一次读取到的数据应该是这里设置的值
|
||||
pCharacteristic->setCallbacks(new bleCharacteristicCallbacks());
|
||||
pCharacteristic->addDescriptor(new BLE2902()); // 添加描述
|
||||
pService->start(); // 启动服务
|
||||
BLEDevice::startAdvertising();
|
||||
}
|
||||
|
44
src/hal/em_ble.h
Normal file
44
src/hal/em_ble.h
Normal file
@ -0,0 +1,44 @@
|
||||
#ifndef _EM_BLE_H_
|
||||
#define _EM_BLE_H_
|
||||
|
||||
#include <BLEDevice.h>
|
||||
#include <BLE2902.h>
|
||||
|
||||
#include "em_config.h"
|
||||
#include "em_device.h"
|
||||
#include "em_hal.h"
|
||||
#include "utils/em_queue.h"
|
||||
|
||||
/**
|
||||
* @brief 初始化BLE
|
||||
*
|
||||
*/
|
||||
void init_ble();
|
||||
|
||||
/**
|
||||
* @brief 清空接收包统计
|
||||
*
|
||||
*/
|
||||
void clean_blepack_count();
|
||||
|
||||
/**
|
||||
* 获取接收行数
|
||||
*/
|
||||
uint32_t get_blepack_count();
|
||||
|
||||
/**
|
||||
* @brief Get the ble connect object
|
||||
*
|
||||
* @return true
|
||||
* @return false
|
||||
*/
|
||||
bool get_ble_connect();
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
*/
|
||||
void ble_report();
|
||||
|
||||
|
||||
#endif
|
486
src/hal/em_button.cpp
Normal file
486
src/hal/em_button.cpp
Normal file
@ -0,0 +1,486 @@
|
||||
#include "em_button.h"
|
||||
|
||||
/*******************************************************************
|
||||
* 变量声明
|
||||
*******************************************************************/
|
||||
|
||||
static struct button *Head_Button = NULL;
|
||||
|
||||
/*******************************************************************
|
||||
* 函数声明
|
||||
*******************************************************************/
|
||||
static char *StrnCopy(char *dst, const char *src, uint32_t n);
|
||||
static void Print_Btn_Info(Button_t *btn);
|
||||
static void Add_Button(Button_t *btn);
|
||||
|
||||
/************************************************************
|
||||
* @brief 按键创建
|
||||
* @param name : 按键名称
|
||||
* @param btn : 按键结构体
|
||||
* @param read_btn_level : 按键电平读取函数,需要用户自己实现返回uint8_t类型的电平
|
||||
* @param btn_trigger_level : 按键触发电平
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
void Button_Create(const char *name,
|
||||
Button_t *btn,
|
||||
uint8_t (*read_btn_level)(void),
|
||||
uint8_t btn_trigger_level)
|
||||
{
|
||||
if (btn == NULL)
|
||||
{
|
||||
Serial.print("struct button is null!");
|
||||
return;
|
||||
}
|
||||
|
||||
memset(btn, 0, sizeof(struct button)); // 清除结构体信息,建议用户在之前清除
|
||||
|
||||
StrnCopy(btn->Name, name, BTN_NAME_MAX); /* 创建按键名称 */
|
||||
|
||||
btn->Button_State = NONE_TRIGGER; // 按键状态
|
||||
btn->Button_Last_State = NONE_TRIGGER; // 按键上一次状态
|
||||
btn->Button_Trigger_Event = NONE_TRIGGER; // 按键触发事件
|
||||
btn->Read_Button_Level = read_btn_level; // 按键读电平函数
|
||||
btn->Button_Trigger_Level = btn_trigger_level; // 按键触发电平
|
||||
btn->Button_Last_Level = btn->Read_Button_Level(); // 按键当前电平
|
||||
btn->Debounce_Time = 0;
|
||||
|
||||
// Serial.print("button create success!");
|
||||
|
||||
Add_Button(btn); // 创建的时候添加到单链表中
|
||||
|
||||
// Print_Btn_Info(btn); // 打印信息
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 按键触发事件与回调函数映射链接起来
|
||||
* @param btn : 按键结构体
|
||||
* @param btn_event : 按键触发事件
|
||||
* @param btn_callback : 按键触发之后的回调处理函数。需要用户实现
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
***********************************************************/
|
||||
void Button_Attach(Button_t *btn, Button_Event btn_event, Button_CallBack btn_callback)
|
||||
{
|
||||
if (btn == NULL)
|
||||
{
|
||||
Serial.print("struct button is null!");
|
||||
// ASSERT(ASSERT_ERR); //断言
|
||||
}
|
||||
|
||||
if (BUTTON_ALL_RIGGER == btn_event)
|
||||
{
|
||||
for (uint8_t i = 0; i < number_of_event - 1; i++)
|
||||
btn->CallBack_Function[i] = btn_callback; // 按键事件触发的回调函数,用于处理按键事件
|
||||
}
|
||||
else
|
||||
{
|
||||
btn->CallBack_Function[btn_event] = btn_callback; // 按键事件触发的回调函数,用于处理按键事件
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 删除一个已经创建的按键
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
void Button_Delete(Button_t *btn)
|
||||
{
|
||||
struct button **curr;
|
||||
for (curr = &Head_Button; *curr;)
|
||||
{
|
||||
struct button *entry = *curr;
|
||||
if (entry == btn)
|
||||
{
|
||||
*curr = entry->Next;
|
||||
}
|
||||
else
|
||||
{
|
||||
curr = &entry->Next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 获取按键触发的事件
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
***********************************************************/
|
||||
void Get_Button_EventInfo(Button_t *btn)
|
||||
{
|
||||
// 按键事件触发的回调函数,用于处理按键事件
|
||||
for (uint8_t i = 0; i < number_of_event - 1; i++)
|
||||
{
|
||||
if (btn->CallBack_Function[i] != 0)
|
||||
{
|
||||
Serial.printf("Button_Event:%d", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t Get_Button_Event(Button_t *btn)
|
||||
{
|
||||
return (uint8_t)(btn->Button_Trigger_Event);
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 获取按键触发的事件
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
***********************************************************/
|
||||
uint8_t Get_Button_State(Button_t *btn)
|
||||
{
|
||||
return (uint8_t)(btn->Button_State);
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 按键周期处理函数
|
||||
* @param btn:处理的按键
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note 必须以一定周期调用此函数,建议周期为20~50ms
|
||||
***********************************************************/
|
||||
void Button_Cycle_Process(Button_t *btn)
|
||||
{
|
||||
uint8_t current_level = (uint8_t)btn->Read_Button_Level(); // 获取当前按键电平
|
||||
|
||||
if ((current_level != btn->Button_Last_Level) && (++(btn->Debounce_Time) >= BUTTON_DEBOUNCE_TIME)) // 按键电平发生变化,消抖
|
||||
{
|
||||
btn->Button_Last_Level = current_level; // 更新当前按键电平
|
||||
btn->Debounce_Time = 0; // 确定了是按下
|
||||
|
||||
// 如果按键是没被按下的,改变按键状态为按下(首次按下/双击按下)
|
||||
if ((btn->Button_State == NONE_TRIGGER) || (btn->Button_State == BUTTON_DOUBLE))
|
||||
{
|
||||
btn->Button_State = BUTTON_DOWM;
|
||||
}
|
||||
// 释放按键
|
||||
else if (btn->Button_State == BUTTON_DOWM)
|
||||
{
|
||||
btn->Button_State = BUTTON_UP;
|
||||
TRIGGER_CB(BUTTON_UP); // 触发释放
|
||||
Serial.print("释放了按键");
|
||||
}
|
||||
}
|
||||
|
||||
switch (btn->Button_State)
|
||||
{
|
||||
case BUTTON_DOWM: // 按下状态
|
||||
{
|
||||
if (btn->Button_Last_Level == btn->Button_Trigger_Level) // 按键按下
|
||||
{
|
||||
#if CONTINUOS_TRIGGER // 支持连续触发
|
||||
|
||||
if (++(btn->Button_Cycle) >= BUTTON_CONTINUOS_CYCLE)
|
||||
{
|
||||
btn->Button_Cycle = 0;
|
||||
btn->Button_Trigger_Event = BUTTON_CONTINUOS;
|
||||
TRIGGER_CB(BUTTON_CONTINUOS); // 连按
|
||||
Serial.print("连按");
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
btn->Button_Trigger_Event = BUTTON_DOWM;
|
||||
|
||||
if (++(btn->Long_Time) >= BUTTON_LONG_TIME) // 释放按键前更新触发事件为长按
|
||||
{
|
||||
#if LONG_FREE_TRIGGER
|
||||
|
||||
btn->Button_Trigger_Event = BUTTON_LONG;
|
||||
|
||||
#else
|
||||
|
||||
if (++(btn->Button_Cycle) >= BUTTON_LONG_CYCLE) // 连续触发长按的周期
|
||||
{
|
||||
btn->Button_Cycle = 0;
|
||||
btn->Button_Trigger_Event = BUTTON_LONG;
|
||||
TRIGGER_CB(BUTTON_LONG); // 长按
|
||||
}
|
||||
#endif
|
||||
|
||||
if (btn->Long_Time == 0xFF) // 更新时间溢出
|
||||
{
|
||||
btn->Long_Time = BUTTON_LONG_TIME;
|
||||
}
|
||||
Serial.print("长按");
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_UP: // 弹起状态
|
||||
{
|
||||
if (btn->Button_Trigger_Event == BUTTON_DOWM) // 触发单击
|
||||
{
|
||||
if ((btn->Timer_Count <= BUTTON_DOUBLE_TIME) && (btn->Button_Last_State == BUTTON_DOUBLE)) // 双击
|
||||
{
|
||||
btn->Button_Trigger_Event = BUTTON_DOUBLE;
|
||||
TRIGGER_CB(BUTTON_DOUBLE);
|
||||
Serial.print("双击");
|
||||
btn->Button_State = NONE_TRIGGER;
|
||||
btn->Button_Last_State = NONE_TRIGGER;
|
||||
}
|
||||
else
|
||||
{
|
||||
btn->Timer_Count = 0;
|
||||
btn->Long_Time = 0; // 检测长按失败,清0
|
||||
|
||||
#if (SINGLE_AND_DOUBLE_TRIGGER == 0)
|
||||
TRIGGER_CB(BUTTON_DOWM); // 单击
|
||||
#endif
|
||||
btn->Button_State = BUTTON_DOUBLE;
|
||||
btn->Button_Last_State = BUTTON_DOUBLE;
|
||||
}
|
||||
}
|
||||
|
||||
else if (btn->Button_Trigger_Event == BUTTON_LONG)
|
||||
{
|
||||
#if LONG_FREE_TRIGGER
|
||||
TRIGGER_CB(BUTTON_LONG); // 长按
|
||||
#else
|
||||
TRIGGER_CB(BUTTON_LONG_FREE); // 长按释放
|
||||
#endif
|
||||
btn->Long_Time = 0;
|
||||
btn->Button_State = NONE_TRIGGER;
|
||||
btn->Button_Last_State = BUTTON_LONG;
|
||||
}
|
||||
|
||||
#if CONTINUOS_TRIGGER
|
||||
else if (btn->Button_Trigger_Event == BUTTON_CONTINUOS) // 连按
|
||||
{
|
||||
btn->Long_Time = 0;
|
||||
TRIGGER_CB(BUTTON_CONTINUOS_FREE); // 连发释放
|
||||
btn->Button_State = NONE_TRIGGER;
|
||||
btn->Button_Last_State = BUTTON_CONTINUOS;
|
||||
}
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_DOUBLE:
|
||||
{
|
||||
btn->Timer_Count++; // 时间记录
|
||||
if (btn->Timer_Count >= BUTTON_DOUBLE_TIME)
|
||||
{
|
||||
btn->Button_State = NONE_TRIGGER;
|
||||
btn->Button_Last_State = NONE_TRIGGER;
|
||||
}
|
||||
#if SINGLE_AND_DOUBLE_TRIGGER
|
||||
|
||||
if ((btn->Timer_Count >= BUTTON_DOUBLE_TIME) && (btn->Button_Last_State != BUTTON_DOWM))
|
||||
{
|
||||
btn->Timer_Count = 0;
|
||||
TRIGGER_CB(BUTTON_DOWM); // 单击
|
||||
btn->Button_State = NONE_TRIGGER;
|
||||
btn->Button_Last_State = BUTTON_DOWM;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 遍历的方式扫描按键,不会丢失每个按键
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note 此函数要周期调用,建议20-50ms调用一次
|
||||
***********************************************************/
|
||||
void Button_Process(void)
|
||||
{
|
||||
struct button *pass_btn;
|
||||
for (pass_btn = Head_Button; pass_btn != NULL; pass_btn = pass_btn->Next)
|
||||
{
|
||||
Button_Cycle_Process(pass_btn);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 遍历按键
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
void Search_Button(void)
|
||||
{
|
||||
struct button *pass_btn;
|
||||
for (pass_btn = Head_Button; pass_btn != NULL; pass_btn = pass_btn->Next)
|
||||
{
|
||||
Serial.printf("button node have %s", pass_btn->Name);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 处理所有按键回调函数
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note 暂不实现
|
||||
***********************************************************/
|
||||
void Button_Process_CallBack(void *btn)
|
||||
{
|
||||
uint8_t btn_event = Get_Button_Event((Button_t *)btn);
|
||||
|
||||
switch (btn_event)
|
||||
{
|
||||
case BUTTON_DOWM:
|
||||
{
|
||||
Serial.print("添加你的按下触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_UP:
|
||||
{
|
||||
Serial.print("添加你的释放触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_DOUBLE:
|
||||
{
|
||||
Serial.print("添加你的双击触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_LONG:
|
||||
{
|
||||
Serial.print("添加你的长按触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_LONG_FREE:
|
||||
{
|
||||
Serial.print("添加你的长按释放触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_CONTINUOS:
|
||||
{
|
||||
Serial.print("添加你的连续触发的处理逻辑");
|
||||
break;
|
||||
}
|
||||
|
||||
case BUTTON_CONTINUOS_FREE:
|
||||
{
|
||||
Serial.print("添加你的连续触发释放的处理逻辑");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**************************** 以下是内部调用函数 ********************/
|
||||
|
||||
/************************************************************
|
||||
* @brief 拷贝指定长度字符串
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
static char *StrnCopy(char *dst, const char *src, uint32_t n)
|
||||
{
|
||||
if (n != 0)
|
||||
{
|
||||
char *d = dst;
|
||||
const char *s = src;
|
||||
do
|
||||
{
|
||||
if ((*d++ = *s++) == 0)
|
||||
{
|
||||
while (--n != 0)
|
||||
*d++ = 0;
|
||||
break;
|
||||
}
|
||||
} while (--n != 0);
|
||||
}
|
||||
return (dst);
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
* @brief 打印按键相关信息
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
static void Print_Btn_Info(Button_t *btn)
|
||||
{
|
||||
|
||||
Serial.printf("button struct information:\n\
|
||||
btn->Name:%s \n\
|
||||
btn->Button_State:%d \n\
|
||||
btn->Button_Trigger_Event:%d \n\
|
||||
btn->Button_Trigger_Level:%d \n\
|
||||
btn->Button_Last_Level:%d \n\
|
||||
",
|
||||
btn->Name,
|
||||
btn->Button_State,
|
||||
btn->Button_Trigger_Event,
|
||||
btn->Button_Trigger_Level,
|
||||
btn->Button_Last_Level);
|
||||
Search_Button();
|
||||
}
|
||||
/************************************************************
|
||||
* @brief 使用单链表将按键连接起来
|
||||
* @param NULL
|
||||
* @return NULL
|
||||
* @author jiejie
|
||||
* @github https://github.com/jiejieTop
|
||||
* @date 2018-xx-xx
|
||||
* @version v1.0
|
||||
* @note NULL
|
||||
***********************************************************/
|
||||
static void Add_Button(Button_t *btn)
|
||||
{
|
||||
btn->Next = Head_Button;
|
||||
Head_Button = btn;
|
||||
}
|
105
src/hal/em_button.h
Normal file
105
src/hal/em_button.h
Normal file
@ -0,0 +1,105 @@
|
||||
#ifndef _EM_KEY_H_
|
||||
#define _EM_KEY_H_
|
||||
|
||||
#include "em_config.h"
|
||||
|
||||
#define BTN_NAME_MAX 32 //名字最大为32字节
|
||||
|
||||
/* 按键消抖时间40ms, 建议调用周期为20ms
|
||||
只有连续检测到40ms状态不变才认为有效,包括弹起和按下两种事件
|
||||
*/
|
||||
|
||||
#define CONTINUOS_TRIGGER 0 //是否支持连续触发,连发的话就不要检测单双击与长按了
|
||||
|
||||
/* 是否支持单击&双击同时存在触发,如果选择开启宏定义的话,单双击都回调,只不过单击会延迟响应,
|
||||
因为必须判断单击之后是否触发了双击否则,延迟时间是双击间隔时间 BUTTON_DOUBLE_TIME。
|
||||
而如果不开启这个宏定义,建议工程中只存在单击/双击中的一个,否则,在双击响应的时候会触发一次单击,
|
||||
因为双击必须是有一次按下并且释放之后才产生的 */
|
||||
#define SINGLE_AND_DOUBLE_TRIGGER 1
|
||||
|
||||
/* 是否支持长按释放才触发,如果打开这个宏定义,那么长按释放之后才触发单次长按,
|
||||
否则在长按指定时间就一直触发长按,触发周期由 BUTTON_LONG_CYCLE 决定 */
|
||||
#define LONG_FREE_TRIGGER 0
|
||||
|
||||
#define BUTTON_DEBOUNCE_TIME 2 //消抖时间 (n-1)*调用周期
|
||||
#define BUTTON_CONTINUOS_CYCLE 1 //连按触发周期时间 (n-1)*调用周期
|
||||
#define BUTTON_LONG_CYCLE 1 //长按触发周期时间 (n-1)*调用周期
|
||||
#define BUTTON_DOUBLE_TIME 15 //双击间隔时间 (n-1)*调用周期 建议在200-600ms
|
||||
#define BUTTON_LONG_TIME 50 /* 持续n秒((n-1)*调用周期 ms),认为长按事件 */
|
||||
|
||||
#define TRIGGER_CB(event) \
|
||||
if(btn->CallBack_Function[event]) \
|
||||
btn->CallBack_Function[event]((Button_t*)btn)
|
||||
|
||||
typedef void (*Button_CallBack)(void*); /* 按键触发回调函数,需要用户实现 */
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
BUTTON_DOWM = 0,
|
||||
BUTTON_UP,
|
||||
BUTTON_DOUBLE,
|
||||
BUTTON_LONG,
|
||||
BUTTON_LONG_FREE,
|
||||
BUTTON_CONTINUOS,
|
||||
BUTTON_CONTINUOS_FREE,
|
||||
BUTTON_ALL_RIGGER,
|
||||
number_of_event, /* 触发回调的事件 */
|
||||
NONE_TRIGGER
|
||||
}Button_Event;
|
||||
|
||||
/*
|
||||
每个按键对应1个全局的结构体变量。
|
||||
其成员变量是实现滤波和多种按键状态所必须的
|
||||
*/
|
||||
typedef struct button
|
||||
{
|
||||
/* 下面是一个函数指针,指向判断按键手否按下的函数 */
|
||||
uint8_t (*Read_Button_Level)(void); /* 读取按键电平函数,需要用户实现 */
|
||||
|
||||
char Name[BTN_NAME_MAX];
|
||||
|
||||
uint8_t Button_State : 4; /* 按键当前状态(按下还是弹起) */
|
||||
uint8_t Button_Last_State : 4; /* 上一次的按键状态,用于判断双击 */
|
||||
uint8_t Button_Trigger_Level : 2; /* 按键触发电平 */
|
||||
uint8_t Button_Last_Level : 2; /* 按键当前电平 */
|
||||
|
||||
uint8_t Button_Trigger_Event; /* 按键触发事件,单击,双击,长按等 */
|
||||
|
||||
Button_CallBack CallBack_Function[number_of_event];
|
||||
|
||||
uint8_t Button_Cycle; /* 连续按键周期 */
|
||||
|
||||
uint8_t Timer_Count; /* 计时 */
|
||||
uint8_t Debounce_Time; /* 消抖时间 */
|
||||
|
||||
uint8_t Long_Time; /* 按键按下持续时间 */
|
||||
|
||||
struct button *Next;
|
||||
|
||||
}Button_t;
|
||||
|
||||
|
||||
/* 供外部调用的函数声明 */
|
||||
|
||||
void Button_Create(const char *name,
|
||||
Button_t *btn,
|
||||
uint8_t(*read_btn_level)(void),
|
||||
uint8_t btn_trigger_level);
|
||||
|
||||
void Button_Attach(Button_t *btn,Button_Event btn_event,Button_CallBack btn_callback);
|
||||
|
||||
void Button_Cycle_Process(Button_t *btn);
|
||||
|
||||
void Button_Process(void);
|
||||
|
||||
void Button_Delete(Button_t *btn);
|
||||
|
||||
void Search_Button(void);
|
||||
|
||||
void Get_Button_EventInfo(Button_t *btn);
|
||||
uint8_t Get_Button_Event(Button_t *btn);
|
||||
uint8_t Get_Button_State(Button_t *btn);
|
||||
void Button_Process_CallBack(void *btn);
|
||||
|
||||
#endif
|
148
src/hal/em_hal.cpp
Normal file
148
src/hal/em_hal.cpp
Normal file
@ -0,0 +1,148 @@
|
||||
#include "em_hal.h"
|
||||
#include "em_adc.h"
|
||||
|
||||
int freq = 2000; //设置频率2000kHz
|
||||
int channel = 0; //通道号,取值0 ~ 15
|
||||
int resolution = 8; //分辨率,取值0~20,占空比duty最大取值为2^resolution-1
|
||||
|
||||
bool need_report = false;
|
||||
|
||||
|
||||
#define EPISON 1e-7
|
||||
|
||||
void read_battery()
|
||||
{
|
||||
get_device_state()->battery = map(get_adc_volts()*2,3300,4200,0,100);
|
||||
if(get_device_state()->battery > 100)
|
||||
get_device_state()->battery = 100;
|
||||
Serial.printf("battery = %d\n",get_device_state()->battery);
|
||||
}
|
||||
|
||||
void read_temperature()
|
||||
{
|
||||
float temperatrue = get_adc_temperatrue();
|
||||
Serial.printf("temperature = %f\n",temperatrue);
|
||||
if(temperatrue >= EPISON){
|
||||
get_device_state()->temperature = temperatrue;
|
||||
}else{
|
||||
get_device_state()->temperature = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void run_beep(beep_type_e type){
|
||||
#ifdef BEEP_MODE
|
||||
switch (type)
|
||||
{
|
||||
case BEEP_CONNECT:
|
||||
ledcWriteNote(channel,NOTE_F,5);
|
||||
delay(100);
|
||||
ledcWrite(channel, 0);
|
||||
break;
|
||||
case BEEP_WARN:
|
||||
ledcWriteNote(channel,NOTE_D,5);
|
||||
delay(100);
|
||||
ledcWrite(channel, 0);
|
||||
delay(100);
|
||||
ledcWriteNote(channel,NOTE_D,5);
|
||||
delay(100);
|
||||
ledcWrite(channel, 0);
|
||||
delay(100);
|
||||
ledcWriteNote(channel,NOTE_D,5);
|
||||
delay(100);
|
||||
ledcWrite(channel, 0);
|
||||
break;
|
||||
case BEEP_PRINTER_START:
|
||||
ledcWriteNote(channel,NOTE_D,5);
|
||||
delay(100);
|
||||
ledcWrite(channel, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void run_led(led_type_e type){
|
||||
switch (type)
|
||||
{
|
||||
case LED_CONNECT:
|
||||
digitalWrite(PIN_LED, 0);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
break;
|
||||
case LED_WARN:
|
||||
digitalWrite(PIN_LED, 0);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 0);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 0);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
break;
|
||||
case LED_PRINTER_START:
|
||||
digitalWrite(PIN_LED, 0);
|
||||
delay(100);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ARDUINO_ISR_ATTR paper_isr()
|
||||
{
|
||||
need_report = true;
|
||||
set_device_paper_status(PAPER_STATUS_LACK);
|
||||
detachInterrupt(PIN_PAPER);
|
||||
}
|
||||
|
||||
void read_paper_statue()
|
||||
{
|
||||
if(digitalRead(PIN_PAPER) == PAPER_STATUS_NORMAL){
|
||||
get_device_state()->paper_state = PAPER_STATUS_NORMAL;
|
||||
attachInterrupt(PIN_PAPER, paper_isr, RISING);
|
||||
}else{
|
||||
get_device_state()->paper_state = PAPER_STATUS_LACK;
|
||||
}
|
||||
Serial.printf("paper_state = %d %d\n",get_device_state()->paper_state,digitalRead(PIN_PAPER));
|
||||
}
|
||||
|
||||
bool read_paper_irq_need_report_status()
|
||||
{
|
||||
if (need_report)
|
||||
{
|
||||
need_report = false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
void read_all_hal()
|
||||
{
|
||||
read_battery();
|
||||
read_temperature();
|
||||
read_paper_statue();
|
||||
}
|
||||
|
||||
void init_hal()
|
||||
{
|
||||
//缺纸IO初始化
|
||||
pinMode(PIN_PAPER, INPUT);
|
||||
attachInterrupt(PIN_PAPER, paper_isr, RISING);
|
||||
|
||||
#ifdef BEEP_MODE
|
||||
//蜂鸣器初始化
|
||||
//设置通道频率和分辨率
|
||||
ledcSetup(channel, freq, resolution);
|
||||
//将通道0与引脚15连接
|
||||
ledcAttachPin(PIN_BEEP, channel);
|
||||
#endif
|
||||
|
||||
pinMode(PIN_LED, OUTPUT);
|
||||
digitalWrite(PIN_LED, 1);
|
||||
}
|
32
src/hal/em_hal.h
Normal file
32
src/hal/em_hal.h
Normal file
@ -0,0 +1,32 @@
|
||||
#ifndef _EM_HAL_H_
|
||||
#define _EM_HAL_H_
|
||||
|
||||
#include "em_config.h"
|
||||
#include "em_device.h"
|
||||
|
||||
|
||||
typedef enum{
|
||||
BEEP_CONNECT = 0,
|
||||
BEEP_WARN,
|
||||
BEEP_PRINTER_START,
|
||||
}beep_type_e;
|
||||
|
||||
typedef enum{
|
||||
LED_CONNECT = 0,
|
||||
LED_WARN,
|
||||
LED_PRINTER_START,
|
||||
}led_type_e;
|
||||
|
||||
|
||||
void run_beep(beep_type_e type);
|
||||
|
||||
void run_led(led_type_e type);
|
||||
|
||||
void read_all_hal();
|
||||
|
||||
void init_hal();
|
||||
|
||||
bool read_paper_irq_need_report_status();
|
||||
|
||||
|
||||
#endif
|
116
src/hal/em_motor.cpp
Normal file
116
src/hal/em_motor.cpp
Normal file
@ -0,0 +1,116 @@
|
||||
#include "em_motor.h"
|
||||
#include <Ticker.h>
|
||||
|
||||
/*
|
||||
step A B A- B-
|
||||
AN BN AP BP
|
||||
1 1 0 0 1
|
||||
2 0 0 0 1
|
||||
3 0 0 1 1
|
||||
4 0 0 1 0
|
||||
5 0 1 1 0
|
||||
6 0 1 0 0
|
||||
7 1 1 0 0
|
||||
8 1 0 0 0
|
||||
4step 行进一点行
|
||||
对应PIN
|
||||
A- A B- B
|
||||
0 1 1 0
|
||||
0 0 1 0
|
||||
1 0 1 0
|
||||
1 0 0 0
|
||||
1 0 0 1
|
||||
0 0 0 1
|
||||
0 1 0 1
|
||||
0 1 0 0
|
||||
*/
|
||||
uint8_t motor_pos = 0;
|
||||
|
||||
uint8_t motor_table[8][4] =
|
||||
{
|
||||
{0, 1, 1, 0},
|
||||
{0, 0, 1, 0},
|
||||
{1, 0, 1, 0},
|
||||
{1, 0, 0, 0},
|
||||
{1, 0, 0, 1},
|
||||
{0, 0, 0, 1},
|
||||
{0, 1, 0, 1},
|
||||
{0, 1, 0, 0}};
|
||||
|
||||
Ticker timer_motor;
|
||||
|
||||
void timer_motor_callbackfun()
|
||||
{
|
||||
digitalWrite(PIN_MOTOR_AP, motor_table[motor_pos][0]);
|
||||
digitalWrite(PIN_MOTOR_AM, motor_table[motor_pos][1]);
|
||||
digitalWrite(PIN_MOTOR_BP, motor_table[motor_pos][2]);
|
||||
digitalWrite(PIN_MOTOR_BM, motor_table[motor_pos][3]);
|
||||
motor_pos++;
|
||||
if (motor_pos >= 8)
|
||||
{
|
||||
motor_pos = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void motor_start()
|
||||
{
|
||||
if (timer_motor.active() == false){
|
||||
digitalWrite(PIN_VHEN, HIGH);
|
||||
timer_motor.attach_ms(2, timer_motor_callbackfun);
|
||||
}
|
||||
}
|
||||
|
||||
void motor_stop()
|
||||
{
|
||||
digitalWrite(PIN_MOTOR_AP, 0);
|
||||
digitalWrite(PIN_MOTOR_AM, 0);
|
||||
digitalWrite(PIN_MOTOR_BP, 0);
|
||||
digitalWrite(PIN_MOTOR_BM, 0);
|
||||
digitalWrite(PIN_VHEN, LOW);
|
||||
if (timer_motor.active())
|
||||
timer_motor.detach();
|
||||
}
|
||||
|
||||
void motor_run()
|
||||
{
|
||||
digitalWrite(PIN_MOTOR_AP, motor_table[motor_pos][0]);
|
||||
digitalWrite(PIN_MOTOR_AM, motor_table[motor_pos][1]);
|
||||
digitalWrite(PIN_MOTOR_BP, motor_table[motor_pos][2]);
|
||||
digitalWrite(PIN_MOTOR_BM, motor_table[motor_pos][3]);
|
||||
motor_pos++;
|
||||
if (motor_pos >= 8)
|
||||
{
|
||||
motor_pos = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void motor_run_step(uint32_t steps)
|
||||
{
|
||||
while (steps)
|
||||
{
|
||||
digitalWrite(PIN_MOTOR_AP, motor_table[motor_pos][0]);
|
||||
digitalWrite(PIN_MOTOR_AM, motor_table[motor_pos][1]);
|
||||
digitalWrite(PIN_MOTOR_BP, motor_table[motor_pos][2]);
|
||||
digitalWrite(PIN_MOTOR_BM, motor_table[motor_pos][3]);
|
||||
motor_pos++;
|
||||
if (motor_pos >= 8)
|
||||
{
|
||||
motor_pos = 0;
|
||||
}
|
||||
us_delay(MOTOR_WATI_TIME);
|
||||
steps--;
|
||||
}
|
||||
}
|
||||
|
||||
void init_motor()
|
||||
{
|
||||
pinMode(PIN_MOTOR_AP, OUTPUT);
|
||||
pinMode(PIN_MOTOR_AM, OUTPUT);
|
||||
pinMode(PIN_MOTOR_BP, OUTPUT);
|
||||
pinMode(PIN_MOTOR_BM, OUTPUT);
|
||||
|
||||
digitalWrite(PIN_MOTOR_AP, 0);
|
||||
digitalWrite(PIN_MOTOR_AM, 0);
|
||||
digitalWrite(PIN_MOTOR_BP, 0);
|
||||
digitalWrite(PIN_MOTOR_BM, 0);
|
||||
}
|
12
src/hal/em_motor.h
Normal file
12
src/hal/em_motor.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _EM_MOTOR_H_
|
||||
#define _EM_MOTOR_H_
|
||||
|
||||
#include "em_config.h"
|
||||
|
||||
void motor_run_step(uint32_t steps);
|
||||
void motor_start();
|
||||
void motor_stop();
|
||||
void init_motor();
|
||||
void motor_run();
|
||||
|
||||
#endif
|
402
src/hal/em_printer.cpp
Normal file
402
src/hal/em_printer.cpp
Normal file
@ -0,0 +1,402 @@
|
||||
#include "em_printer.h"
|
||||
#include "em_timer.h"
|
||||
|
||||
float addTime[6] = {0};
|
||||
// 点数-增加时间系数
|
||||
#define kAddTime 0.001
|
||||
// 根据打印头实际打印效果修改打印时间偏移值
|
||||
// #define STB1_ADDTIME 200
|
||||
// #define STB2_ADDTIME 200
|
||||
// #define STB3_ADDTIME -200
|
||||
// #define STB4_ADDTIME 0
|
||||
// #define STB5_ADDTIME 100
|
||||
// #define STB6_ADDTIME 500
|
||||
#define STB1_ADDTIME 0
|
||||
#define STB2_ADDTIME 0
|
||||
#define STB3_ADDTIME 0
|
||||
#define STB4_ADDTIME 0
|
||||
#define STB5_ADDTIME 0
|
||||
#define STB6_ADDTIME 0
|
||||
// 热密度
|
||||
uint8_t heat_density = 64;
|
||||
|
||||
/**
|
||||
* @brief 失能所有通道
|
||||
*
|
||||
*/
|
||||
static void set_stb_idle()
|
||||
{
|
||||
digitalWrite(PIN_STB1, LOW);
|
||||
digitalWrite(PIN_STB2, LOW);
|
||||
digitalWrite(PIN_STB3, LOW);
|
||||
digitalWrite(PIN_STB4, LOW);
|
||||
digitalWrite(PIN_STB5, LOW);
|
||||
digitalWrite(PIN_STB6, LOW);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 打印前初始化
|
||||
*
|
||||
*/
|
||||
static void init_printing()
|
||||
{
|
||||
// 开启打印超时监听
|
||||
open_printer_timeout_timer();
|
||||
set_stb_idle();
|
||||
digitalWrite(PIN_LAT, HIGH);
|
||||
// POWER ON
|
||||
digitalWrite(PIN_VHEN, HIGH);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 打印后停止
|
||||
*
|
||||
*/
|
||||
static void stop_printing()
|
||||
{
|
||||
// 关闭打印超时监听
|
||||
close_printer_timeout_timer();
|
||||
// POWER OFF
|
||||
digitalWrite(PIN_VHEN, LOW);
|
||||
set_stb_idle();
|
||||
digitalWrite(PIN_LAT, HIGH);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set the heat density object密度设置
|
||||
*
|
||||
* @param density
|
||||
*/
|
||||
void set_heat_density(uint8_t density)
|
||||
{
|
||||
Serial.printf("打印密度设置:%d\n", density);
|
||||
heat_density = density;
|
||||
}
|
||||
|
||||
void clearAddTime()
|
||||
{
|
||||
addTime[0] = addTime[1] = addTime[2] = addTime[3] = addTime[4] = addTime[5] = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 发送一行数据
|
||||
*
|
||||
* @param data
|
||||
*/
|
||||
static void send_one_line_data(uint8_t *data)
|
||||
{
|
||||
float tmpAddTime = 0;
|
||||
clearAddTime();
|
||||
for (uint8_t i = 0; i < 6; ++i)
|
||||
{
|
||||
for (uint8_t j = 0; j < 8; ++j)
|
||||
{
|
||||
addTime[i] += data[i * 8 + j];
|
||||
}
|
||||
tmpAddTime = addTime[i] * addTime[i];
|
||||
addTime[i] = kAddTime * tmpAddTime;
|
||||
}
|
||||
// Serial.printf("data %d\n", data[0]);
|
||||
/* Send one dot line data. */
|
||||
spiCommand(data, TPH_DI_LEN);
|
||||
/* After send one dot line, send LAT signal low pulse.*/
|
||||
digitalWrite(PIN_LAT, LOW);
|
||||
us_delay(LAT_TIME);
|
||||
digitalWrite(PIN_LAT, HIGH);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 通道打印运行
|
||||
*
|
||||
* @param now_stb_num
|
||||
*/
|
||||
static void run_stb(uint8_t now_stb_num)
|
||||
{
|
||||
switch (now_stb_num)
|
||||
{
|
||||
case 0:
|
||||
digitalWrite(PIN_STB1, 1);
|
||||
us_delay((PRINT_TIME + addTime[0] + STB1_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB1, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
case 1:
|
||||
digitalWrite(PIN_STB2, 1);
|
||||
us_delay((PRINT_TIME + addTime[1] + STB2_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB2, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
case 2:
|
||||
digitalWrite(PIN_STB3, 1);
|
||||
us_delay((PRINT_TIME + addTime[2] + STB3_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB3, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
case 3:
|
||||
digitalWrite(PIN_STB4, 1);
|
||||
us_delay((PRINT_TIME + addTime[3] + STB4_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB4, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
case 4:
|
||||
digitalWrite(PIN_STB5, 1);
|
||||
us_delay((PRINT_TIME + addTime[4] + STB5_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB5, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
case 5:
|
||||
digitalWrite(PIN_STB6, 1);
|
||||
us_delay((PRINT_TIME + addTime[5] + STB6_ADDTIME) * ((double)heat_density / 100));
|
||||
digitalWrite(PIN_STB6, 0);
|
||||
us_delay(PRINT_END_TIME);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 移动电机&开始打印
|
||||
*
|
||||
* @param need_stop
|
||||
* @param stbnum
|
||||
*/
|
||||
bool move_and_start_std(bool need_stop, uint8_t stbnum)
|
||||
{
|
||||
if (need_stop == true)
|
||||
{
|
||||
Serial.print("打印停止\n");
|
||||
motor_stop();
|
||||
stop_printing();
|
||||
return true;
|
||||
}
|
||||
// 4step一行
|
||||
motor_run();
|
||||
if (stbnum == ALL_STB_NUM)
|
||||
{
|
||||
// 所有通道打印
|
||||
for (uint8_t index = 0; index < 6; index++)
|
||||
{
|
||||
run_stb(index);
|
||||
// 把电机运行信号插入通道加热中,减少打印卡顿和耗时
|
||||
if (index == 1 || index == 3 || index == 5)
|
||||
{
|
||||
motor_run();
|
||||
}
|
||||
}
|
||||
// motor_run_step(3);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 单通道打印
|
||||
run_stb(stbnum);
|
||||
motor_run_step(3);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 打印错误检查
|
||||
*
|
||||
* @param need_report 是否需BLE上报
|
||||
* @return true 打印出错
|
||||
* @return false 打印正常
|
||||
*/
|
||||
bool printing_error_check(bool need_report)
|
||||
{
|
||||
if (get_printer_timeout_status())
|
||||
{
|
||||
Serial.print("打印超时\n");
|
||||
return true;
|
||||
}
|
||||
if (get_device_state()->paper_state == PAPER_STATUS_LACK)
|
||||
{
|
||||
if(need_report){
|
||||
// 停止打印
|
||||
clean_printbuffer();
|
||||
ble_report();
|
||||
}
|
||||
// 停止打印
|
||||
Serial.print("缺纸\n");
|
||||
run_beep(BEEP_WARN);
|
||||
run_led(LED_WARN);
|
||||
return true;
|
||||
}
|
||||
if (get_device_state()->temperature > 65)
|
||||
{
|
||||
if(need_report){
|
||||
// 停止打印
|
||||
clean_printbuffer();
|
||||
ble_report();
|
||||
}
|
||||
// 停止打印
|
||||
Serial.print("温度异常\n");
|
||||
run_beep(BEEP_WARN);
|
||||
run_led(LED_WARN);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 数组打印
|
||||
*
|
||||
* @param data
|
||||
* @param length 数据长度必须是整行 48*n
|
||||
*/
|
||||
void start_printing(uint8_t *data, uint32_t len)
|
||||
{
|
||||
uint32_t offset = 0;
|
||||
uint8_t *ptr = data;
|
||||
bool need_stop = false;
|
||||
init_printing();
|
||||
while (1)
|
||||
{
|
||||
if (len > offset)
|
||||
{
|
||||
// 发送一行数据 48byte*8=384bit
|
||||
send_one_line_data(ptr);
|
||||
offset += TPH_DI_LEN;
|
||||
ptr += TPH_DI_LEN;
|
||||
}
|
||||
else
|
||||
need_stop = true;
|
||||
if (move_and_start_std(need_stop, ALL_STB_NUM))
|
||||
break;
|
||||
if(printing_error_check(false))
|
||||
break;
|
||||
}
|
||||
motor_run_step(40);
|
||||
motor_stop();
|
||||
Serial.printf("打印完成\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 可变队列打印
|
||||
*
|
||||
*/
|
||||
void start_printing_by_queuebuf()
|
||||
{
|
||||
uint8_t *pdata = NULL;
|
||||
bool need_stop = false;
|
||||
uint32_t printer_count = 0;
|
||||
init_printing();
|
||||
while (1)
|
||||
{
|
||||
if (get_ble_rx_leftline() > 0)
|
||||
{
|
||||
// Serial.printf("printing...\n");
|
||||
pdata = read_to_printer();
|
||||
if (pdata != NULL)
|
||||
{
|
||||
printer_count ++;
|
||||
send_one_line_data(pdata);
|
||||
if (move_and_start_std(false, ALL_STB_NUM))
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (move_and_start_std(true, ALL_STB_NUM))
|
||||
break;
|
||||
}
|
||||
if (get_printer_timeout_status())
|
||||
break;
|
||||
if(printing_error_check(true))
|
||||
break;
|
||||
}
|
||||
motor_run_step(140);
|
||||
motor_stop();
|
||||
Serial.printf("打印完成 接收总行数:%d 打印总行数:%d\n",get_blepack_count(),printer_count);
|
||||
clean_blepack_count();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 单通道数组打印
|
||||
*
|
||||
* @param stbnum
|
||||
* @param data
|
||||
* @param len
|
||||
*/
|
||||
void start_printing_by_onestb(uint8_t stbnum, uint8_t *data, uint32_t len)
|
||||
{
|
||||
uint32_t offset = 0;
|
||||
uint8_t *ptr = data;
|
||||
bool need_stop = false;
|
||||
init_printing();
|
||||
while (1)
|
||||
{
|
||||
Serial.printf("printer %d\n", offset);
|
||||
if (len > offset)
|
||||
{
|
||||
// 发送一行数据 48byte*8=384bit
|
||||
send_one_line_data(ptr);
|
||||
offset += TPH_DI_LEN;
|
||||
ptr += TPH_DI_LEN;
|
||||
}
|
||||
else
|
||||
need_stop = true;
|
||||
if (move_and_start_std(need_stop, stbnum))
|
||||
break;
|
||||
if (get_printer_timeout_status())
|
||||
break;
|
||||
if(printing_error_check(false))
|
||||
break;
|
||||
}
|
||||
motor_run_step(40);
|
||||
motor_stop();
|
||||
}
|
||||
|
||||
static void setDebugData(uint8_t *print_data)
|
||||
{
|
||||
for (uint32_t cleardata = 0; cleardata < 48 * 5; ++cleardata)
|
||||
{
|
||||
print_data[cleardata] = 0x55;
|
||||
}
|
||||
}
|
||||
|
||||
void testSTB()
|
||||
{
|
||||
uint8_t print_data[48 * 10];
|
||||
uint32_t print_len;
|
||||
Serial.println("开始打印打印头选通引脚测试\n顺序: 1 2 3 4 5 6");
|
||||
print_len = 48 * 5;
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(0, print_data, print_len);
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(1, print_data, print_len);
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(2, print_data, print_len);
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(3, print_data, print_len);
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(4, print_data, print_len);
|
||||
setDebugData(print_data);
|
||||
start_printing_by_onestb(5, print_data, print_len);
|
||||
Serial.println("测试完成");
|
||||
}
|
||||
|
||||
void init_printer()
|
||||
{
|
||||
init_motor();
|
||||
|
||||
pinMode(PIN_LAT, OUTPUT);
|
||||
pinMode(PIN_SCK, OUTPUT);
|
||||
pinMode(PIN_SDA, OUTPUT);
|
||||
|
||||
pinMode(PIN_STB1, OUTPUT);
|
||||
pinMode(PIN_STB2, OUTPUT);
|
||||
pinMode(PIN_STB3, OUTPUT);
|
||||
pinMode(PIN_STB4, OUTPUT);
|
||||
pinMode(PIN_STB5, OUTPUT);
|
||||
pinMode(PIN_STB6, OUTPUT);
|
||||
set_stb_idle();
|
||||
digitalWrite(PIN_LAT, HIGH);
|
||||
|
||||
|
||||
pinMode(PIN_VHEN, OUTPUT);
|
||||
digitalWrite(PIN_VHEN, LOW);
|
||||
|
||||
init_spi();
|
||||
}
|
53
src/hal/em_printer.h
Normal file
53
src/hal/em_printer.h
Normal file
@ -0,0 +1,53 @@
|
||||
#ifndef _EM_PRINTER_H_
|
||||
#define _EM_PRINTER_H_
|
||||
|
||||
#include "em_config.h"
|
||||
#include "em_motor.h"
|
||||
#include "em_spi.h"
|
||||
#include "em_ble.h"
|
||||
#include "utils/em_queue.h"
|
||||
|
||||
//每行总点数
|
||||
#define TPH_DOTS_PER_LINE 384
|
||||
//每行字节长度 384/8
|
||||
#define TPH_DI_LEN 48
|
||||
//所有通道打印
|
||||
#define ALL_STB_NUM 0xFF
|
||||
|
||||
/**
|
||||
* @brief 打印密度设置
|
||||
*
|
||||
*/
|
||||
void set_heat_density(uint8_t density);
|
||||
/**
|
||||
* @brief 数组打印
|
||||
*
|
||||
* @param data
|
||||
* @param length 数据长度必须是整行 48*n
|
||||
*/
|
||||
void start_printing(uint8_t *data, uint32_t len);
|
||||
|
||||
/**
|
||||
* @brief 可变队列打印
|
||||
*
|
||||
*/
|
||||
void start_printing_by_queuebuf();
|
||||
|
||||
/**
|
||||
* @brief 单通道打印
|
||||
*
|
||||
* @param stbnum
|
||||
* @param data
|
||||
* @param len
|
||||
*/
|
||||
void start_printing_by_onestb(uint8_t stbnum, uint8_t *data, uint32_t len);
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
*/
|
||||
void init_printer();
|
||||
|
||||
void testSTB();
|
||||
|
||||
#endif
|
23
src/hal/em_spi.cpp
Normal file
23
src/hal/em_spi.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "em_spi.h"
|
||||
|
||||
static const int spiClk = 1000000; // 1 MHz
|
||||
|
||||
SPIClass hspi = SPIClass(HSPI);
|
||||
SPISettings printerSPISettings = SPISettings(spiClk, SPI_MSBFIRST, SPI_MODE0);
|
||||
|
||||
void spiCommand(uint8_t *data_buffer, uint8_t data_len)
|
||||
{
|
||||
// use it as you would the regular arduino SPI API
|
||||
hspi.beginTransaction(printerSPISettings);
|
||||
hspi.transfer(data_buffer, data_len);
|
||||
hspi.endTransaction();
|
||||
}
|
||||
|
||||
void init_spi()
|
||||
{
|
||||
// hspi = SPIClass(HSPI);
|
||||
// alternatively route through GPIO pins
|
||||
hspi.begin(PIN_SCK, 16, PIN_SDA, -1); // SCLK, MISO, MOSI, SS
|
||||
hspi.setFrequency(spiClk);
|
||||
}
|
||||
|
13
src/hal/em_spi.h
Normal file
13
src/hal/em_spi.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef _EM_SPI_H_
|
||||
#define _EM_SPI_H_
|
||||
|
||||
#include "em_config.h"
|
||||
#include <SPI.h>
|
||||
|
||||
void spiCommand(byte data);
|
||||
|
||||
void spiCommand(uint8_t *data_buffer, uint8_t data_len);
|
||||
|
||||
void init_spi();
|
||||
|
||||
#endif
|
46
src/hal/em_timer.cpp
Normal file
46
src/hal/em_timer.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
#include <Ticker.h>
|
||||
|
||||
#include "em_config.h"
|
||||
#include "em_timer.h"
|
||||
|
||||
Ticker read_state_timer;
|
||||
Ticker printer_timer;
|
||||
|
||||
bool read_state_timeout = true;
|
||||
bool printer_timeout = false;
|
||||
|
||||
static void read_state_timer_callbackfun(){
|
||||
Serial.println("read_state now...");
|
||||
read_state_timeout = true;
|
||||
}
|
||||
|
||||
void init_timer(){
|
||||
read_state_timer.attach_ms(10000,read_state_timer_callbackfun);
|
||||
}
|
||||
|
||||
bool get_state_timeout(){
|
||||
return read_state_timeout;
|
||||
}
|
||||
|
||||
void clean_state_timeout(){
|
||||
read_state_timeout = false;
|
||||
}
|
||||
|
||||
static void printer_timeout_callbackfun(){
|
||||
Serial.println("触发打印超时错误...");
|
||||
printer_timeout = true;
|
||||
}
|
||||
|
||||
bool get_printer_timeout_status(){
|
||||
return printer_timeout;
|
||||
}
|
||||
|
||||
void open_printer_timeout_timer(){
|
||||
printer_timeout = false;
|
||||
printer_timer.once_ms(20000, printer_timeout_callbackfun);
|
||||
}
|
||||
|
||||
void close_printer_timeout_timer(){
|
||||
if(printer_timer.active())
|
||||
printer_timer.detach();
|
||||
}
|
44
src/hal/em_timer.h
Normal file
44
src/hal/em_timer.h
Normal file
@ -0,0 +1,44 @@
|
||||
#ifndef _EM_TIMER_H_
|
||||
#define _EM_TIMER_H_
|
||||
|
||||
/**
|
||||
* @brief 初始化Timer
|
||||
*
|
||||
*/
|
||||
void init_timer();
|
||||
|
||||
/**
|
||||
* @brief Get the state timeout objectd
|
||||
*
|
||||
* @return true
|
||||
* @return false
|
||||
*/
|
||||
bool get_state_timeout();
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
*/
|
||||
void clean_state_timeout();
|
||||
|
||||
/**
|
||||
* @brief 开启打印超时计时器
|
||||
*
|
||||
*/
|
||||
void open_printer_timeout_timer();
|
||||
|
||||
/**
|
||||
* @brief 关闭打印超时计时器
|
||||
*
|
||||
*/
|
||||
void close_printer_timeout_timer();
|
||||
|
||||
/**
|
||||
* @brief Get the printer timeout status object
|
||||
*
|
||||
* @return true
|
||||
* @return false
|
||||
*/
|
||||
bool get_printer_timeout_status();
|
||||
|
||||
#endif
|
15
src/main.cpp
Normal file
15
src/main.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
#include "em_config.h"
|
||||
#include "em_task.h"
|
||||
|
||||
void setup()
|
||||
{
|
||||
init_task();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
printer_run();
|
||||
}
|
||||
|
||||
|
||||
|
81
src/utils/em_queue.cpp
Normal file
81
src/utils/em_queue.cpp
Normal file
@ -0,0 +1,81 @@
|
||||
#include "em_queue.h"
|
||||
|
||||
ble_rx_t g_ble_rx;
|
||||
|
||||
SemaphoreHandle_t xHandler = NULL;
|
||||
|
||||
void init_queue()
|
||||
{
|
||||
xHandler = xSemaphoreCreateMutex();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 写入一行数据
|
||||
*
|
||||
* @param pdata
|
||||
* @param length
|
||||
*/
|
||||
void write_to_printbuffer(uint8_t *pdata, size_t length)
|
||||
{
|
||||
if (length == 0)
|
||||
return;
|
||||
if (g_ble_rx.left_line >= MAX_LINE)
|
||||
return;
|
||||
if (length > MAX_ONELINE_BYTE)
|
||||
length = MAX_ONELINE_BYTE;
|
||||
// 查看是否可以获得信号量,如果信号量不可用,则用10个时钟滴答来查看信号量是否可用
|
||||
if (xSemaphoreTake(xHandler, (portTickType)10) == pdPASS)
|
||||
{
|
||||
memcpy(&g_ble_rx.printer_buffer[g_ble_rx.w_index], pdata, length);
|
||||
g_ble_rx.w_index++;
|
||||
g_ble_rx.left_line++;
|
||||
if (g_ble_rx.w_index >= MAX_LINE)
|
||||
g_ble_rx.w_index = 0;
|
||||
if (g_ble_rx.left_line >= MAX_LINE)
|
||||
g_ble_rx.left_line = MAX_LINE;
|
||||
xSemaphoreGive(xHandler);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 读取一行数据
|
||||
*
|
||||
* @return uint8_t*
|
||||
*/
|
||||
uint8_t *read_to_printer()
|
||||
{
|
||||
uint32_t index = 0;
|
||||
// 查看是否可以获得信号量,如果信号量不可用,则用10个时钟滴答来查看信号量是否可用
|
||||
if (xSemaphoreTake(xHandler, (portTickType)10) == pdPASS)
|
||||
{
|
||||
if (g_ble_rx.left_line > 0)
|
||||
{
|
||||
g_ble_rx.left_line--;
|
||||
index = g_ble_rx.r_index;
|
||||
g_ble_rx.r_index++;
|
||||
if (g_ble_rx.r_index >= MAX_LINE)
|
||||
g_ble_rx.r_index = 0;
|
||||
xSemaphoreGive(xHandler);
|
||||
return g_ble_rx.printer_buffer[index].buffer;
|
||||
}
|
||||
xSemaphoreGive(xHandler);
|
||||
return NULL;
|
||||
}else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 清空接收缓存
|
||||
*
|
||||
*/
|
||||
void clean_printbuffer()
|
||||
{
|
||||
g_ble_rx.w_index = 0;
|
||||
g_ble_rx.r_index = 0;
|
||||
g_ble_rx.left_line = 0;
|
||||
}
|
||||
|
||||
uint32_t get_ble_rx_leftline()
|
||||
{
|
||||
return g_ble_rx.left_line;
|
||||
}
|
32
src/utils/em_queue.h
Normal file
32
src/utils/em_queue.h
Normal file
@ -0,0 +1,32 @@
|
||||
#ifndef _EM_QUEUE_H_
|
||||
#define _EM_QUEUE_H_
|
||||
|
||||
#include "em_config.h"
|
||||
|
||||
//一行最大byte
|
||||
#define MAX_ONELINE_BYTE 48
|
||||
//最大行数
|
||||
#define MAX_LINE 1000
|
||||
|
||||
typedef struct{
|
||||
uint8_t buffer[MAX_ONELINE_BYTE];
|
||||
}ble_rx_buffer_t;
|
||||
|
||||
typedef struct{
|
||||
ble_rx_buffer_t printer_buffer[MAX_LINE];
|
||||
uint32_t r_index;
|
||||
uint32_t w_index;
|
||||
uint32_t left_line;
|
||||
}ble_rx_t;
|
||||
|
||||
void write_to_printbuffer(uint8_t *pdata,size_t length);
|
||||
|
||||
uint32_t get_ble_rx_leftline();
|
||||
|
||||
void clean_printbuffer();
|
||||
|
||||
uint8_t * read_to_printer();
|
||||
|
||||
void init_queue();
|
||||
|
||||
#endif
|
11
test/README
Normal file
11
test/README
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
This directory is intended for PlatformIO Test Runner and project tests.
|
||||
|
||||
Unit Testing is a software testing method by which individual units of
|
||||
source code, sets of one or more MCU program modules together with associated
|
||||
control data, usage procedures, and operating procedures, are tested to
|
||||
determine whether they are fit for use. Unit testing finds problems early
|
||||
in the development cycle.
|
||||
|
||||
More information about PlatformIO Unit Testing:
|
||||
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
|
Loading…
Reference in New Issue
Block a user