Why create a new message? Better you continue
your existing thread, the segments were described there.
HighLow Value(32 bits)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Segments 32-01 0 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
Segments 64-33 1 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33
You can send the value in any format, ex. hexadecimal (You can use any convertex, ex.
this one),
or binary right away, but for 32 bit it'll quite long, ex. 0b111100001111100001111000011110000
To display "12345":
Display 1: bc = S22H (They're connected together)
Display 2: abdehm = S21L S15H S25H S24H S16L S24L
Display 3: abcdhm = S20L S9H S10H S12H S10L S13L
Display 4: bcfhm = S2H S3H S7H S3L S6L
Display 5: acdfhm = S17L S30H S28H S1H S30L S27L
As you see, everything is part of everything, you can't just write to a single digit without affecting others.
So you must know all the segments beforehand, then prepare the data.
In this case, after tidying, we have this (Might have some errors, lots of bits flying around):
S30H S28H S25H S24H S22H S15H S12H S10H S9H S7H S3H S2H S1H
0b00101001101000000100101101000111 = 0x29A04B47
S30L S27L S24L S21L S20L S17L S16L S13L S10L S6L S3L
0b00100100100110011001001000100100 = 0x24999224
Finally:
send(0x29A04B47, 1);
send(0x24999224, 0);
High and low might be reversed, if looking weird try:
send(0x29A04B47, 0);
send(0x24999224, 1);
This all needs to be done using some sort of tables and parsing to make it efficient.