forked from JOGAsoft/EBC-controller
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmain.lfm
executable file
·1084 lines (1084 loc) · 32.6 KB
/
main.lfm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
object frmMain: TfrmMain
Left = 197
Height = 698
Top = 146
Width = 1723
Anchors = []
Caption = 'EBC_controller'
ClientHeight = 698
ClientWidth = 1723
KeyPreview = True
Menu = MainMenu
OnClose = FormClose
OnCreate = FormCreate
OnKeyDown = FormKeyDown
LCLVersion = '3.0.0.2'
object MainStatusBar: TStatusBar
Left = 0
Height = 21
Top = 677
Width = 1723
Panels = <
item
Style = psOwnerDraw
Width = 25
end
item
Width = 140
end
item
Width = 100
end
item
Width = 20
end
item
Width = 200
end>
SimplePanel = False
OnDrawPanel = MainStatusBarDrawPanel
end
object GraphStepslogPanel: TPanel
AnchorSideRight.Control = RightPanel
AnchorSideBottom.Control = MainStatusBar
Left = 14
Height = 677
Top = 0
Width = 1410
Anchors = [akTop, akLeft, akRight, akBottom]
ClientHeight = 677
ClientWidth = 1410
Font.Height = -13
ParentFont = False
TabOrder = 2
object Chart: TChart
Left = 1
Height = 427
Top = 1
Width = 1408
AxisList = <
item
Grid.Color = clGray
TickColor = clBlue
AxisPen.Color = clBlue
Marks.LabelFont.Color = clBlue
Marks.Format = '%0:2.2fV'
Marks.Frame.Color = clBlue
Marks.LabelBrush.Style = bsClear
Marks.Range.UseMin = True
Marks.Style = smsCustom
Minors = <
item
Intervals.Count = 1
Intervals.MinLength = 5
Intervals.Options = [aipUseCount, aipUseMinLength]
TickColor = clMaroon
Marks.LabelBrush.Style = bsClear
end>
Range.Max = 10
Range.UseMin = True
Title.LabelFont.Orientation = 900
Title.Caption = '[V]'
Title.LabelBrush.Style = bsClear
Transformations = ChartAxisTransformationsVoltage
end
item
Alignment = calBottom
Marks.Format = '%2:s'
Marks.LabelBrush.Style = bsClear
Marks.OverlapPolicy = opHideNeighbour
Marks.Source = DateTimeIntervalChartSource
Marks.Style = smsLabel
Minors = <>
Title.Caption = 'Time'
Title.LabelBrush.Style = bsClear
end
item
Alignment = calRight
Marks.LabelFont.Color = clRed
Marks.Format = '%0:2.2fA'
Marks.LabelBrush.Style = bsClear
Marks.Style = smsCustom
Minors = <>
Range.UseMin = True
Title.Caption = '[A]'
Title.LabelBrush.Style = bsClear
Transformations = ChartAxisTransformationsCurrent
end>
BackColor = clWhite
Foot.Brush.Color = clBtnFace
Foot.Font.Color = clBlue
Title.Brush.Color = clBtnFace
Title.Font.Color = clBlue
Title.Text.Strings = (
'TAChart'
)
Toolset = ChartToolset1
Align = alClient
Anchors = []
Color = clWhite
object lsCurrent: TLineSeries
Title = 'A'
AxisIndexX = 1
AxisIndexY = 2
LinePen.Color = clRed
LinePen.Width = 2
end
object lsVoltage: TLineSeries
Title = 'V'
AxisIndexX = 1
AxisIndexY = 0
LinePen.Color = clBlue
LinePen.Width = 2
end
object lsInvisibleCurrent: TLineSeries
AxisIndexX = 1
AxisIndexY = 2
LinePen.Color = clWhite
end
object lsInvisibleVoltage: TLineSeries
AxisIndexX = 1
AxisIndexY = 0
LinePen.Color = clWhite
end
end
object memStepLog: TStringGrid
Left = 1
Height = 238
Top = 438
Width = 1408
Align = alBottom
ColCount = 8
Columns = <
item
Title.Caption = 'Step'
Width = 50
end
item
Title.Caption = 'cmd'
Width = 140
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'AH'
Width = 80
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'WH'
Width = 128
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'Time'
Width = 128
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'Start voltage'
Width = 100
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'End voltage'
Width = 100
end
item
Alignment = taRightJustify
Title.Alignment = taRightJustify
Title.Caption = 'End current'
Width = 100
end>
FixedCols = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goRowSelect, goSmoothScroll]
RowCount = 2
TabOrder = 0
TabStop = False
end
object ChartStepSplitter: TSplitter
Cursor = crVSplit
Left = 1
Height = 10
Top = 428
Width = 1408
Align = alBottom
ResizeAnchor = akBottom
end
end
object RightPanel: TPanel
Left = 1424
Height = 677
Top = -2
Width = 300
Anchors = [akTop, akRight, akBottom]
ClientHeight = 677
ClientWidth = 300
TabOrder = 1
object gbStatus: TGroupBox
AnchorSideTop.Control = RightPanel
AnchorSideRight.Control = RightPanel
AnchorSideRight.Side = asrBottom
Left = 7
Height = 175
Top = 1
Width = 290
Anchors = [akTop, akRight]
BorderSpacing.Right = 2
Caption = 'Status'
TabOrder = 2
end
object pcProgram: TPageControl
AnchorSideBottom.Control = gbSettings
Left = 8
Height = 310
Hint = 'Steps: Scripted charge and discharge cycles'
Top = 176
Width = 290
ActivePage = tsConsole
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Right = 2
Constraints.MaxWidth = 290
TabIndex = 3
TabOrder = 0
OnChange = pcProgramChange
object tsCharge: TTabSheet
Hint = 'Charge - Ctrl F1'
Caption = 'Charge'
ClientHeight = 277
ClientWidth = 280
OnEnter = tsChargeEnter
ParentShowHint = False
ShowHint = True
object rgCharge: TRadioGroup
Left = 0
Height = 158
Top = 0
Width = 280
Align = alTop
Anchors = [akTop, akRight, akBottom]
AutoFill = False
ChildSizing.LeftRightSpacing = 6
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 138
ClientWidth = 278
ItemIndex = 4
Items.Strings = (
'NiMH - Nickel-metal Hydride'
'NiCd - Nickel-cadmium'
'LiPo - Lithium Ion or Polymer'
'LiFe - Lithium Iron Phosphate'
'PbAc - Lead Acid'
'CCCV - CC and CV charging'
)
OnClick = rgChargeClick
TabOrder = 0
end
object ChargePannel: TPanel
Left = 0
Height = 120
Top = 158
Width = 280
Anchors = [akLeft, akRight, akBottom]
ClientHeight = 120
ClientWidth = 280
Constraints.MaxHeight = 120
Constraints.MinHeight = 120
TabOrder = 1
object lblMin: TLabel
Left = 214
Height = 19
Top = 80
Width = 53
Caption = '&minutes'
FocusControl = edtCutM
ParentColor = False
end
object Label10: TLabel
Left = 104
Height = 19
Top = 80
Width = 32
Caption = 'after'
FocusControl = edtCutM
ParentColor = False
end
object lblCells: TLabel
Left = 4
Height = 19
Top = 1
Width = 32
Caption = 'Ce&lls'
FocusControl = edtCells
end
object edtCells: TSpinEdit
Left = 4
Height = 36
Top = 20
Width = 91
OnChange = edtCellsChange
OnClick = edtCellsClick
OnEditingDone = edtCellsEditingDone
OnExit = edtCellsExit
OnKeyDown = edtCellsKeyDown
OnKeyUp = edtCellsKeyUp
TabOrder = 0
end
object edtChargeV: TFloatSpinEdit
Left = 146
Height = 36
Top = 20
Width = 94
TabOrder = 1
end
object lblChargeV: TLabel
Left = 146
Height = 19
Top = 1
Width = 50
Caption = '&Voltage'
FocusControl = edtChargeV
end
object edtCutA: TFloatSpinEdit
Left = 4
Height = 36
Hint = 'If the charge current will be lower than the cutoff current, charging will be stopped'
Top = 76
Width = 91
Increment = 0.1
ParentShowHint = False
ShowHint = True
TabOrder = 2
end
object lblCutA: TLabel
Left = 4
Height = 19
Top = 56
Width = 91
Caption = 'C&utoff current'
FocusControl = edtCutA
end
object edtCutM: TSpinEdit
Left = 146
Height = 36
Top = 76
Width = 62
TabOrder = 3
end
end
end
object tsDischarge: TTabSheet
Hint = 'Discharge - Ctrl F2'
Caption = 'Discharge'
ClientHeight = 277
ClientWidth = 280
OnEnter = tsDischargeEnter
ParentShowHint = False
ShowHint = True
object rgDischarge: TRadioGroup
AnchorSideLeft.Control = tsDischarge
AnchorSideRight.Control = tsDischarge
AnchorSideBottom.Control = DischargePanel
Left = 0
Height = 206
Top = 0
Width = 280
Align = alTop
Anchors = [akLeft, akRight, akBottom]
AutoFill = False
BorderSpacing.Bottom = 1
ChildSizing.LeftRightSpacing = 6
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 186
ClientWidth = 278
ItemIndex = 0
Items.Strings = (
'CC - Constant Current'
'CP - Constant Power'
'CR - Constant Resistance(SW)'
)
OnClick = rgDischargeClick
TabOrder = 0
end
object DischargePanel: TPanel
AnchorSideBottom.Control = tsDischarge
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 70
Top = 207
Width = 280
Anchors = [akLeft, akBottom]
ClientHeight = 70
ClientWidth = 280
Constraints.MaxHeight = 70
Constraints.MinHeight = 70
TabOrder = 1
object lblCutoffV1: TLabel
Left = 128
Height = 19
Top = 22
Width = 12
Caption = 'V'
Font.Height = -16
Font.Name = 'Sans'
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
object Label3: TLabel
Left = 10
Height = 19
Top = 2
Width = 93
Caption = 'Cutoff Voltage'
FocusControl = edtCutV
end
object edtCutV: TFloatSpinEdit
Left = 10
Height = 36
Top = 24
Width = 110
TabOrder = 0
end
end
end
object tsProgram: TTabSheet
Hint = 'Steps - Ctrl F3'
Caption = 'Steps'
ClientHeight = 277
ClientWidth = 280
ParentShowHint = False
ShowHint = True
object Label1: TLabel
Left = 8
Height = 19
Top = 1
Width = 85
Caption = 'Current step:'
ParentColor = False
end
object btnProg: TButton
Left = 72
Height = 25
Hint = 'Edit the current script, load one or create a new one <F12>'
Top = 160
Width = 168
Caption = 'Edit...'
ParentShowHint = False
ShowHint = True
TabOrder = 3
OnClick = btnProgClick
end
object lblStep: TLabel
Left = 199
Height = 19
Top = 1
Width = 48
Caption = 'Testing'
Color = clYellow
ParentColor = False
Transparent = False
end
object lblStepNum: TLabel
Left = 153
Height = 19
Top = 1
Width = 9
Caption = '0'
ParentColor = False
end
object lblProgTime: TLabel
Left = 132
Height = 19
Top = 61
Width = 62
Caption = '00:00:00'
ParentColor = False
end
object shaCapI: TShape
Left = 88
Height = 12
Top = 80
Width = 12
Brush.Color = clLime
Enabled = False
Shape = stCircle
end
object lblCapI: TLabel
Left = 25
Height = 19
Top = 79
Width = 63
Caption = 'CapI/EneI'
Enabled = False
ParentColor = False
end
object btnSkip: TButton
Left = 72
Height = 25
Hint = 'Abort the current step and continue with the next one <F11>'
Top = 130
Width = 168
Caption = 'Skip step'
Enabled = False
ParentShowHint = False
ShowHint = True
TabOrder = 2
OnClick = btnSkipClick
end
object lblTimer: TLabel
Left = 8
Height = 19
Top = 138
Width = 9
Caption = '0'
ParentColor = False
end
object edtDelim: TEdit
Left = 7
Height = 36
Top = 44
Width = 100
MaxLength = 2
TabOrder = 1
Text = '|'
end
object Label2: TLabel
Left = 7
Height = 19
Top = 24
Width = 90
Caption = 'Log separator'
ParentColor = False
end
object stStepFile: TStaticText
Left = 16
Height = 24
Top = -56
Width = 232
Caption = '(no file)'
TabOrder = 0
end
end
object tsConsole: TTabSheet
Hint = 'Console - Ctrl F4'
Caption = 'Console'
ClientHeight = 277
ClientWidth = 280
ParentShowHint = False
ShowHint = True
object memLog: TMemo
AnchorSideLeft.Control = tsConsole
AnchorSideTop.Control = tsConsole
AnchorSideRight.Control = tsConsole
AnchorSideRight.Side = asrBottom
Left = 0
Height = 280
Top = 0
Width = 280
Anchors = [akTop, akLeft, akRight, akBottom]
Font.Height = -9
Font.Name = 'DejaVu Sans Mono'
ParentFont = False
ScrollBars = ssVertical
TabOrder = 0
end
end
end
object gbSettings: TGroupBox
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = RightPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = RightPanel
AnchorSideBottom.Side = asrBottom
Left = 2
Height = 190
Top = 486
Width = 295
Anchors = [akRight, akBottom]
BorderSpacing.Right = 2
ClientHeight = 188
ClientWidth = 293
TabOrder = 1
object btnStart: TButton
Left = 11
Height = 26
Hint = 'Start charge,discharge or program'
Top = 97
Width = 78
Caption = '&Start'
Enabled = False
TabOrder = 6
OnClick = btnStartClick
end
object btnStop: TButton
Left = 88
Height = 26
Top = 97
Width = 78
Caption = 'St&op'
TabOrder = 7
OnClick = btnStopClick
end
object btnCont: TButton
Left = 11
Height = 26
Top = 123
Width = 78
Caption = 'Cont'
Enabled = False
TabOrder = 9
OnClick = btnContClick
end
object btnAdjust: TButton
Left = 88
Height = 26
Top = 123
Width = 78
Caption = 'Adjust'
Enabled = False
TabOrder = 10
OnClick = btnAdjustClick
end
object lblCutEnergy: TLabel
Left = 108
Height = 19
Top = 68
Width = 22
Caption = 'Wh'
Enabled = False
ParentColor = False
end
object chkCutCap: TCheckBox
Left = 260
Height = 23
Top = 44
Width = 23
Font.Height = -16
Font.Name = 'Sans'
ParentFont = False
TabOrder = 3
OnChange = chkCutCapChange
end
object chkCutEnergy: TCheckBox
Left = 109
Height = 23
Top = 44
Width = 23
Font.Height = -16
Font.Name = 'Sans'
ParentFont = False
TabOrder = 2
OnChange = chkCutEnergyChange
end
object lblCutCap: TLabel
Left = 255
Height = 19
Top = 69
Width = 17
Caption = 'Ah'
Enabled = False
ParentColor = False
end
object lblTestUnit: TLabel
Left = 115
Height = 19
Top = 22
Width = 9
Caption = 'A'
Enabled = False
ParentColor = False
ParentFont = False
end
object tbxMonitor: TToggleBox
Left = 165
Height = 52
Hint = 'Toggle monitor mode, showing current voltage and current while not charging or discharging'
Top = 97
Width = 110
Caption = '&Monitor'
Enabled = False
ParentShowHint = False
ShowHint = True
TabOrder = 8
OnChange = tbxMonitorChange
end
object edtTestVal: TFloatSpinEdit
Left = 11
Height = 36
Top = 18
Width = 98
Increment = 0.1
ParentFont = False
ParentShowHint = False
ShowHint = True
TabOrder = 0
end
object lblTestVal: TLabel
AnchorSideTop.Control = gbSettings
Left = 11
Height = 19
Top = 0
Width = 49
Caption = 'TestVal'
FocusControl = edtTestVal
end
object lblCutTime: TLabel
Left = 142
Height = 19
Top = 0
Width = 97
Caption = 'Max time (min)'
FocusControl = edtCutTime
end
object edtCutTime: TSpinEdit
Left = 141
Height = 36
Top = 18
Width = 109
ParentShowHint = False
ShowHint = True
TabOrder = 1
end
object edtCutEnergy: TFloatSpinEdit
Left = 11
Height = 36
Hint = 'End charge/discharge after the specified energy in WH has been put into or get from the battery'
Top = 64
Width = 96
ParentShowHint = False
ShowHint = True
TabOrder = 4
end
object lblCutEnergy2: TLabel
Left = 11
Height = 19
Top = 44
Width = 88
Caption = 'Cutoff energ&y'
FocusControl = edtCutEnergy
end
object edtCutCap: TFloatSpinEdit
Left = 143
Height = 36
Hint = 'End charge/discharge after the specified energy in AH has been put into or get from the battery'
Top = 64
Width = 109
Anchors = [akTop]
ParentShowHint = False
ShowHint = True
TabOrder = 5
end
object lblCutCap2: TLabel
Left = 142
Height = 19
Top = 44
Width = 99
Caption = 'Cutoff Capacity'
FocusControl = edtCutCap
end
end
end
object DateTimeIntervalChartSource: TDateTimeIntervalChartSource
DateTimeFormat = 'HH:MM:SS'
Steps = [dtsHour, dtsMinute, dtsSecond]
Left = 440
Top = 80
end
object ChartAxisTransformationsCurrent: TChartAxisTransformations
Left = 416
Top = 200
object ChartAxisTransformationsCurrentAutoScaleAxisTransform: TAutoScaleAxisTransform
end
end
object ChartAxisTransformationsVoltage: TChartAxisTransformations
Left = 416
Top = 280
object ChartAxisTransformationsVoltageAutoScaleAxisTransform: TAutoScaleAxisTransform
end
end
object ChartToolset1: TChartToolset
Left = 312
Top = 32
object ChartToolset1ZoomMouseWheelTool1: TZoomMouseWheelTool
end
end
object sdCSV: TSaveDialog
DefaultExt = '.csv'
Filter = 'CSV files|*.csv|All files|*.*'
Left = 808
Top = 256
end
object sdPNG: TSaveDialog
DefaultExt = '.png'
Filter = 'PNG files|*.png|All files|*.*'
Left = 152
Top = 208
end
object sdLogCSV: TSaveDialog
DefaultExt = '.csv'
Filter = 'CSV files|*.csv|All files|*.*'
Left = 290
Top = 367
end
object tmrWait: TTimer
Enabled = False
OnTimer = tmrWaitTimer
Left = 720
Top = 48
end
object MainMenu: TMainMenu
Left = 624
Top = 48
object mmm_File: TMenuItem
Caption = '&File'
object mm_Connect: TMenuItem
Caption = '&Connect'
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000000000000000000000000000000000000000000000000
0047000000FF000000FF000000FF000000300000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000480000
00F4000000000000000000000002000000FD0000004E00000000000000000000
0000000000000000000000000000000000000000000000000000000000FF0000
000000000000000000000000000000000000000000FD0000004E000000000000
0000000000000000000000000000000000000000000000000000000000FF0000
00000000000000000000000000000000000000000000000000FD0000004E0000
0000000000000000000000000000000000000000000000000000000000FF0000
0002000000000000000000000000000000000000000000000000000000D70000
0000000000000000000000000000000000000000000000000000000000310000
00FD0000000000000000000000000000000000000000000000000000001C0000
002A000000000000000000000000000000000000000000000000000000000000
004F000000FD00000000000000000000000000000013000000FF000000CE0000
00BB000000FF0000004B00000000000000000000000000000000000000000000
000000000050000000FD00000000000000000000000D00000008000000000000
000000000000000000FD0000004E000000000000000000000000000000000000
0000000000000000004F000000FD000000000000000000000000000000110000
000C0000000000000000000000FD0000004E0000000000000000000000000000
000000000000000000000000004B000000FF000000C5000000DF000000FF0000
000A000000000000000000000000000000FD0000004E00000000000000000000
0000000000000000000000000000000000000000001F0000000E000000000000
000000000000000000000000000000000000000000FD0000002D000000000000
00000000000000000000000000000000000000000000000000E5000000000000
00000000000000000000000000000000000000000003000000FF000000000000
000000000000000000000000000000000000000000000000004F000000FD0000
00000000000000000000000000000000000000000000000000FF000000000000
00000000000000000000000000000000000000000000000000000000004F0000
00FD0000000000000000000000000000000000000002000000FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
004F000000FD000000030000000000000001000000FB00000034000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000002E000000FF000000FF000000FF0000003500000000
}
Hint = 'Connect to charger'
ShortCut = 120
OnClick = mm_ConnectClick
end
object mm_Disconnect: TMenuItem
Caption = '&Disconnect'
Enabled = False
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000056000000FF000000FF000000FD00000019000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000056000000FF00000020000000000000005B000000FF000000290000
0000000000000000002D0000003D000000000000000000000000000000000000
0000000000FF0000002100000000000000000000000000000030000000FF0000
00010000002D000000FF0000002C000000000000000000000000000000000000
0000000000FF0000000000000000000000000000000000000000000000020000
002D000000FF0000002C00000000000000000000000000000000000000000000
0000000000FD00000060000000000000000000000000000000000000002D0000
00FF0000002C0000000200000000000000000000000000000000000000000000
000000000017000000FF0000003400000000000000000000002D000000FF0000
002C00000003000000FF0000002B000000000000000000000000000000000000
00000000000000000028000000FF000000030000002D000000FF0000002C0000
00000000000000000030000000FF0000001A0000000000000000000000000000
00000000000000000000000000010000002D000000FF0000002C000000000000
000000000000000000000000005B000000FD0000000000000000000000000000
000000000000000000000000002D000000FF0000002C00000003000000000000
0000000000000000000000000000000000FF0000000000000000000000000000
0000000000000000002D000000FF0000002C00000001000000FF000000340000
0000000000000000000000000021000000FF0000000000000000000000000000
000000000000000000390000002C000000000000000000000027000000FF0000
00600000000000000022000000FF000000560000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000170000
00FD000000FF000000FF00000055000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
Hint = 'Disconnect from charger'
ShortCut = 8312
OnClick = mm_ConnectClick
end
object Separator1: TMenuItem
Caption = '-'
end
object mm_Quit: TMenuItem
Caption = '&Quit'
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000000000000000000000000000000000000000000000000
000000000000000000000000002E000000E2000000FF000000FF000000FF0000
00E10000002C0000000000000000000000000000000000000000000000000000
000000000000000000F6000000FE000000580000000000000000000000000000
0068000000FF000000F500000000000000000000000000000000000000000000
0000000000FF0000008100000000000000000000000000000000000000000000
000000000000000000A0000000FF000000000000000000000000000000000000
00F6000000830000000000000000000000000000000000000000000000000000
00000000000000000000000000A3000000F300000000000000000000002C0000
00FE000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000FF0000002500000000000000E10000
005C000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000074000000D900000000000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000002000000FF00000000000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FF00000000000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FF00000000000000F30000
0062000000000000000000000000000000000000001A000000FF000000000000
000000000000000000000000000000000056000000EE00000000000000520000
00FF000000000000000000000000000000000000002B000000FF000000000000
0000000000000000000000000000000000FA0000004D00000000000000000000
00FF000000A00000000000000000000000000000002B000000FF000000000000
000000000000000000000000005C000000FF0000000000000000000000000000
000C000000FF0000009A00000000000000000000002B000000FF000000000000
00000000000000000065000000FF0000000C0000000000000000000000000000
000000000009000000FE000000D4000000000000002B000000FF000000000000
0000000000D5000000FF0000000A000000000000000000000000000000000000
000000000000000000000000002B000000000000002B000000FF000000000000
00000000002E0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000001A000000FF000000000000
0000000000000000000000000000000000000000000000000000
}
ShortCut = 32856
OnClick = mm_QuitClick
end
end
object mmm_Data: TMenuItem
Caption = 'D&ata'
ShortCut = 16454
object mm_savePng: TMenuItem
Caption = 'Save to &png'
ShortCut = 113
OnClick = mm_savePngClick
end
object mm_saveCsv: TMenuItem
Caption = 'Save to &CSV'
ShortCut = 16467
OnClick = mm_saveCsvClick
end
object Separator2: TMenuItem
Caption = '-'
end
object mm_setCsvLogFile: TMenuItem
Caption = 'Set CSV log &file'
ShortCut = 118
OnClick = mm_setCsvLogFileClick
end
object mm_AutoLog: TMenuItem
Caption = '&Auto Log'
Hint = 'Toggle CSV auto log file naming'
ShortCut = 8311
OnClick = mm_AutoLogClick