Пример #1
0
int set_color(int led, int intensity, int r, int g, int b) {
	uint16_t color = ((r)+((g)<<4)+((b)<<8));
	int i;
	write_begin();
	for (i=6; i; i--, (led <<= 1)) {
		if (led&(1<<5)) {
			write_one();
		} else {
			write_zero();
		}
	}
	for (i=8; i; i--, (intensity<<=1)) {
		if (intensity&(1<<7)) {
			write_one();
		} else {
			write_zero();
		}
	}
	for (i=12; i; i--, (color<<=1)) {
		if (color&(1<<11)) {
			write_one();
		} else {
			write_zero();
		}
	}
	write_end();
	return 0;
}
Пример #2
0
 unsigned write(const void* buf, unsigned len)
 {
     auto allowed = std::min(len, write_available());
     memcpy(write_begin(), buf, allowed);
     mNumWritten += allowed;
     return allowed;
 }
Пример #3
0
void UmlAcceptEventAction::write(FileOut & out) {
  write_begin(out, "AcceptEventAction");
  
  if (isUnmarshall())
    out << " isUnmarshall=\"true\"";
  
  Q3CString trig;
  
  switch (_lang) {
  case Uml:
    trig = trigger();
    break;
  case Cpp:
    trig = cppTrigger();
    break;
  default:
    // java
    trig = javaTrigger();
  }

  if (! trig.isEmpty()) {
    out.ref(this, "trigger", "TRIGGER_");
    write_end(out);
    
    out.indent();
    out << "<trigger xmi:type=\"uml:Trigger\"";
    out.id_prefix(this, "TRIGGER_");
    out << " name=\"";
    out.quote(trig);
    out << "\"/>\n";
  }
  else
    write_end(out);

}
Пример #4
0
void UmlOpaqueAction::write(FileOut & out) {
  write_begin(out, "OpaqueAction");
  write_end(out, TRUE);
  
  Q3CString body;
  
  switch(_lang) {
  case Uml:
    body = behavior();
    break;
  case Cpp:
    body = cppBehavior();
    break;
  default:
    // Java
    body = javaBehavior();
  }

  if (!body.isEmpty()) {
    out.indent();
    out << "<body>";
    out.quote(body);
    out << "</body>\n";
  }

  write_close(out);

}
Пример #5
0
/* send a status reply */
void cmd_status(u08 status)
{
  write_begin();
  write_cmd(':');
  write_hex_byte(status);
  write_end();
}
Пример #6
0
void UmlReplyAction::write(FileOut & out) {
  write_begin(out, "ReplyAction");
  
  Q3CString trig;
  
  switch (_lang) {
  case Uml:
    trig = replyToCall();
    break;
  case Cpp:
    trig = cppReplyToCall();
    break;
  default:
    // java
    trig = javaReplyToCall();
  }

  if (! trig.isEmpty()) {
    out.ref(this, "replyToCall", "TRIGGER_");
    write_end(out);
    
    out.indent();
    out << "<trigger xmi:type=\"uml:Trigger\"";
    out.id_prefix(this, "TRIGGER_");
    out << " name=\"";
    out.quote(trig);
    out << "\"/>\n";
  }
  else
    write_end(out);
}
Пример #7
0
void cmd_reply(u08 cmd, u08 num)
{
  write_begin();
  write_cmd(cmd);
  write_hex_byte(num);
  write_end();
}
Пример #8
0
void UmlRemoveVariableValueAction::write(FileOut & out) {
  write_begin(out, "RemoveVariableValueAction");

  if (isRemoveDuplicates())
    out << " isRemoveDuplicates=\"true\"";

  write_var_end(out);
}
Пример #9
0
void UmlAddVariableValueAction::write(FileOut & out) {
  write_begin(out, "AddVariableValueAction");
  
  if (isReplaceAll())
    out << " isReplaceAll=\"true\"";
  
  write_var_end(out);
}
Пример #10
0
void UmlDestroyObjectAction::write(FileOut & out) {
  write_begin(out, "DestroyObjectAction");
  if (isDestroyLinks())
    out << " isDestroyLinks=\"true\"";
  if (isDestroyOwnedObjects())
    out << " isDestroyOwnedObjects=\"true\"";
  write_end(out);
}
Пример #11
0
void UmlCallOperationAction::write(FileOut & out) {
  write_begin(out, "CallOperationAction");
  write_end(out, TRUE);
  
  UmlOperation * op = operation();
  
  if (op != 0) {
    out.indent();
    out << "<operation";
    out.idref(op);
    out << "/>\n";
  }

  write_close(out);

}
Пример #12
0
void UmlCallBehaviorAction::write(FileOut & out) {
  write_begin(out, "CallBehaviorAction");
  write_end(out, TRUE);
  
  UmlItem * b = behavior();
  
  if (b != 0) {
    out.indent();
    out << "<behavior";
    out.idref(b);
    out << "/>\n";
  }

  write_close(out);

}
Пример #13
0
void UmlReduceAction::write(FileOut & out) {
  write_begin(out, "ReduceAction");
  
  if (isOrdered())
    out << " isOrdered=\"true\"";
  
  write_end(out, TRUE);

  UmlItem * r = reducer();
  
  if (r != 0) {
    out.indent();
    out << "<reducer";
    out.idref(r);
    out << "/>\n";
  }

  write_close(out);
}
Пример #14
0
void UmlValueSpecificationAction::write(FileOut & out) {
  write_begin(out, "ValueSpecificationAction");
  
  Q3CString val;
  
  switch (_lang) {
  case Uml:
    val = value();
    break;
  case Cpp:
    val = cppValue();
    break;
  default:
    // Java
    val = javaValue();
  }
  if (! val.isEmpty())
    out.ref(activity()->add_opaque_expression(val, this),
	    "value", "OPAQUE_EXPRESSION_");

  write_end(out);
}
Пример #15
0
void UmlTestIdentityAction::write(FileOut & out) {
  write_begin(out, "TestIdentityAction");
  write_end(out);

}
Пример #16
0
void UmlWriteVariableValueAction::write(FileOut & out) {
  write_begin(out, "WriteVariableAction");
  write_var_end(out);

}
Пример #17
0
void UmlSendSignalAction::write(FileOut & out) {
  write_begin(out, "SendSignalAction");
  write_end(out, TRUE);
  write_signal(out);
  write_close(out);
}
Пример #18
0
void UmlCreateObjectAction::write(FileOut & out) {
  write_begin(out, "CreateObjectAction");
  write_end(out);

}
Пример #19
0
void UmlSendObjectAction::write(FileOut & out) {
  write_begin(out, "SendObjectAction");
  write_end(out);

}
Пример #20
0
void UmlBroadcastSignalAction::write(FileOut & out) {
  write_begin(out, "BroadcastSignalAction");
  write_end(out, TRUE);
  write_signal(out);
  write_close(out);
}
Пример #21
0
void UmlRaiseExceptionAction::write(FileOut & out) {
  write_begin(out, "RaiseExceptionAction");
  write_end(out);

}
Пример #22
0
void UmlUnmarshallAction::write(FileOut & out) {
  write_begin(out, "UnmarshallAction");
  write_end(out);
}