Ejemplo n.º 1
0
int CChannelList::GetPrevChannel(int Index,bool fWrap) const
{
	if (Index<0 || (size_t)Index>=m_ChannelList.size())
		return -1;

	const int ChannelNo=GetChannelNo(Index);
	int Channel,Max,No;

	Channel=0;
	Max=0;
	for (auto i=m_ChannelList.begin();i!=m_ChannelList.end();++i) {
		const CChannelInfo *pChInfo=*i;

		if (pChInfo->IsEnabled()) {
			No=pChInfo->GetChannelNo();
			if (No!=0) {
				if (No<ChannelNo && No>Channel)
					Channel=No;
				if (No>Max)
					Max=No;
			}
		}
	}
	if (Channel==0) {
		if (fWrap)
			return FindChannelNo(Max);
		return -1;
	}
	return FindChannelNo(Channel);
}
Ejemplo n.º 2
0
int CChannelList::GetNextChannel(int Index,bool fWrap) const
{
	if (Index<0 || (size_t)Index>=m_ChannelList.size())
		return -1;

	const int ChannelNo=GetChannelNo(Index);
	int Channel,Min,No;

	Channel=INT_MAX;
	Min=INT_MAX;
	for (auto i=m_ChannelList.begin();i!=m_ChannelList.end();++i) {
		const CChannelInfo *pChInfo=*i;

		if (pChInfo->IsEnabled()) {
			No=pChInfo->GetChannelNo();
			if (No!=0) {
				if (No>ChannelNo && No<Channel)
					Channel=No;
				if (No<Min)
					Min=No;
			}
		}
	}
	if (Channel==INT_MAX) {
		if (Min==INT_MAX || !fWrap)
			return -1;
		return FindChannelNo(Min);
	}
	return FindChannelNo(Channel);
}
Ejemplo n.º 3
0
int GetChannelNumberWithChannelTypeCheck(ChannelType channelType)
{
	int channelNo = GetChannelNo();

	if ((channelNo >= 1 && channelNo <= NUM_OF_CHANNELS) && (channels[channelNo - 1].channelType == channelType))
		return channelNo;
	
	return 0;
}
Ejemplo n.º 4
0
void HTTPPrint_lastCmdName(void)
{
	int channelNo = GetChannelNo();

	if (channelNo >= 1 && channelNo <= NUM_OF_CHANNELS)
	{
		TCPPutString(sktHTTP, (BYTE *)channels[channelNo - 1].lastCommandName);
	}
}
Ejemplo n.º 5
0
void HTTPPrint_lastCmdStatus(void)
{
	int channelNo = GetChannelNo();

	PrintLastCommandStatus(channels[channelNo-1].lastCommandStatus);
}
Ejemplo n.º 6
0
/* Every request to the board is a GET request */
HTTP_IO_RESULT HTTPExecuteGet(void)
{
	BYTE filename[12];
	
	/* loads the filename - max length of file name is 12 characters */
	MPFSGetFilename(curHTTP.file, filename, 12);

	/* board.cgi does not require any parameters so return immediatelly */
	if (!memcmppgm2ram(filename, "board.cgi",9))
	{
		return HTTP_IO_DONE;
	}

#if defined(FW_UPGRADE_USE_OTA)
	if (!memcmppgm2ram(filename, "upgrade.cgi",11))
	{
		ProcessUpgradeCommand();
		return HTTP_IO_DONE;
	}
#endif

	/* all other pages require at least the channel number parameter */
	int channelNo = GetChannelNo();
	if (channelNo == 0)
		return HTTP_IO_DONE;

	/* checks if the filename is known and the channel type requested coresponds with the channel */
	if(!memcmppgm2ram(filename, "blinds.cgi", 10) && (channels[channelNo - 1].channelType == BLINDS))
	{
		ProcessBlindsCommand(channelNo);
		return HTTP_IO_DONE;
	}
	
	if (!memcmppgm2ram(filename, "onoff.cgi", 9) 
		&& ((channels[channelNo - 1].channelType == ONOFF_W_KEY) || (channels[channelNo - 1].channelType == ONOFF_W_BUTTON)))
	{
		ProcessOnOffCommand(channelNo);
		return HTTP_IO_DONE;
	}
	
	if (!memcmppgm2ram(filename, "onoffbtn.cgi", 12) 
		&& (channels[channelNo - 1].channelType == ONOFF_BUTTON))
	{
		ProcessOnOffCommand(channelNo);
		return HTTP_IO_DONE;
	}

	if (!memcmppgm2ram(filename, "onoffcmd.cgi", 12) 
		&& (channels[channelNo - 1].channelType == ONOFF_COMMAND))
	{
		ProcessOnOffCommand(channelNo);
		return HTTP_IO_DONE;
	}

	if (!memcmppgm2ram(filename, "onoffpls.cgi", 12) 
		&& (channels[channelNo - 1].channelType == ONOFF_PULSE))
	{
		ProcessOnOffCommand(channelNo);
		return HTTP_IO_DONE;
	}

	return HTTP_IO_DONE;
}