Skip to content

Commit 8cb4932

Browse files
committed
mp library document API added
1 parent 3c1bd46 commit 8cb4932

11 files changed

+127
-192
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,5 @@
3131
*.out
3232
*.app
3333
*.db
34+
*.stat
35+
*.opendb

Delphi/MPLibrary_Delphi.dpr

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ uses
1313
uMPHeader_Delphi in 'src\uMPHeader_Delphi.pas',
1414
uMPFunctionsImpl in 'src\uMPFunctionsImpl.pas',
1515
uTSMasterInternal_Delphi in 'src\uTSMasterInternal_Delphi.pas',
16-
uIncLibTSMaster in 'src\uIncLibTSMaster.pas';
16+
uIncLibTSMaster in 'src\uIncLibTSMaster.pas',
17+
uMPDocuments in 'src\uMPDocuments.pas';
1718

1819
{$R *.res}
1920

2021
exports
2122
initialize_miniprogram, // start run of mini program
2223
finalize_miniprogram, // stop run of mini program
23-
retrieve_mp_abilities; // get mp abilities before run
24+
retrieve_mp_abilities, // get mp abilities before run
25+
write_api_document; // write api document
2426

2527
begin
2628
end.

Delphi/MPLibrary_Delphi.dproj

+63-190
Large diffs are not rendered by default.

Delphi/src/uIncLibTSMaster.pas

+3
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ interface
160160
TLIBTSMasterLogger = procedure(const AStr: PAnsiChar; const ALevel: Integer); stdcall;
161161
TFirmwareUpdateCallback = procedure(const AOpaque: TObject; const AStatus: UInt32; const APercentage100: Single); stdcall;
162162
TOnIoIPData = procedure(const APointer: Pointer; const ASize: Integer); stdcall;
163+
TLIBWriteAPIDocumentFunc = procedure (const AObj: Pointer; const AName: pansichar; const AGroup: pansichar; const ADesc: pansichar; const AExample: pansichar; const AParaCount: integer); stdcall;
164+
TLIBWriteAPIParaFunc = procedure (const AObj: Pointer; const AIdx: integer; const AAPIName: pansichar; const AParaName: pansichar; const AIsConst: boolean; const AParaType: pansichar; const ADesc: pansichar); stdcall;
165+
TLIBWriteAPIDocument = procedure (const AObj: Pointer; const AWriteDoc: TLIBWriteAPIDocumentFunc; const AWritePara: TLIBWriteAPIParaFunc); stdcall;
163166

164167
{$Z4}
165168
// for c type

Delphi/src/uMPDocuments.pas

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
unit uMPDocuments;
2+
3+
interface
4+
5+
uses
6+
windows,
7+
sysutils,
8+
classes,
9+
uinclibtsmaster;
10+
11+
procedure write_api_document(const AObj: Pointer; const AWriteDoc: TLIBWriteAPIDocumentFunc; const AWritePara: TLIBWriteAPIParaFunc); stdcall;
12+
13+
implementation
14+
15+
procedure write_api_document(const AObj: Pointer; const AWriteDoc: TLIBWriteAPIDocumentFunc; const AWritePara: TLIBWriteAPIParaFunc); stdcall;
16+
const
17+
GROUP_NAME = 'MPLibrary_Delphi';
18+
begin
19+
// API - perform_add
20+
AWriteDoc(AObj, 'perform_add', GROUP_NAME, 'Simple add function API exported by Delphi', 's32 i = MPLibrary_Delphi.perform_add(1, 2);', 2);
21+
AWritePara(AObj, 0, 'perform_add', 'A1', true, 's32', 'Parameter 1');
22+
AWritePara(AObj, 1, 'perform_add', 'A2', true, 's32', 'Parameter 2');
23+
// API - perform_dec
24+
AWriteDoc(AObj, 'perform_dec', GROUP_NAME, 'Simple dec function API exported by Delphi', 's32 i = MPLibrary_Delphi.perform_dec(1);', 1);
25+
AWritePara(AObj, 0, 'perform_dec', 'A1', true, 's32', 'Parameter 1');
26+
27+
end;
28+
29+
end.

VC++/MPExport.def

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ EXPORTS
33
initialize_miniprogram
44
finalize_miniprogram
55
retrieve_mp_abilities
6+
write_api_document

VC++/MPLibrary-VC.vcxproj

+2
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@
162162
<ClInclude Include="pch.h" />
163163
<ClInclude Include="Test.h" />
164164
<ClInclude Include="TSMaster.h" />
165+
<ClInclude Include="TSMasterBaseInclude.h" />
165166
</ItemGroup>
166167
<ItemGroup>
167168
<ClCompile Include="Database.cpp" />
@@ -174,6 +175,7 @@
174175
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
175176
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
176177
</ClCompile>
178+
<ClCompile Include="TSMasterBaseSource.cpp" />
177179
</ItemGroup>
178180
<ItemGroup>
179181
<None Include="MPExport.def" />

VC++/MPLibrary-VC.vcxproj.filters

+6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
<ClInclude Include="TSMaster.h">
3434
<Filter>头文件</Filter>
3535
</ClInclude>
36+
<ClInclude Include="TSMasterBaseInclude.h">
37+
<Filter>头文件</Filter>
38+
</ClInclude>
3639
</ItemGroup>
3740
<ItemGroup>
3841
<ClCompile Include="dllmain.cpp">
@@ -50,6 +53,9 @@
5053
<ClCompile Include="MPLibCodeExtern.cpp">
5154
<Filter>源文件</Filter>
5255
</ClCompile>
56+
<ClCompile Include="TSMasterBaseSource.cpp">
57+
<Filter>源文件</Filter>
58+
</ClCompile>
5359
</ItemGroup>
5460
<ItemGroup>
5561
<None Include="MPExport.def">

VC++/TSMaster.h

+2
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,8 @@ typedef void (__stdcall *TProcedureSetCANFD)(const void* AObj, const PCANFD AVal
423423
typedef TCANFD (__stdcall *TTCANFDFunction)(const void* AObj);
424424
typedef void (__stdcall *TProcedureSetLIN)(const void* AObj, const PLIN AValue);
425425
typedef TLIN (__stdcall *TTLINFunction)(const void* AObj);
426+
typedef void(__stdcall* TWriteAPIDocumentFunc)(const void* AOpaque, const char* AName, const char* AGroup, const char* ADesc, const char* AExample, const s32 AParaCount);
427+
typedef void(__stdcall* TWriteAPIParaFunc)(const void* AOpaque, const s32 AIdx, const char* AAPIName, const char* AParaName, const bool AIsConst, const char* AParaType, const char* ADesc);
426428

427429
// TSMaster variable =============================================
428430
typedef struct {

VC++/TSMasterBaseInclude.h

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#ifndef __TSMASTER_BASE_INCLUDE
2+
#define __TSMASTER_BASE_INCLUDE
3+
4+
#include "TSMaster.h"
5+
6+
#endif

VC++/TSMasterBaseSource.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#include "TSMasterBaseInclude.h"
2+
3+
DLLEXPORT void __stdcall write_api_document(const void* AOpaque, const TWriteAPIDocumentFunc AAPIFunc, const TWriteAPIParaFunc AParaFunc){
4+
AAPIFunc(AOpaque, "func1", "MPLibraryVC", "description of this example API", "s32 i = MPLibraryVC.func1(1, 2);", 2);
5+
AParaFunc(AOpaque, 0, "func1", "A1", true, "s32", "Parameter 1");
6+
AParaFunc(AOpaque, 1, "func1", "A2", true, "s32", "Parameter 2");
7+
8+
}
9+

0 commit comments

Comments
 (0)