void OutText::writeBool(bool value, PhysicalOutStream& stream) { if(value) stream.writeToStream(" true", 5); else stream.writeToStream(" false", 6); }
void OutTextRaw::writeAngle(const Angle& d, PhysicalOutStream& stream) { if(d == SensorData::off) sprintf(buf, "%g", static_cast<float>(d)); else sprintf(buf, "%gdeg", d.toDegrees()); stream.writeToStream(buf, strlen(buf)); }
void OutText::writeString(const char* value, PhysicalOutStream& stream) { stream.writeToStream(" ", 1); bool containsSpaces = !*value || *value == '"' || strcspn(value, " \n\r\t") < strlen(value); if(containsSpaces) stream.writeToStream("\"", 1); for(; *value; ++value) if(*value == '"' && containsSpaces) stream.writeToStream("\\\"", 2); else if(*value == '\n') stream.writeToStream("\\n", 2); else if(*value == '\r') stream.writeToStream("\\r", 2); else if(*value == '\t') stream.writeToStream("\\t", 2); else if(*value == '\\') stream.writeToStream("\\\\", 2); else stream.writeToStream(value, 1); if(containsSpaces) stream.writeToStream("\"", 1); }
void OutText::writeInt(int d, PhysicalOutStream& stream) { sprintf(buf, " %d", d); stream.writeToStream(buf, strlen(buf)); }
void OutText::writeUShort(unsigned short d, PhysicalOutStream& stream) { sprintf(buf, " %u", int(d)); stream.writeToStream(buf, strlen(buf)); }
void OutText::writeShort(short d, PhysicalOutStream& stream) { sprintf(buf, " %d", int(d)); stream.writeToStream(buf, strlen(buf)); }
void OutText::writeUChar(unsigned char d, PhysicalOutStream& stream) { sprintf(buf, " %u", int(d)); stream.writeToStream(buf, strlen(buf)); }
void OutText::writeChar(char d, PhysicalOutStream& stream) { sprintf(buf, " %d", int(d)); stream.writeToStream(buf, strlen(buf)); }
void OutTextRaw::writeEndL(PhysicalOutStream& stream) { sprintf(buf, "\n"); stream.writeToStream(buf, strlen(buf)); }
void OutTextRaw::writeFloat(float d, PhysicalOutStream& stream) { sprintf(buf, "%g", double(d)); stream.writeToStream(buf, strlen(buf)); }
void OutTextRaw::writeDouble(double d, PhysicalOutStream& stream) { sprintf(buf, "%g", d); stream.writeToStream(buf, strlen(buf)); }
void OutBinary::writeString(const char* d, PhysicalOutStream& stream) { size_t size = strlen(d); stream.writeToStream(&size, sizeof(unsigned)); stream.writeToStream(d, size); }
void OutTextRaw::writeUInt(unsigned int d, PhysicalOutStream& stream) { sprintf(buf, "%u", d); stream.writeToStream(buf, strlen(buf)); }
void OutTextRaw::writeString(const char* value, PhysicalOutStream& stream) { stream.writeToStream(value, strlen(value)); }
void OutText::writeAngle(const Angle& d, PhysicalOutStream& stream) { sprintf(buf, " %gdeg", d.toDegrees()); stream.writeToStream(buf, strlen(buf)); }
void OutBinary::writeString(const char* d, PhysicalOutStream& stream) { int size = (int)strlen(d); stream.writeToStream(&size, sizeof(size)); stream.writeToStream(d, size);}