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

📄 vars_access.c

📁 Source code for an Numeric Cmputer
💻 C
字号:
/* Classic Ladder Project *//* Copyright (C) 2001-2003 Marc Le Douarain *//* mavati@club-internet.fr *//* http://www.multimania.com/mavati/classicladder *//* February 2001 *//* Last update : 14 April 2003 *//* --------------------------------------- *//* Access a variable for reading / writing *//* --------------------------------------- *//* This library is free software; you can redistribute it and/or *//* modify it under the terms of the GNU Lesser General Public *//* License as published by the Free Software Foundation; either *//* version 2.1 of the License, or (at your option) any later version. *//* This library is distributed in the hope that it will be useful, *//* but WITHOUT ANY WARRANTY; without even the implied warranty of *//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *//* Lesser General Public License for more details. *//* You should have received a copy of the GNU Lesser General Public *//* License along with this library; if not, write to the Free Software *//* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#if !defined(MODULE) && defined(GTK_INTERFACE)#include <gtk/gtk.h>#include "classicladder_gtk.h"#endif#include "rtapi.h"#include "classicladder.h"#include "global.h"#ifndef MODULEvoid InitVars(void){    int NumVar;    for (NumVar = 0; NumVar < SIZE_VAR_ARRAY; NumVar++)	VarArray[NumVar] = FALSE;    for (NumVar = 0; NumVar < SIZE_VAR_WORD_ARRAY; NumVar++)	VarWordArray[NumVar] = 0;    /* to tell the GTK application to refresh the bits */    InfosGene->CmdRefreshVarsBits = TRUE;}#endifint ReadVar(int TypeVar, int NumVar){    switch (TypeVar) {    case VAR_MEM_BIT:	return VarArray[NumVar];    case VAR_TIMER_DONE:	return TimerArray[NumVar].OutputDone;    case VAR_TIMER_RUNNING:	return TimerArray[NumVar].OutputRunning;    case VAR_MONOSTABLE_RUNNING:	return MonostableArray[NumVar].OutputRunning;#ifdef SEQUENTIAL_SUPPORT    case VAR_STEP_ACTIVITY://              return Sequential->Step[ NumVar ].Activated;	return VarArray[NBR_BITS + NBR_PHYS_INPUTS + NBR_PHYS_OUTPUTS +	    NumVar];#endif    case VAR_PHYS_INPUT:	return VarArray[NBR_BITS + NumVar];    case VAR_PHYS_OUTPUT:	return VarArray[NBR_BITS + NBR_PHYS_INPUTS + NumVar];    case VAR_MEM_WORD:	return VarWordArray[NumVar];#ifdef SEQUENTIAL_SUPPORT    case VAR_STEP_TIME://              return Sequential->Step[ NumVar ].TimeActivated/1000;	return VarWordArray[NBR_WORDS + NumVar];#endif    default:	rtapi_print_msg(RTAPI_MSG_ERR,	    "!!! Error : Type not found in ReadVar()\n");    }    return 0;}void WriteVar(int TypeVar, int NumVar, int Value){    switch (TypeVar) {    case VAR_MEM_BIT:	VarArray[NumVar] = Value;	break;    case VAR_PHYS_INPUT:	VarArray[NBR_BITS + NumVar] = Value;	break;    case VAR_PHYS_OUTPUT:	VarArray[NBR_BITS + NBR_PHYS_INPUTS + NumVar] = Value;	break;#ifdef SEQUENTIAL_SUPPORT    case VAR_STEP_ACTIVITY:	VarArray[NBR_BITS + NBR_PHYS_INPUTS + NBR_PHYS_OUTPUTS + NumVar] =	    Value;	break;#endif    case VAR_MEM_WORD:	VarWordArray[NumVar] = Value;	break;#ifdef SEQUENTIAL_SUPPORT    case VAR_STEP_TIME:	VarWordArray[NBR_WORDS + NumVar] = Value;	break;#endif    default:	rtapi_print_msg(RTAPI_MSG_ERR,	    "!!! Error : Type not found in WriteVar()\n");	break;    }    switch (TypeVar) {    case VAR_MEM_BIT:    case VAR_PHYS_INPUT:    case VAR_PHYS_OUTPUT:#if !defined(MODULE) && defined(GTK_INTERFACE)	RefreshOneBoolVar(TypeVar, NumVar, Value);#else	/* to tell the GTK application to refresh the bits */	InfosGene->CmdRefreshVarsBits = TRUE;#endif	break;    }}

⌨️ 快捷键说明

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