polymurph 3 years ago
commit d71be2bb74

@ -0,0 +1,84 @@
// Example program
// work in progress 2022.08.07
#include <iostream>
#include <string>
enum cmd_parser_mode_t{
PARSING_DEVICE,
CHECK_DEVICE,
PARSING_COMMAND,
CHECK_COMMAND,
PARSING_VALUE,
CHECK_VALUE,
COMMAND_VALID
};
void device_check(const std::string cmd)
{
std::cout << cmd << std::endl;
}
void cmd_parser(const std::string &cmd)
{
cmd_parser_mode_t parser_mode = PARSING_DEVICE;
std::string::size_type pos;
for(uint32_t i = 0; i < cmd.length(); i++) {
switch(parser_mode) {
case PARSING_DEVICE:
std::cout << parser_mode << std::endl;
pos = cmd.find('_');
if (pos != std::string::npos)
{
device_check(cmd.substr(0, pos));
}
else
{
return;
}
parser_mode = CHECK_DEVICE;
break;
case CHECK_DEVICE:
std::cout << parser_mode << std::endl;
parser_mode = PARSING_COMMAND;
break;
case PARSING_COMMAND:
std::cout << parser_mode << std::endl;
parser_mode = CHECK_COMMAND;
break;
case CHECK_COMMAND:
std::cout << parser_mode << std::endl;
parser_mode = PARSING_VALUE;
break;
case PARSING_VALUE:
std::cout << parser_mode << std::endl;
parser_mode = CHECK_VALUE;
break;
case CHECK_VALUE:
std::cout << parser_mode << std::endl;
parser_mode = COMMAND_VALID;
break;
case COMMAND_VALID:
std::cout << parser_mode << std::endl;
break;
default:
return;
break;
};
}
}
int main()
{
std::string cmd_in = "DEVICE_COMMAND_VALUE";
cmd_parser(cmd_in);
return 0;
}

@ -0,0 +1,193 @@
Version 4
SHEET 1 2020 680
WIRE -624 -160 -624 -208
WIRE 1216 -144 1168 -144
WIRE 1344 -144 1296 -144
WIRE -624 -64 -624 -80
WIRE -624 -64 -704 -64
WIRE -624 -48 -624 -64
WIRE 480 -48 80 -48
WIRE 1168 -48 1168 -144
WIRE 1216 -48 1168 -48
WIRE 1344 -32 1344 -144
WIRE 1344 -32 1280 -32
WIRE 1408 -32 1344 -32
WIRE 1680 -32 1488 -32
WIRE -704 -16 -704 -64
WIRE 976 -16 832 -16
WIRE 1056 -16 976 -16
WIRE 1216 -16 1120 -16
WIRE 480 0 480 -48
WIRE 1680 32 1680 -32
WIRE 1776 32 1680 32
WIRE 2016 32 1856 32
WIRE 976 48 976 -16
WIRE 1168 64 1168 -48
WIRE -624 80 -624 32
WIRE 80 128 80 -48
WIRE 480 128 480 80
WIRE 608 128 480 128
WIRE 832 128 832 -16
WIRE 832 128 608 128
WIRE 480 160 480 128
WIRE 976 160 976 112
WIRE 1680 160 1680 32
WIRE 1792 160 1680 160
WIRE 608 176 608 128
WIRE 832 176 832 128
WIRE 2016 176 2016 32
WIRE 2016 176 1856 176
WIRE 1792 192 1680 192
WIRE 80 240 80 208
WIRE 80 240 -224 240
WIRE 80 272 80 240
WIRE 480 288 480 240
WIRE 608 288 608 240
WIRE 608 288 480 288
WIRE 832 288 832 240
WIRE 832 288 608 288
WIRE 1168 304 1168 144
WIRE 1216 304 1168 304
WIRE 1344 304 1296 304
WIRE 480 320 480 288
WIRE -224 384 -224 240
WIRE 1168 400 1168 304
WIRE 1216 400 1168 400
WIRE 1344 416 1344 304
WIRE 1344 416 1280 416
WIRE 1408 416 1344 416
WIRE 1680 416 1680 192
WIRE 1680 416 1488 416
WIRE 1744 416 1680 416
WIRE 1872 416 1824 416
WIRE 80 432 80 352
WIRE 480 432 480 400
WIRE 480 432 80 432
WIRE 832 432 832 288
WIRE 976 432 832 432
WIRE 1056 432 976 432
WIRE 1216 432 1120 432
WIRE -224 496 -224 464
WIRE 976 496 976 432
WIRE 976 608 976 560
FLAG -704 -16 0
FLAG -624 -208 +5V
FLAG -624 80 -5V
FLAG 1248 0 -5V
FLAG 1248 -64 +5V
FLAG 1248 384 +5V
FLAG 1248 448 -5V
FLAG 1824 208 -5V
FLAG 1824 144 +5V
FLAG 1872 416 0
FLAG 976 160 0
FLAG 976 608 0
FLAG -224 496 0
SYMBOL voltage 80 112 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
SYMATTR Value SINE(0 {amplitude / 2} {f})
SYMBOL res 464 -16 R0
SYMATTR InstName R1
SYMATTR Value 10Meg
SYMBOL res 464 144 R0
SYMATTR InstName R2
SYMATTR Value 1k
SYMBOL res 464 304 R0
SYMATTR InstName R3
SYMATTR Value 10Meg
SYMBOL voltage 80 256 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V2
SYMATTR Value SINE(0 {amplitude / 2} {f})
SYMBOL diode 592 176 R0
SYMATTR InstName D1
SYMATTR Value 1N4148
SYMBOL diode 848 240 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D3
SYMATTR Value 1N4148
SYMBOL res 1312 -160 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 10k
SYMBOL res 1312 288 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R7
SYMATTR Value 10k
SYMBOL voltage -624 -176 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V3
SYMATTR Value 5
SYMBOL voltage -624 -64 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V4
SYMATTR Value 5
SYMBOL res 1152 48 R0
SYMATTR InstName R4
SYMATTR Value 10k
SYMBOL res 1504 -48 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R6
SYMATTR Value 2k5
SYMBOL res 1504 400 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R8
SYMATTR Value 2k5
SYMBOL res 1872 16 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R9
SYMATTR Value 10k
SYMBOL res 1840 400 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R10
SYMATTR Value 10k
SYMBOL Opamps\\LT1223 1248 -96 R0
SYMATTR InstName U4
SYMBOL Opamps\\LT1223 1248 352 R0
SYMATTR InstName U1
SYMBOL Opamps\\LT1223 1824 112 R0
SYMATTR InstName U2
SYMBOL TVSdiode 960 48 R0
WINDOW 0 24 0 Left 2
WINDOW 3 24 64 Left 2
SYMATTR InstName D2
SYMATTR Value SMBJ24CA
SYMATTR Description Diode
SYMATTR Type diode
SYMBOL TVSdiode 960 496 R0
WINDOW 0 24 0 Left 2
WINDOW 3 24 64 Left 2
SYMATTR InstName D4
SYMATTR Value SMBJ24CA
SYMATTR Description Diode
SYMATTR Type diode
SYMBOL voltage -224 368 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V5
SYMATTR Value 0
SYMBOL cap 1120 416 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value 10n
SYMBOL cap 1120 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C2
SYMATTR Value 10n
TEXT -20 438 Left 2 !.tran 100u
TEXT -256 -32 Left 2 !.param f = 1.1MEG
TEXT -248 0 Left 2 !.param amplitude = 1k25

@ -1,22 +1,22 @@
Version 4
SHEET 1 1788 680
WIRE 16 -464 -48 -464
WIRE 160 -464 96 -464
WIRE 256 -464 160 -464
WIRE -48 -368 -48 -464
WIRE 160 -368 160 -464
WIRE 256 -368 256 -464
WIRE -48 -176 -48 -304
WIRE 16 -176 -48 -176
WIRE 160 -176 160 -304
WIRE 160 -176 96 -176
WIRE 256 -176 256 -288
WIRE 256 -176 160 -176
WIRE 720 32 -368 32
SHEET 1 1932 680
WIRE 608 -448 544 -448
WIRE 752 -448 688 -448
WIRE 848 -448 752 -448
WIRE 544 -352 544 -448
WIRE 752 -352 752 -448
WIRE 848 -352 848 -448
WIRE 544 -160 544 -288
WIRE 608 -160 544 -160
WIRE 752 -160 752 -288
WIRE 752 -160 688 -160
WIRE 848 -160 848 -272
WIRE 848 -160 752 -160
WIRE 720 32 320 32
WIRE 1024 32 720 32
WIRE 720 96 720 32
WIRE 1024 96 1024 32
WIRE -368 128 -368 32
WIRE 320 128 320 32
WIRE 720 192 720 160
WIRE 848 192 720 192
WIRE 1024 192 1024 160
@ -27,9 +27,9 @@ WIRE 1568 224 1568 192
WIRE 720 240 720 192
WIRE 1024 240 1024 192
WIRE 1408 288 1408 192
WIRE -368 320 -368 208
WIRE 320 320 320 208
WIRE 720 320 720 304
WIRE 720 320 -368 320
WIRE 720 320 320 320
WIRE 1024 320 1024 304
WIRE 1024 320 720 320
WIRE 1568 352 1568 304
@ -41,10 +41,10 @@ WIRE 1568 448 1568 432
WIRE 1568 448 1408 448
WIRE 1008 480 1008 448
FLAG 1008 480 0
FLAG -368 32 L
FLAG -368 320 N
FLAG 320 32 L
FLAG 320 320 N
FLAG 1408 192 Vpower
SYMBOL Misc\\signal -368 112 R0
SYMBOL Misc\\signal 320 112 R0
WINDOW 123 0 0 Left 0
WINDOW 39 0 0 Left 0
SYMATTR InstName V1
@ -73,27 +73,25 @@ SYMATTR Value 25
SYMBOL cap 1392 288 R0
SYMATTR InstName C1
SYMATTR Value 18.8m
SYMBOL diode 816 -96 R0
SYMATTR InstName D5
SYMBOL ind2 112 -480 R90
SYMBOL ind2 704 -464 R90
WINDOW 0 5 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName L1
SYMATTR Value 0.6m
SYMATTR Type ind
SYMBOL ind2 0 -160 R270
SYMBOL ind2 592 -144 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 4 56 VBottom 2
SYMATTR InstName L2
SYMATTR Value 0.6m
SYMATTR Type ind
SYMBOL cap -64 -368 R0
SYMBOL cap 528 -352 R0
SYMATTR InstName C2
SYMATTR Value 0.22µ
SYMBOL cap 144 -368 R0
SYMBOL cap 736 -352 R0
SYMATTR InstName C3
SYMATTR Value 0.22µ
SYMBOL res 240 -384 R0
SYMBOL res 832 -368 R0
SYMATTR InstName R2
SYMATTR Value 330k
SYMBOL res 1552 208 R0
@ -102,9 +100,10 @@ SYMATTR Value 1Meg
SYMBOL res 1552 336 R0
SYMATTR InstName R4
SYMATTR Value 11k
TEXT 14 504 Left 2 !.tran 0 10s 100m 1m
TEXT -8 -552 Left 2 ;max 16A
TEXT -8 -528 Left 2 !K1 L1 L2 1
TEXT 24 552 Left 2 !.meas Vmax MAX I(R1) FROM 10m TO 5
TEXT 24 584 Left 2 !.meas Vmin MIN I(R1) FROM 10m TO 5
TEXT 24 528 Left 2 ;hit ctrl + L to measure
TEXT 320 408 Left 2 !.tran 0 10s 100m 1m
TEXT 584 -536 Left 2 ;max 16A
TEXT 584 -512 Left 2 !K1 L1 L2 1
TEXT 328 456 Left 2 !.meas Vmax MAX I(R1) FROM 10m TO 5
TEXT 328 488 Left 2 !.meas Vmin MIN I(R1) FROM 10m TO 5
TEXT 328 432 Left 2 ;hit ctrl + L to measure
TEXT 1216 120 Left 2 ;use: NHS50 25R J - Drahtwiderstand 50W, 25Ohm, 5%, Arcol

@ -0,0 +1,27 @@
Circuit: * C:\Users\Edwin\Documents\19_git\ideas\circuits\CAP_charger\CAP_charger.asc
WARNING: Node N004 is floating.
.OP point found by inspection.
vmax: MAX(i(r1))=0.00043904 FROM 0.01 TO 5
vmin: MIN(i(r1))=-12.7919 FROM 0.01 TO 5
Date: Sun Feb 06 15:16:51 2022
Total elapsed time: 0.278 seconds.
tnom = 27
temp = 27
method = modified trap
totiter = 81379
traniter = 81379
tranpoints = 25384
accept = 18326
rejected = 7058
matrix size = 16
fillins = 11
solver = Normal
Matrix Compiler1: 88 opcodes 0.2/[0.1]/0.3
Matrix Compiler2: 1.41 KB object code size 0.1/0.2/[0.0]

@ -0,0 +1,22 @@
Circuit: * C:\Users\Edwin\Documents\19_git\ideas\circuits\CAP_charger\Draft1.asc
WARNING: Specified period is not longer than the sum of Trise, Tfall, and Ton for v3. Increasing period to 0.001
Direct Newton iteration for .op point succeeded.
Date: Sat Mar 05 13:03:08 2022
Total elapsed time: 0.098 seconds.
tnom = 27
temp = 27
method = modified trap
totiter = 4205
traniter = 4185
tranpoints = 1498
accept = 1383
rejected = 115
matrix size = 24
fillins = 4
solver = Normal
Matrix Compiler1: 1.77 KB object code size 0.3/0.3/[0.1]
Matrix Compiler2: off [0.2]/0.3/0.2

Binary file not shown.

@ -0,0 +1,2 @@
Version 4
SHEET 1 880 680

@ -0,0 +1,190 @@
Version 4
SHEET 1 1908 680
WIRE 288 -16 128 -16
WIRE 416 -16 352 -16
WIRE 512 -16 416 -16
WIRE 560 -16 512 -16
WIRE 672 -16 624 -16
WIRE 768 -16 672 -16
WIRE 800 -16 768 -16
WIRE 928 -16 864 -16
WIRE 1024 -16 928 -16
WIRE 1072 -16 1024 -16
WIRE 1184 -16 1136 -16
WIRE 1280 -16 1184 -16
WIRE 1312 -16 1280 -16
WIRE 1440 -16 1376 -16
WIRE 1536 -16 1440 -16
WIRE 1584 -16 1536 -16
WIRE 1696 -16 1648 -16
WIRE 1792 -16 1696 -16
WIRE 416 32 416 -16
WIRE 512 32 512 -16
WIRE 672 32 672 -16
WIRE 768 32 768 -16
WIRE 928 32 928 -16
WIRE 1024 32 1024 -16
WIRE 1184 32 1184 -16
WIRE 1280 32 1280 -16
WIRE 1440 32 1440 -16
WIRE 1536 32 1536 -16
WIRE 1696 32 1696 -16
WIRE 1792 32 1792 -16
WIRE 128 80 128 -16
WIRE 416 144 416 96
WIRE 416 144 272 144
WIRE 432 144 416 144
WIRE 512 144 512 96
WIRE 512 144 496 144
WIRE 672 144 672 96
WIRE 672 144 512 144
WIRE 688 144 672 144
WIRE 768 144 768 96
WIRE 768 144 752 144
WIRE 928 144 928 96
WIRE 928 144 768 144
WIRE 944 144 928 144
WIRE 1024 144 1024 96
WIRE 1024 144 1008 144
WIRE 1184 144 1184 96
WIRE 1184 144 1024 144
WIRE 1200 144 1184 144
WIRE 1280 144 1280 96
WIRE 1280 144 1264 144
WIRE 1440 144 1440 96
WIRE 1440 144 1280 144
WIRE 1456 144 1440 144
WIRE 1536 144 1536 96
WIRE 1536 144 1520 144
WIRE 1696 144 1696 96
WIRE 1696 144 1536 144
WIRE 1712 144 1696 144
WIRE 1792 144 1792 96
WIRE 1792 144 1776 144
WIRE 128 176 128 160
WIRE 272 176 272 144
WIRE 272 176 128 176
WIRE 128 208 128 176
WIRE 1792 224 1792 144
WIRE 1792 352 1792 304
FLAG 128 208 0
FLAG 1792 352 0
SYMBOL voltage 128 64 R0
WINDOW 123 0 0 Left 0
WINDOW 39 24 124 Left 2
SYMATTR InstName V1
SYMATTR Value SINE(0 0.5 10)
SYMATTR SpiceLine Rser=10k
SYMBOL cap 352 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C1
SYMATTR Value {Cl}
SYMBOL cap 624 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C2
SYMATTR Value {Cl}
SYMBOL diode 432 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value 1N4148
SYMBOL cap 496 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value {Cl}
SYMBOL diode 496 32 R0
SYMATTR InstName D2
SYMATTR Value 1N4148
SYMBOL diode 688 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D3
SYMATTR Value 1N4148
SYMBOL cap 752 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C5
SYMATTR Value {Cl}
SYMBOL diode 752 32 R0
SYMATTR InstName D4
SYMATTR Value 1N4148
SYMBOL cap 864 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C4
SYMATTR Value {Cl}
SYMBOL cap 1136 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C6
SYMATTR Value {Cl}
SYMBOL diode 944 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D5
SYMATTR Value 1N4148
SYMBOL cap 1008 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C7
SYMATTR Value {Cl}
SYMBOL diode 1008 32 R0
SYMATTR InstName D6
SYMATTR Value 1N4148
SYMBOL diode 1200 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D7
SYMATTR Value 1N4148
SYMBOL cap 1264 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C8
SYMATTR Value {Cl}
SYMBOL diode 1264 32 R0
SYMATTR InstName D8
SYMATTR Value 1N4148
SYMBOL cap 1376 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C9
SYMATTR Value {Cl}
SYMBOL cap 1648 -32 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C10
SYMATTR Value {Cl}
SYMBOL diode 1456 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D9
SYMATTR Value 1N4148
SYMBOL cap 1520 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C11
SYMATTR Value {Cl}
SYMBOL diode 1520 32 R0
SYMATTR InstName D10
SYMATTR Value 1N4148
SYMBOL diode 1712 96 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D11
SYMATTR Value 1N4148
SYMBOL cap 1776 128 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C12
SYMATTR Value {Cl}
SYMBOL diode 1776 32 R0
SYMATTR InstName D12
SYMATTR Value 1N4148
SYMBOL res 1776 208 R0
SYMATTR InstName R1
SYMATTR Value 100Meg
TEXT 94 232 Left 2 !.tran 5s
TEXT -264 16 Left 2 !.param Cl = 1n
Loading…
Cancel
Save