⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1061e201b75f001d1289bbda6de18a35

📁 Vxworks环境下
💻
📖 第 1 页 / 共 2 页
字号:
/*$Log:**** Rev /main/NC_V0_integration/12** Date: Apr 17 17:33:43 2008 abdeaity** neue fkeys**** Rev /main/NC_V0_integration/11** Date: Apr 2 17:46:59 2008 karlgros** Grafik Applikation auf OEM-Partitition GUI_Demo**** Rev /main/NC_V0_integration/10** Date: Mar 7 17:45:10 2008 karlgros** changed MO_DIAGNOSE to the right key**** Rev /main/NC_V0_integration/9** Date: Mar 5 13:47:55 2008 abdeaity** define Clrt F tasten**** Rev /main/NC_V0_integration/8** Date: Jan 10 15:12:26 2008 abdeaity** exclude pxr0vxsc.h**** Rev /main/NC_V0_integration/7** Date: Nov 1 17:12:28 2007 abdeaity** Kommentar HMI Demo V2 **** Rev /main/NC_V0_integration/6** Date: Oct 30 15:12:51 2007 karlgros** putenv (benutzt in dab) fuer getenv von Tilcon**** Rev /main/NC_V0_integration/5** Date: Jun 6 17:10:18 2007 abdeaity** Kommentar:example of getting the text from system**** Rev /main/NC_V0_integration/4** Date: Jun 1 15:17:49 2007 abdeaity** Kommentar:exclude pxr0xx.h**** Rev /main/NC_V0_integration/3** Date: May 9 17:9:51 2007 abdeaity** Kommentar:call new functions**** Rev /main/NC_V0_integration/2** Date: Mar 13 13:58:1 2007 rolfglei** Log-Syntax geaendert*//*** ---------------------------------------------------------------------**                Copyright (c) Bosch Rexroth AG 1997 - 2007**                        All Rights Reserved** ---------------------------------------------------------------------****    File: dab_h_startgra.c** **    Responsible: AB** **    Description of functions:**                This file is the main File of the graphic task.**                It contain the needed steps to interface to NC Kernel**                on the basis of NCS and to interface to the Tilcon EVE**                There are a few platform-specific commands that need **                to be compiled into the program: **		  We define one of the following according to which **                platform we use:**                1. #define CC_TRT_DOS and #define HWDS_WINDOWS for**                        a Win32 applications**                                   OR**		  2. #define CC_TRT_VXWORKS for an applications running **                       on BRC Target whith Vxworks****					                           **                 in this file we will:**			  -  Start the  GUI task **			  -  Connect the GUI task to NCS   **			  -  InitializeApp (Start the Tilcon Engine EVE,**                        - Open channel to the EVE,Initialize Callbacks**                              Loead Window...)**			  -  wait for events from EVE**			  -  call callback Funktion as example to get **                           axis values, axis number....  ** ** ---------------------------------------------------------------------*//*======================================================================**           >>>>    C - Standard Headerfiles        <<<<** ==================================================================== */#ifdef HWDS_WINDOWS #include <windows.h> /* required for all Windows applications*/#include <stdlib.h>#include <stdio.h>#endif#include <time.h>#include <string.h>/* include Tilcon API functions *//* All function Names begining with TRT_ are Tilcon funktions*//*lint -e46*//*lint -e49*//*lint -e10*/#include <tilcon/TRTAPI.h> 	// Tilcon API functions/*lint +e46*//*lint +e49*//*lint +e10*//*======================================================================**           >>>>    General definitions for c-files <<<<**        these lines are generated automatically , do not modify !** ==================================================================== */#include <ty3c_mac.h>/*F*//*======================================================================**           >>>>    MTX - Headerfiles               <<<<** ==================================================================== */#ifndef HWDS_WINDOWS#ifndef PXR1OSTY_INCLUDED#include "pxr1osty.h"#endif#endif#ifndef NCS1MCSY_INCLUDED#include "ncs1mcsy.h"#endif#ifndef NCS1MCCN_INCLUDED#include "ncs1mccn.h"#endif#ifndef NCS1BAS_INCLUDED#include "ncs1bas.h"#endif #ifndef NCS1WEA_INCLUDED#include "ncs1wea.h"#endif #ifndef NCS1BAP_INCLUDED#include "ncs1bap.h"#endif /*======================================================================**           >>>>    Headerfiles of the subsystem    <<<<** ==================================================================== */#ifdef HWDS_WINDOWS#include "dab_h_win32.h"#endif#ifndef DAB_H_STARTGRA_INCLUDED#include "dab_h_startgra.h"#endif#ifndef DAB_H_ENGINE_IF_INCLUDED#include "dab_h_engine_if.h"#endif#ifndef DAB_H_WEA_INCLUDED#include "dab_h_wea_if.h"#endif#ifndef DAB_H_EVHAN_INCLUDED#include "dab_h_evhan.h"#endif#ifndef DAB_H_AXIS_IF_INCLUDED#include "dab_h_axis_if.h"#endif#ifndef DAB_H_OBJIDS_INCLUDED#include "dab_h_ObjIDs.h"#endif#ifndef DAB_H_CALLBACKS_INCLUDED#include "dab_h_callbacks.h"/*the Header file with Callback Funktions*/#endif#ifndef DAB_H_DIREXP_IF_INCLUDED#include "dab_h_direxp_if.h"#endif#ifndef DAB_H_GETMACPAR_INCLUDED#include "dab_h_getmacpar.h"#endif#ifndef DAB_H_NCEDITOR_INCLUDED#include "dab_h_nceditor.h"#endif#ifndef DAB_H_MEM_INCLUDED#include "dab_h_mem.h"#endif#ifndef DAB_H_MENUIF_INCLUDED#include "dab_h_menuif.h"#endif #ifndef DAB_H_MNTNANCE_INCLUDED#include "dab_h_mntnance.h"#endif#ifndef DAB_H_KYESDEF_INCLUDED#include "dab_h_keysdef.h"#endif#include "dab_h_cpl.h" /*Jiang add it*/IMPORT void Directory_Load(void);IMPORT void FileReadTest(void);/*F*//*======================================================================**           >>>>    Local definitions               <<<<** ==================================================================== *//* Plattform specifacation for Tilcon EVE */#ifdef	CC_TRT_VXWORKS	     /* if the Engine (EVE) will run on Vxworks*/#define OS_TYPE TRT_VXWORKS#endif#ifdef CC_TRT_DOS	 /*if the Engine (EVE) will run on a windows PC*/#define OS_TYPE TRT_MS_WINDOWS			#endifEXPORT pid_t TRT_cid;EXPORT TRT_ReceiveData rec_data;EXPORT int EngineStatus;#define MAXWatchNr 40                 /*we can monitor only 40 watchponts at same time.*/char    FileFoldBuf[100];             /*it will save Directory you select.*/char Currentfileselect[20]=""; /*It will save the file name only.*/long WatchPointRecordNr=0;            /*Use it help me to operate the Watchpoint record.*/         struct  WatchPoint_ID{	char Name[20];                    /*"@1"*/	int  ID;						    /*save ID gived by system*/ 	int  Index;                       /*watchpoint element place in the array.*/	int  Value;                       /*watchpoint element value in the array.*/}WatchPointRecord[MAXWatchNr];        /*Use it to Save the Watchpoint*/ /***************************************************************************This function can help us to get correct file path. **For example "\usr\user"--->"/usr/user"*/void ChangeChar(char *Setence,char oldchar, char newchar)   {   	char* p= Setence;   	while(*p !='\0')   	{   		if(*p == oldchar)   			*p = newchar;   		p++;   	}   	}/***************************************************************************This function can help us to find CPL variable from the variavle tree.***/void Find_PermVariable(char* source){   char* Hold=source;   char* p;   char* q;   q=Hold;   while(*q!=0) q++;   p=q;   while(*p!='@')p--;   TRT_SetValues(TRT_cid2, "WatchSelect",		TRT_ATT_TEXT,p,		NULL);                             }/*F*//*************************************************************************** >AUTHOR        : AB**  FUNCTIONNAME  : ChangeConnectSymbol** ** >DESCRIPTION: this funktion is  an example function for Display and hid**                the connect Symbol on the Window** ** >NOTES:** ** >PARAMETER:   status =1 -> connected to target**                     =0 -> Disconnected** ** >RETURN VALUE:** ** >INCLUDES:** */LOCAL void ChangeConnectSymbol(char status){  long Error=0;  if (status ==1)  {    /* Hide the disconnected symbol */    Error=TRT_Hide(TRT_cid, DISCONNEC_SYMBOL_ICON_ID);    /* Display the connected symbol*/    Error+=TRT_Display(TRT_cid, CONNEC_SYMBOL_ICON_ID);   }  else if(status==0)  { /* Hide the connect symbol */    Error=TRT_Hide(TRT_cid, CONNEC_SYMBOL_ICON_ID);     /* Display the disconnect symbol*/    Error+=TRT_Display(TRT_cid, DISCONNEC_SYMBOL_ICON_ID);  }  if(Error)  {/*Traitment of Error*/  }}  /* OF ChangeConnectSymbol *//*F*//*************************************************************************** >AUTHOR        : AB**  FUNCTIONNAME  : ConnectGUItoNCS** ** >DESCRIPTION: Connect the GUI task to NCS** ** >NOTES: there is a deference in the call of NC_OPEN()**	   between the PC variante and the BRC Target variante. ** ** >PARAMETER:** ** >RETURN VALUE: No one** ** >INCLUDES:** */LOCAL void ConnectGUItoNCS(void){  Ncs_Mbx_t HMI_EventHandlerMailbox;/* MailBox for receive ncs Responce*/#ifdef HWDS_WINDOWS  HWND    hWnd = (HWND) NULL;#endif  /* get the ID of the mail box of the event handler mailbox created     from event handler task*/    dab_h_GetEvHanMailbox(&HMI_EventHandlerMailbox);  #ifdef HWDS_WINDOWS  /* for PC variante the hwnd is the ID of the Mailbox  */  hWnd = (HWND) HMI_EventHandlerMailbox;  /* Register the GUI-Task by NCS   */  /* for synchron and asynchron Requests */  /*the response of synchron requests will be Processed in this Task*/  /*the response of asynchron requests will be*/   /*  Processed in Event Handler Task*/  if (Ncs_Open(               NCS_SYNC_LENT_C,/*synchronous and asynchronous requests */               /* For asynchronous requests, a socket that has */               /* already be created for asynchronous requests.*/               /* we use this parameter because an Ncs_open with*/               /* NCS_SYNC_ASYNC_C */               /*is already occurred in evant handler Task.*/               "10.110.241.86",  /* IP Adresse of the Target.*/                                 /*change as necessary*/               hWnd,             /* Windo handle of the calling program*/               WM_ASYNC_READ,    /* Message that is sent to the*/                                  /*hWnd window in*/                /*the case of an asynchronous response.*/                /* The MessageNumber must be higher than*/               /* WM_USER + 0x100*/               /* we use  #define WM_ASYNC_READ (WM_USER+0x101);*/               5)   /*Time in seconds after which a timeout shall */      /*occur for a */      /*synchronous call. 0 disables the timeout.*/      != Ncs_ErrOk)    {    /* Error Traitement */     Ncs_WeaSetCritSysErr(0,"");  }#else                /* GUI is running on Target */                     /*the NCS_Open will be called as below*/  if (Ncs_Open(               NCS_SYNC_LENT_C,                &HMI_EventHandlerMailbox,               TRUE,   /*ResourceWaitMode:what to do if the Sendepuffer*/               /* is occupied bei belegten Sendepuffern.*/               /*    TRUE -> wait of free Sendebuffer*/               /*    FALSE-> dont wait,beack off with Error*/               0)     /*Time in seconds after which a */                      /*timeout shall occur for a */      /*synchronous call. 0 disables the timeout.*/      != Ncs_ErrOk)  {    /* Error Traitement */     Ncs_WeaSetCritSysErr(0,"");  }#endif}  /* OF ConnectGUItoNCS *//*F*//*************************************************************************** >AUTHOR        : AB**  FUNCTIONNAME  : Dab_h_WaitForEngineStart** ** >DESCRIPTION: the event handler task will try to open a channel to **              Tilcon EVE but for a communication with Tilcon EVE the EVE**             mus be started first.this function synchronise the start. ** ** >NOTES: this function will be called from event handler task **           in module dab_h_evhan.c** ** >PARAMETER: void** ** >RETURN VALUE: void ** ** >INCLUDES: "ab_h_startgra.h"** */EXPORT void Dab_h_WaitForEngineStart(void){  boolean WaitingForEngine= TRUE;  while (WaitingForEngine == TRUE)  {    if(EngineStatus == 0)    {      Dab_h_Delay(500);/*Wait*/      WaitingForEngine = TRUE;    }    else    {      WaitingForEngine = FALSE;    }  }}  /* OF Dab_h_WaitForEngineStart *//*F*//*************************************************************************** >AUTHOR        : AB**  FUNCTIONNAME  :  InitializeApp** ** >DESCRIPTION: Do everything that can be done before getting an event **               from outside.**               Start timers, clocks, etc.  Load/display primery windows.**               Update their objects.  Initialize data/structures.  **		 A local Tilcon EVE wil be launched.**		 we will open a channel to the EVE kernel (TRT_cid) and **               tell it to display the display the primery window **** ** >NOTES:       for more Information see the Tilcon Help** ** >PARAMETER: void** ** >RETURN VALUE: errorcode if an error is occurred else 0** ** >INCLUDES:** */LOCAL long InitializeApp(void){  long errorcode = 0;  TRT_FontRegister fontRegisterProps;  long taskMask;  short int TofElements = 4;  short int NofParameters = 1;  char      file_ext[5] = "";  short int Error = 0;    /* set tilcon environment */  putenv ("Tilcon=/ata0a/GUI_Demo");  TRT_StartData StartData; /* Strucktur of start data */  StartData.Os_Env  = OS_TYPE; /* Opereting system is seting at */  /*the beginning of this file */  StartData.Display	= NULL; /* we use 1 Display. muss be null */  StartData.IPAddr	= NULL;	/*IP addr if the Engine will be used in*/                                /* a remote mode.Hier is NULL  */  StartData.AppName	= "HermesHMI"; /* the name of this aplikation */  /*if you change it hier you have*/   /*to change it in*/   /*dab_h_evhan.c too*/  StartData.Userprog 	= "GUI_TASK";  /* a name of user Programe*/   /*can be changed too*/  StartData.Flags		= FALSE;   errorcode =TRT_StartEx (0, &StartData); /* Start the Tilcon EVE */  if(errorcode)  {/*Traitment of Error*/  }     EngineStatus=1;       /* Engine is started ->*/  /* set the syncronisation signal*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -