亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? system.h

?? moudbus通訊協議, moudbus通訊協議, moudbus通訊協議,
?? H
字號:
#ifndef __System_H__
#define __System_H__

#define USER_CNT_System 47
System : CLASS
Server0 : SVRCHCMD_DINT;
FUNCTION  System
VAR_OUTPUT
	ret_code		: CONFSTATES;
END_VAR;
//This method is called to install an IRQ Service Function.
//The function is passed the number of the IRQ to trap and a pointer to a function
//to service the IRQ.
//The server function must be a global function and have the following prototype:
//     Void IRQ_Server(void);
//
//The server function must service and acknowledge the interrupt and then return.
//No special return is required.
FUNCTION __CDECL VIRTUAL GLOBAL InstallIRQ
VAR_INPUT
	IRQNumber0		: UINT;
	IRQFunction0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to install an object to service an IRQ.
//The function is passed the number of the IRQ to trap and the this pointer
//of the Lasal class object.
//The class RtWork() method is called to service the interrupt.
//The RtWork() method must service and acknowledge the interrupt and then return.
//No special return is required.
FUNCTION __CDECL VIRTUAL GLOBAL InstallIRQObject
VAR_INPUT
	IRQNumber0		: UINT;
	thisPointer0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to create a Mailbox.
//A Mailbox is used for inter-task communications.
//A task creates a mailbox and then calls functions to monitor the mailbox.
//Another task can put a message into the mailbox.
//The monitoring task will be indicated that a new message is available and can then
//read that data.  Mailbox communication is one-way (two mailboxes would be needed
//for bi-directional communication).
//Note that any number of tasks can put messages into a mailbox
//but only one task should retrieve the messages.
//
//This function will create an empty mailbox.
//The function is passed a name of the mailbox, the size of the message data structure,
//and the number of mail slots (maximum number waiting messages) to create.
//If the mailbox is created a handle for it is returned.
//This handle is used by all tasks to access the mailbox.
//In an error is detected -1 is returned and the mailbox IS NOT created or available.
FUNCTION __CDECL VIRTUAL GLOBAL CreateMailbox
VAR_INPUT
	MailboxName0		: ^CHAR;
	MailboxDataLen0		: UDINT;
	MailboxSlots0		: UDINT;
END_VAR
VAR_OUTPUT
	ret0		: pVoid;
END_VAR;
//This method is called to put a message into a mailbox.
//If the mailbox is full and cannot accept any new messages then FALSE is returned
//(the call will not block the calling thread).
//Otherwise the passed message data is stored in the mailbox and the method
//returns TRUE.
FUNCTION __CDECL VIRTUAL GLOBAL MailboxGetMsg
VAR_INPUT
	Mailbox0		: pVoid;
	pMailboxData0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to get a message from a mailbox.
//If the mailbox is empty FALSE is returned (the call will not block the calling thread).
//Otherwise the next available message data is copied into the passed buffer
//and the method returns TRUE.
FUNCTION __CDECL VIRTUAL GLOBAL MailboxPutMsg
VAR_INPUT
	Mailbox0		: pVoid;
	pMailboxData0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to destroy a mailbox.
//The mailbox handle becomes invalid and unusable after the mailbox is destroyed.
FUNCTION __CDECL VIRTUAL GLOBAL DeleteMailbox
VAR_INPUT
	Mailbox0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to create a semaphore.
//i.e:  A BINARY semaphore is a synchronization object that allows two tasks to synchronize with each other.
//Synchronization in multi-tasking systems can be required for many reasons
//such as exclusive access to a shared memory area or function or
//to signal a waiting task of an event.
//
//This function will create a semaphore of the specified type in SemType0.
//The function is passed a name string to assign to the semaphore.
//A handle is returned if the semaphore is successfully created.
//This handle is then used to access the semaphore.
//NIL is returned if an error is detected.
FUNCTION __CDECL VIRTUAL GLOBAL CreateSemaphore
VAR_INPUT
	SemName0		: ^CHAR;
	SemType0		: UINT;
END_VAR
VAR_OUTPUT
	ret0		: pVoid;
END_VAR;
//This method is called to signal a semaphore.
// For BINARY semaphores, all tasks waiting on this signal will be released
//(the highest priority task will be executed).
FUNCTION __CDECL VIRTUAL GLOBAL SignalSemaphore
VAR_INPUT
	Semaphore0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to pulse a semaphore.
// This function must not be called for binary semaphores or an exception will be raised.
FUNCTION __CDECL VIRTUAL GLOBAL PulseSemaphore
VAR_INPUT
	Semaphore0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to wait on a semaphore.
//For BINARY semaphores, if the semaphore is available, it will be taken
//and 0 is returned.  If the semaphore is already taken, then the task will block
//until the semaphore is released (signaled) by the owning task.
//Great care must be taken when calling this function to avoid deadlocks.
//signal a semaphore.
//For BINARY semaphores, all tasks waiting on this signal will be released
//(the highest priority task will be executed).
FUNCTION __CDECL VIRTUAL GLOBAL WaitSemaphore
VAR_INPUT
	Semaphore0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to wait on a semaphore.
//For BINARY semaphores, if the semaphore is available, it will be taken
//and 1 is returned.
//If the semaphore is already taken, then 0 is returned.
//This method is a task-safe method in that it can never block the calling task.
//If 1 is returned the semaphore will now be owned by the caller until released.
//
FUNCTION __CDECL VIRTUAL GLOBAL WaitCondSemaphore
VAR_INPUT
	Semaphore0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to delete a semaphore.
//The semaphore will be destroyed and the handle is invalidated and unusable.
//Note that no tasks must be waiting on the semaphore when this method is called
//or a fatal exception will occur.
FUNCTION __CDECL VIRTUAL GLOBAL DeleteSemaphore
VAR_INPUT
	Semaphore0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to output a WORD value to a CPU port.
FUNCTION __CDECL VIRTUAL GLOBAL OutW
VAR_INPUT
	PortNumber0		: UINT;
	Value0		: UINT;
END_VAR
;
//This method is called to output a BYTE value to a CPU port.
// The lower 8 bits of the passed WORD are written to the port.
FUNCTION __CDECL VIRTUAL GLOBAL OutB
VAR_INPUT
	PortNumber0		: UINT;
	Value0		: UINT;
END_VAR
;
//This method is called to input a WORD value from a port.
FUNCTION __CDECL VIRTUAL GLOBAL InpW
VAR_INPUT
	PortNumber0		: UINT;
END_VAR
VAR_OUTPUT
	ret0		: UINT;
END_VAR;
//This method is called to input a BYTE value from a port.
//The value is returned in the lower 8 bits of the return value.
FUNCTION __CDECL VIRTUAL GLOBAL InpB
VAR_INPUT
	PortNumber0		: UINT;
END_VAR
VAR_OUTPUT
	ret0		: UINT;
END_VAR;
//This method is called to map an area of memory for read/write access.
//The method is passed the absolute address of the memory area to unlock.
//Great case must be taken with this function
//to avoid writing into operating system memory areas
//or unpredictable program execution and fatal exceptions can occur.
FUNCTION __CDECL VIRTUAL GLOBAL MemoryAccess
VAR_INPUT
	Addr0		: UDINT;
	Length0		: UDINT;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to send a CAN message.
// Further discussion of this function is beyond the scope of this document.
FUNCTION __CDECL VIRTUAL GLOBAL CanTxObj
VAR_INPUT
	cannr0		: USINT;
	objnr0		: DINT;
	length0		: USINT;
	data0		: PVOID;
END_VAR
VAR_OUTPUT
	ret0		: INT;
END_VAR;
//This method is called to register a CAN message.
//Further discussion of this function is beyond the scope of this document.
FUNCTION __CDECL VIRTUAL GLOBAL AddCanObj
VAR_INPUT
	cannr0		: USINT;
	objnr0		: DINT;
	length0		: USINT;
	mode0		: USINT;
	actionptr0		: PVOID;
	thisptr0		: PVOID;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to allocate memory from the system heap.
//The Lasal RTOS dynamic memory functions are provided for the application
//to allocate memory.
//The memory will be automatically reclaimed at reset
//
//This function will allocate a block of memory for the specified number of bytes.
//If successful a pointer to the allocated memory is returned,
//otherwise a NIL pointer is returned.
FUNCTION __CDECL VIRTUAL GLOBAL Malloc
VAR_INPUT
	size0		: UDINT;
END_VAR
VAR_OUTPUT
	ret0		: PVOID;
END_VAR;
//This method is called to free a memory block previously allocated
//via a call to System.Malloc().
//The allocated memory will be returned to the free memory heap.
//
FUNCTION __CDECL VIRTUAL GLOBAL Free
VAR_INPUT
	ptr0		: PVOID;
END_VAR
;
//This method is called to set the system clock with the passed time value.
//The SYSTIME structure is define in the LSL_ST_IFSSR.H file in the Lasal directory.
FUNCTION __CDECL VIRTUAL GLOBAL SetSysTime
VAR_INPUT
	time0		: ^SYSTIME;
END_VAR
;
//This method is called to set the system clock with the passed date value.
//The SYSDATE structure is define in the LSL_ST_IFSSR.H file in the Lasal directory.
FUNCTION __CDECL VIRTUAL GLOBAL SetSysDate
VAR_INPUT
	date0		: ^SYSDATE;
END_VAR
;
//This method is called to get the system clock time and store itin the assed buffer.
//The SYSTIME structure is define in the LSL_ST_IFSSR.H file in the Lasal directory.
FUNCTION __CDECL VIRTUAL GLOBAL GetSysTime
VAR_INPUT
	time0		: ^SYSTIME;
END_VAR
;
//This method is called to get the system clock date and store it in the passed buffer.
//The SYSDATE structure is define in the LSL_ST_IFSSR.H file in the Lasal directory.
FUNCTION __CDECL VIRTUAL GLOBAL GetSysDate
VAR_INPUT
	date0		: ^SYSDATE;
END_VAR
;
//This method is called to reallocate memory previously allocated
//from a call to System.Malloc or System.ReAlloc.
//The method will attempt to re-allocate the memory.
//If successful a pointer to the reallocated memory is returned,
//otherwise a NIL pointer is returned.
FUNCTION __CDECL VIRTUAL GLOBAL ReAlloc
VAR_INPUT
	ptr0		: PVOID;
	size0		: UDINT;
END_VAR
VAR_OUTPUT
	ret0		: PVOID;
END_VAR;
FUNCTION __CDECL VIRTUAL GLOBAL InstallIRQLASAL
VAR_INPUT
	IRQNumber0		: UINT;
	IRQFunction0		: pVoid;
	thispointer0		: pVoid;
END_VAR
VAR_OUTPUT
	ret0		: DINT;
END_VAR;
//This method is called to copy memory from the source buffer
//to the destination buffer for the specified number of bytes.
FUNCTION __CDECL VIRTUAL GLOBAL MemMove
VAR_INPUT
	dest		: PVOID;
	source		: PVOID;
	size		: _UDWORD;
END_VAR
VAR_OUTPUT
	retcode		: PVOID;
END_VAR;
//This method is called to copy memory from the source buffer
//to the destination buffer for the specified number of bytes.
FUNCTION __CDECL VIRTUAL GLOBAL MemCpy
VAR_INPUT
	dest		: PVOID;
	source		: PVOID;
	size		: _UDWORD;
END_VAR
VAR_OUTPUT
	retcode		: PVOID;
END_VAR;
//This method is called to set the specified memory buffer
//with the specified BYTE data value for the specified number of bytes.
FUNCTION __CDECL VIRTUAL GLOBAL MemSet
VAR_INPUT
	pMemptr		: PVOID;
	fill		: _UBYTE;
	size		: _UDWORD;
END_VAR
VAR_OUTPUT
	retcode		: PVOID;
END_VAR;
//This method is called to compare two memory buffer.
FUNCTION __CDECL VIRTUAL GLOBAL MemCmp
VAR_INPUT
	pDestptr		: PVOID;
	pSourceptr		: PVOID;
	size		: _UDWORD;
END_VAR
VAR_OUTPUT
	retcode		: _UBYTE;
END_VAR;
//Further discussion of this function is beyond the scope of this document.
//
FUNCTION __CDECL VIRTUAL GLOBAL LoginIntoCANNew
VAR_INPUT
	cannr0		: USINT;
	canstation0		: USINT;
	txobjnr0		: UINT;
END_VAR
VAR_OUTPUT
	ret0		: UINT;
END_VAR;
FUNCTION __CDECL VIRTUAL GLOBAL GetObjectInfo
VAR_INPUT
	thisobj0		: ^void;
	tasktype0		: UDINT;
	objinfo		: ^LSLOBJ_INFO;
END_VAR
VAR_OUTPUT
	retval		: UDINT;
END_VAR;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_2;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_3;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_4;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_5;
//This method is called to called to delay the calling task
//for the specified number of milliseconds.
//The task is guaranteed to delay at least the specified amount of time, possible longer.
//Great care must be taken with this method as it will delay the calling task.
FUNCTION __CDECL VIRTUAL GLOBAL OS_Delay
VAR_INPUT
	msecs0		: UDINT;
END_VAR
;
FUNCTION __CDECL VIRTUAL GLOBAL InstallDiasHandler
VAR_INPUT
	INTfunction0		: ^void;
	param0		: ^void;
END_VAR
;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_6;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_7;
FUNCTION VIRTUAL GLOBAL _Reserved_Space_8;
FUNCTION __CDECL VIRTUAL GLOBAL EEPROM_Read
VAR_INPUT
	addr0		: UINT;
	data0		: ^UINT;
END_VAR
VAR_OUTPUT
	retval		: UDINT;
END_VAR;
FUNCTION __CDECL VIRTUAL GLOBAL EEPROM_Write
VAR_INPUT
	addr0		: UINT;
	data0		: UINT;
END_VAR
VAR_OUTPUT
	retval		: UDINT;
END_VAR;
FUNCTION __CDECL VIRTUAL GLOBAL ButtonPressed
VAR_OUTPUT
	state		: UDINT;
END_VAR;
//ATTENTION!
//This function is used to set the value of the OS's Task-Scheduler,
//and should only be used by advanced Users!
FUNCTION __CDECL VIRTUAL GLOBAL SetTimerIntVal
VAR_INPUT
	ClockTicks0		: UDINT;
END_VAR
VAR_OUTPUT
	retval		: UDINT;
END_VAR;
//This function returns the current value of the OS's Task-Scheduler.
FUNCTION __CDECL VIRTUAL GLOBAL GetTimerIntVal
VAR_OUTPUT
	retval		: UDINT;
END_VAR;
FUNCTION GLOBAL TAB @CT_0001;
END_CLASS;


#endif//__System_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一二三区| 国产不卡高清在线观看视频| 91麻豆swag| 亚洲人成网站精品片在线观看| 国产99久久久国产精品免费看| 久久久久综合网| 狠狠色丁香婷婷综合久久片| 精品国产第一区二区三区观看体验 | 成人欧美一区二区三区在线播放| 国产.欧美.日韩| 国产精品久久综合| av在线不卡免费看| 最新国产精品久久精品| 91免费国产在线观看| 一二三区精品福利视频| 欧美日韩aaaaa| 久色婷婷小香蕉久久| 2022国产精品视频| 成人动漫中文字幕| 亚洲欧美日韩在线| 7777精品伊人久久久大香线蕉的 | 99国产精品久久久久| 亚洲精选视频免费看| 欧美视频在线观看一区二区| 午夜精品久久久久久久99水蜜桃| 欧美一区二区久久久| 狠狠网亚洲精品| 国产精品欧美一区喷水| 欧美在线免费视屏| 美女诱惑一区二区| 中文字幕在线播放不卡一区| 欧美日韩免费在线视频| 久久99日本精品| 国产精品二区一区二区aⅴ污介绍| 一本大道综合伊人精品热热| 日韩精品亚洲专区| 国产欧美日韩亚州综合| 99精品久久久久久| 久88久久88久久久| 综合欧美亚洲日本| 91精品国产色综合久久ai换脸| 九色porny丨国产精品| 精品成人一区二区| 99精品一区二区三区| 午夜激情久久久| 中文字幕国产一区| 9191国产精品| 不卡一区中文字幕| 久久精品国产亚洲高清剧情介绍| 国产精品丝袜一区| 日韩女同互慰一区二区| 色综合中文字幕国产 | 91精品国产色综合久久不卡电影| 国产.欧美.日韩| 青青草97国产精品免费观看 | 玉足女爽爽91| 久久久久久久久蜜桃| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日本在线不卡视频一二三区| 国产精品免费视频一区| 欧美亚洲一区三区| 成人黄色在线网站| 精品一区二区三区影院在线午夜| 亚洲激情av在线| 国产欧美在线观看一区| 91精品国产综合久久精品麻豆 | 555www色欧美视频| 91网站黄www| 粉嫩一区二区三区性色av| 奇米888四色在线精品| 亚洲免费电影在线| 精品久久久三级丝袜| 在线免费观看日本一区| 成人激情动漫在线观看| 国产福利精品一区二区| 九九精品视频在线看| 人人狠狠综合久久亚洲| 亚洲成av人片一区二区三区 | 中文字幕精品—区二区四季| 欧美系列在线观看| 91玉足脚交白嫩脚丫在线播放| 国产精品一级二级三级| 久久超碰97中文字幕| 男人的天堂亚洲一区| 日本中文字幕一区二区有限公司| 一区二区不卡在线播放| 亚洲曰韩产成在线| 亚洲一区二区三区四区不卡| 亚洲精品乱码久久久久久久久| 亚洲人成精品久久久久久| 中文字幕日韩精品一区| 综合婷婷亚洲小说| 夜夜嗨av一区二区三区网页| 亚洲女爱视频在线| 欧美国产精品一区| 中文字幕av资源一区| 国产日韩三级在线| 久久综合久久99| 欧美国产日韩亚洲一区| 国产精品久久久久久久久免费桃花 | 国产精品一卡二| 国产精品一级在线| 成人综合在线网站| 国产乱子轮精品视频| 国产高清成人在线| 丰满放荡岳乱妇91ww| 色综合天天综合网天天看片| 日本精品视频一区二区| 欧美日韩国产不卡| 日韩欧美专区在线| 久久精品亚洲国产奇米99| 国产精品久久久久久久岛一牛影视| 国产精品国产精品国产专区不蜜 | 国产成人综合在线| 成人午夜又粗又硬又大| 成人av在线观| 色美美综合视频| 欧美日韩在线综合| 欧美精品一区二区不卡| 国产精品久久久久国产精品日日| 一区二区三区.www| 久久国产综合精品| 99热在这里有精品免费| 欧美日韩精品一区二区三区蜜桃| 精品美女一区二区三区| 国产精品私房写真福利视频| 国产精品久久夜| 亚洲在线视频一区| 国产一区二区在线电影| 99精品在线观看视频| 日韩一级完整毛片| 成人免费一区二区三区视频| 亚洲国产成人91porn| 国产主播一区二区| 在线观看精品一区| 久久久久久久久一| 性做久久久久久久久| 成人禁用看黄a在线| 91精品国产麻豆国产自产在线| 久久精品夜色噜噜亚洲aⅴ| 一二三四社区欧美黄| 久久精品二区亚洲w码| 91美女在线看| 久久嫩草精品久久久精品一| 亚洲午夜精品一区二区三区他趣| 国产露脸91国语对白| 欧美一区二区三区在| 一区二区三区四区视频精品免费 | 色综合久久六月婷婷中文字幕| 日韩精品一区二区三区视频| 亚洲欧洲日本在线| 久久精品国产99久久6| 91尤物视频在线观看| 久久色在线视频| 五月婷婷久久综合| 日本韩国精品一区二区在线观看| 精品久久久久av影院| 亚洲第一主播视频| 91在线国内视频| 久久综合九色综合97_久久久| 日韩和欧美的一区| 日本韩国一区二区三区| 中文字幕亚洲区| 成人精品小蝌蚪| 久久久久国产精品麻豆| 老司机午夜精品| 精品国产成人在线影院| 国产精品伊人色| 国产日韩成人精品| 波多野结衣中文字幕一区| 亚洲欧洲国产日韩| 在线欧美一区二区| 亚洲成va人在线观看| 日韩一区二区免费电影| 狠狠色丁香久久婷婷综合_中| 久久精品亚洲精品国产欧美 | 欧美少妇bbb| 视频一区中文字幕国产| 欧美一级片在线看| 国产一区二区三区精品欧美日韩一区二区三区 | 日本午夜一本久久久综合| 欧美一区二区三区婷婷月色| 激情综合一区二区三区| 国产欧美日本一区二区三区| 91香蕉视频在线| 天天做天天摸天天爽国产一区| 欧美大胆人体bbbb| 成人精品视频一区| 亚洲国产毛片aaaaa无费看| 日韩一区二区影院| 成人免费黄色大片| 亚洲国产一区二区视频| 欧美成va人片在线观看| 北条麻妃国产九九精品视频| 一区二区三区高清不卡| 欧美tickling挠脚心丨vk| 成人午夜私人影院| 亚洲成人精品影院| 久久精品夜色噜噜亚洲aⅴ| 97精品久久久久中文字幕|