예제 #1
0
void ClientBMDVideohubTCP::setLock(uint8_t output, char newState) {
  _resetBuffer();
  _addToBuffer_P(PSTR("VIDEO OUTPUT LOCKS:\n"));
  _addToBuffer(String(output - 1));
  _addToBuffer_P(PSTR(" "));
  _addToBuffer(String(newState));
  _addToBuffer_P(PSTR("\n\n"));
  _sendBuffer();
}
void ClientKramerVSHDMIMatrix::routeInputToOutput(uint8_t input, uint8_t output)	{
	_resetBuffer();
	_addToBuffer_P(PSTR("#VID "));
	_addToBuffer(String(input));
	_addToBuffer_P(PSTR(">"));
	_addToBuffer(String(output));
	_addToBuffer_P(PSTR("\r"));
	_sendBuffer();
}
예제 #3
0
void ClientBMDVideohubTCP::routeInputToOutput(uint8_t input, uint8_t output, bool waitForConfirmedChange) {
  _resetBuffer();
  _addToBuffer_P(PSTR("VIDEO OUTPUT ROUTING:\n"));
  _addToBuffer(String(output - 1));
  _addToBuffer_P(PSTR(" "));
  _addToBuffer(String(input - 1));
  _addToBuffer_P(PSTR("\n\n"));
  _sendBuffer();
  
  if (waitForConfirmedChange)	{
	  unsigned long timer = millis();
	  while(_outputRouting[output - 1] != input-1 && millis()-500 < timer)	{	// 500 ms timeout if route is not set...
		  runLoop();
	  }
  }
}
/**
 * Sends a command request
 * Notice that str is in PROGMEM (pass string wrapped in PSTR("")) and command is a String object (useful for variable data, but more memory intensive.)
 */
void ClientBMDSmartView::_sendCmdRequest(uint8_t monId, const char *str, const String command) {

	_resetBuffer();
	_addToBuffer_P(PSTR("MONITOR "));
	_addToBuffer_P(monId==0?PSTR("A:\n"):PSTR("B:\n"));
	_addToBuffer_P(str);
	_addToBuffer(command);
	_addToBuffer_P(PSTR("\n\n"));

	_sendBuffer();
}