Special apology to the广大 users who like this set of software:
Because the "WinSail system kernel" uploaded earlier was an earlier work, the latest "kernel" has been uploaded now. Please re-download it in "Products List/Software Products/WinSail/Attachments" at "http://www.FirstSail.b2b.Cn".
I. File Description
1: File: WinSail Industrial Control Development System.doc------Brief user manual for WinSail system (old version)
2: File: WinSail Industrial Control Development System_Interface Class Introduction.doc------Interface development manual for WinSail system (old version)
3: Directory: WinToDos---------------------Conversion program
4: Directory: include2---------------------System "header files" and "library files"
5: Directory: Sail3000---------------------Application engineering examples
6: Directory: Application------------------VC++ program, multiple dialog boxes of the system kernel are converted from it.
II. File Description in include2 Directory
01: Barcode.h-----------Header file for barcode display/printing, class interface
02: DownComm.h---------- COMM port communication, class interface
03: Foxpro.h------------ Foxpro2.6 database, class interface
04: GageRR.h------------ Report on measurement reliability and repeatability, class interface
05: Graph.h------------- Oscilloscope and multi-ordinate oscilloscope, class interface
06: HglgPrit.h---------- Display of text, BITMAP pictures, ICON icons, WAV sound playback, API interface
07: Kernal.h------------ Multitasking, API interface
08: Listing.h----------- Doubly linked list, class interface
09: Memroy.h------------ XMS and EMS memory, class interface
10: Mouse.h------------ Mouse, API interface
11: MyFrame.h---------- Controls and kernel initialization, class and API interface
12: NewMath.h---------- Mathematical library, API interface
13: Register.h--------- Reading and writing access to text INI file, class interface
14: Relay.h------------ Object-oriented I/O access, API interface
15: Spc.h-------------- Process statistics control SPC, class interface
16: SVga_Dev.h--------- Graphics driver for 800*600*256, 1024*768*256 resolution, API interface
17: Symbol.h----------- Symbol definition
18: EgavgaF.Obj-------- BC31 far call driver program
19: Sail.Lib----------- System library file
20: Socket3.H----------- Socket socket programming (supports Arp, Icmp, Udp, Tcp protocols, link layer uses Packet Driver)
III. File Description in Sail3000 Directory
01: Config.Sys----------- System driver configuration file
02: Display.Fon---------- 8*16 English character font and 16*16 simplified Chinese character font
02: DisplayF.Fon--------- 8*16 English character font and 16*16 traditional Chinese character font
03: Dwpword.Exe---------- File for viewing user and password (advanced application)
04: Pass.Bin------------- User and password database, binary
05: Mouse.Com------------ Mouse driver program
06: Sail2000.Cpp--------- Source file example of user project
07: Sail2000.Prj--------- Project file example of user project
08: Sail2000.Exe--------- Main program of user project
09: a.bat---------------- Batch file of user project
10: Sys\Destop.Sys------- Desktop configuration file of user project
11: Sys\Manager.Sys------ Desktop configuration file of user project
12: Sys\Relay.Sys-------- I/O configuration file of user project
13: Bmp\Computer.Bmp----- A picture used by the kernel
14: Bmp\Desktop.Bmp------ A picture used by the kernel
15: Bmp\Winnt.BMp-------- A picture used by the password box
16: Bmp\Sail2000.Ico------ Default title bar icon of the window
17: Bmp\BookS??.Ico------ Default icon of the menu
18: Bmp\MsgBox??.Ico----- Icon used by the information box
19: Bmp\Display.Ico------ A picture used by the kernel
20: Bmp\Net.Ico---------- A picture used by the kernel
IV. File Description in WinToDos Directory
For the files in the VC project, only "Project.rc" and "Resource.h" files are valuable
01: MakeDlg.Exe---------- Convert the resource dialog box in VC into the dialog box source program or script file of WinSail
02: RegisterDll.Dll------ DLL file supporting MakeDlg.Exe to access text INI registry
V. Configuration Instructions for DOS Boot File
Assume that the directory name of Win is "c:\Windows" and the directory of BC31 is "C:\Bc31"
Please configure C:\Config.Sys as follows
Device = C:\Windows\Himem.Sys/TestMem:Off
Device = C:\Windows\Emm386.Exe Ram HighScan
DOS = High,Umb
Stacks = 9,256
Files = 25
Please configure C:\Autoexec.Bat as follows
path C:\Windows;C:\Windows\Command;C:\Bc31\Bin
Lh SmartDrv.Exe
VI. Requirements for Main() Main Function
1: Need to include header files "Symbol.h" and "MyFrame.h"
2: First call BOOL InitSystem(int argc, char** argv) kernel initialization function
3: Write your own code in the middle
4: Finally call BOOL CloseSystem() kernel exit function.
5: Example:
#include "Symbol.h"
#include "Myframe.h" extern unsigned _strlen = 60u * 1024u;
//Default virtual keyboard callback function for all windows
void far TransrateKey(CObject* pCurObj)
{
return(0);
} int main(int argc, char** argv)
{
//System kernel initialization
if (!InitSystem(argc, argv))
{
::CloseSystem() ;
::printf("\nInit System Error!") ;
return(0);
} //User code starts
//…… //User code ends //Exit system kernel
::CloseSystem();
return(1);
}
VII. How to Create Sail2000 Project and Code
01: Install BC31 in the C drive, preferably the directory is C:\Bc31
02: The user creates "Include2" directory in their own BC31 directory
03: Copy all files in include2\*.* to the "include2" directory of C:\bc31
04: In the BC31 integrated environment, set the "Include include" path to "c:\bc31\include2;c:\bc31\include"
05: In the BC31 integrated environment, set "Large" large mode; "Default for memory model" default memory mode.
06: In the BC31 integrated environment, set Floating Point to "80287/387" and Instruction Set to "80386"
07: In the BC31 integrated environment, create a project, assume the project name is Sail2000.Prj
08: Add the kernel library file C:\BC31\include2\Sail.Lib to the project
09: Add the graphics library file C:\BC31\include2\Egavgaf.Obj to the project
10: In the project, the function void far TransrateKey(CObject* pCurObj) must be written, generally as follows
void far TransrateKey(CObject* pCurObj)
{
return(0);
}
VIII. How to Create Your Own Control and Hook It into the Window System.
Want to customize a personalized control of your own, assume the class name is "CCustomCtrl", inherit from CObject base class For the situation where focus is not needed For the situation where focus is needed class CCustomCtrl:public CObject{public: void Show();//Draw controlpublic: CCustomCtrl(CObject* pParent); //Constructor};//ConstructorCCustomCtrl::CCustomCtrl(CObject* pParent):CLabel(pParent){ //…}//Redraw controlvoid CCustomCtrl::Show(){RECT rc this->GetScreenRect(&rc);//Get the screen position of the control//…}class CCustomCtrl:public CObject{public:void Show();//Draw controlvoid SetFocus();//When the control gets focusvoid KillFocus();//When the control loses focuspublic: CCustomCtrl(CObject* pParent); //Constructor};//ConstructorCCustomCtrl::CCustomCtrl(CObject* pParent):CLabel(pParent){this->SetTab(TRUE);//Set the control to be able to accept focus//…}//Redraw controlvoid CCustomCtrl::Show(){RECT rc this->GetScreenRect(&rc);//Get the screen position of the control//…}//When the control gets focusvoid CCustomCtrl::SetFocus(){ //…}//When the control loses focusvoid CCustomCtrl::KillFocus(){ //…}