here is to introduce a new primitive (node-)datatype. so next to value, string, … transform there is now: raw
nothing to get too excited about as long as you’re not dealing with device-communication and raw-byte handling.
if that is what you do though, this is your lucky day. instead of misusing strings as bytearrays (which you had to do in vvvv until now - and you can still do) there is now a native raw (byte) datatype. so think no more Ord (String)node and SpellValue (String)node but instead:
- AsRaw(Value)node
- AsRaw(String)node
- AsValue(Raw)node
- AsString(Raw)node make sure to check the helppatches of those to get all their details.
further the following nodes now have raw inputs:
- UDP (Network Server)node
- UDP (Network Client)node
- TCP (Network Server)node
- TCP (Network Client)node
- RS232 (Devices)node
- Reader (Raw)node
- Writer (Raw)node
still the old versions of those nodes with string inputs are available as modules and versioned “string”.
so this is to distinguish more clearly between string and byte-handling and should also have a positive influence on performance in situations where string/byte conversions can now be omitted.
please give it a run and let us know what you think. as always get the latest from here: alpha builds
Comments:
Comments are no longer accepted for this post.
YEA BABY I LIKE IT RAWWWW
@oschatz: next release introduces Skip (Raw) and Take (Raw) nodes. the former skips n bytes and returns the rest, the latter takes and returns n bytes. there’ll also be a module called GetBytes (Raw) similiar to GetSpread (Spreads) using both of them.
@sebl: what spectral nodes? i can only think of + (Raw Spectral), similiar to + (String Spectral) … all the others are specific to values, not byte streams.
@Elias: yes, i had a need for + (Raw Spectral). i thought there were more, but didn’t have specific ones in mind…
aaand another thing: i think it’s often hard to ‘see’ the raw data, because iobox (Node) doesn’t display them. Though every pin displays raw-values while hovering, that doesn’t help when one wants to watch a spread of raws.
a possible solution could be a iobox (Raw) what essentially is a iobox (Node) but has the ability to display raw data similar to Value or String iobox. what do you think, or how do you inspect raw data? always Asvalue (Raw) and an iobox afterwards?
+1 for IOBox (Raw)
This node would make debugging of device-communication much more comfortable. Displaying the byte pattern hovering the output pin with the mouse in many cases is not really helping a lot. And even this is not working on the output pin of IOBox (Node) if Raw is used as output of a subpatch or module ( like for example GetBytes (Raw) ).
Another very basic node that is somehow missing in the raw-category is = (Raw), which also would be good (and logical) to have as a native node.
Top
See, when a nigga say he likes it raw he means dirty, down to the floor
i would strongly consider REMOVING the RS232 (string) variant, as it will garble characters between $80 and $A0 in a way wich is only understandable by someone knowing the exact difference between the Latin Extension 0x0080-0x00FF) codepage of Unicode http://www.unicode.org/charts/PDF/U0080.pdf and good old ANSI in the area (0x80 and 0xFF) http://msdn.microsoft.com/en-us/library/cc195054.aspx.
99% of all programmers using RS232 to control devices will drive this crazy, as patches which worked perfect in previous versions will have unobvious but serious bugs.
the same goes for TCP, UDP, Reader, Writer (string) i would strongly argue for removing these completely.
what happened to the ultra-handy Offsetpin Pin of the Ord (String)node node in the new AsRaw (Value) implementation?
the old one-slice-in one-slice-out paradigm proved to make quite simple patches when decoding binaries into its bits.
Tokenizer (string)node should be available in a Raw variant