Russian text to touchpanel
slip cougan
Posts: 34
Hi AMX group.
My name is Gary and I've recently joined this group and have been reading through many of the posts.
Very interesting group.
I'm still a relative newcomer to AMX/Netlinx so please bear with me.
I'm sure this will be the first of many questions.
I'm trying to get my head around this whole unicode thing with netlinx so please be gentle with me
For the time being I have created an include file that defines a CHAR array such:
CHAR zoneRussianTemplate[30][7][30] =
{
{'Sat1', '2', '31', '2', '1', 'английский|Спутниковое', 'английский Спутниковое'},
{'Sat2', '2', '32', '2', '1', 'Русский|Спутниковое', 'Русский Спутниковое' },
etc etc
{'Blinds', '3', '26', '1', '1', 'Занавески', 'Занавески' }
}
The last two columns in the array is the text to be sent to the panels.
I've been caught with this one before with C******n, so I selected an Arial font that I knew supported Cyrillic.
(By the way - love the way that got changed to ******** - very funny.)
If I send the first row, column 7 text to the panel:
SEND_COMMAND TP1,"'!T',1, zoneRussianTemplate[1][7]"
This just printed a load of garbage characters on the panel.
I then tested if I could send this as unicode so:
I pasted 'английский Спутниковое' as unicode and tried:
SEND_COMMAND TP1,"'^UNI-1,1,0430043D0433043B043804390441043A0438043900200421043F04430442043D0438043A043E0432043E0435'"
This worked and displayed as expected.
The plan ultimately is to replace the array with a text file in the processor and read that in. So I'd like to keep the text in Russian.
That way we can get a list of Russian devices or settings from the clients and load these straight to the panel.
So how can I get Russian text to display on the panel?
I mean how do they do this in Russia?
I have included INCLUDE 'UnicodeLib.axi' in my program and have enabled the _WC Preprocessor (Unicode) in settings. (Although I've yet to fully understand this)
Incidentally for those who may have spotted the '|' before the word 'Спутниковое' in column 6, and wondering what it does - this is a special character that creates a carriage return in the array text. Many thanks to AMX UK for that one.
Any help greatly appreciated.
Thanks
gary
My name is Gary and I've recently joined this group and have been reading through many of the posts.
Very interesting group.
I'm still a relative newcomer to AMX/Netlinx so please bear with me.
I'm sure this will be the first of many questions.
I'm trying to get my head around this whole unicode thing with netlinx so please be gentle with me
For the time being I have created an include file that defines a CHAR array such:
CHAR zoneRussianTemplate[30][7][30] =
{
{'Sat1', '2', '31', '2', '1', 'английский|Спутниковое', 'английский Спутниковое'},
{'Sat2', '2', '32', '2', '1', 'Русский|Спутниковое', 'Русский Спутниковое' },
etc etc
{'Blinds', '3', '26', '1', '1', 'Занавески', 'Занавески' }
}
The last two columns in the array is the text to be sent to the panels.
I've been caught with this one before with C******n, so I selected an Arial font that I knew supported Cyrillic.
(By the way - love the way that got changed to ******** - very funny.)
If I send the first row, column 7 text to the panel:
SEND_COMMAND TP1,"'!T',1, zoneRussianTemplate[1][7]"
This just printed a load of garbage characters on the panel.
I then tested if I could send this as unicode so:
I pasted 'английский Спутниковое' as unicode and tried:
SEND_COMMAND TP1,"'^UNI-1,1,0430043D0433043B043804390441043A0438043900200421043F04430442043D0438043A043E0432043E0435'"
This worked and displayed as expected.
The plan ultimately is to replace the array with a text file in the processor and read that in. So I'd like to keep the text in Russian.
That way we can get a list of Russian devices or settings from the clients and load these straight to the panel.
So how can I get Russian text to display on the panel?
I mean how do they do this in Russia?
I have included INCLUDE 'UnicodeLib.axi' in my program and have enabled the _WC Preprocessor (Unicode) in settings. (Although I've yet to fully understand this)
Incidentally for those who may have spotted the '|' before the word 'Спутниковое' in column 6, and wondering what it does - this is a special character that creates a carriage return in the array text. Many thanks to AMX UK for that one.
Any help greatly appreciated.
Thanks
gary
0
Comments
In Soviet Russia, Panel SENDS_COMMAND to you.
Now I know why it dosn't work!
i have NO idea if this is any good, but it looks promising
There appears to be an issue with WIDECHAR formatting:
I have experimented defining the Russian text as a WIDECHAR but this just gives me a compile error even if I enclose it in the _WC() macro.
Although the help file on WIDECHAR states that CHAR & WIDECHAR text can be treated the same, they cannot, for example:
I can store the Russian text in a CHAR:
CHAR MyString[] = 'английский Спутниковое' no problem.
I can't store it in a WIDECHAR:
WIDECHAR wcMyString[] = 'английский Спутниковое'
That just throws a compile WARNING: \...\Touchpanel control setup.axi(89): C10571: Converting type [string] to [WIDECHAR]
If I enclose it in the _WC macro:
WIDECHAR wcMyString[] = _WC('английский Спутниковое')
Then I get a syntax error.
Yet this:
WIDECHAR wcMyString[] = _WC('my string')
Compiles OK.
I currently have AMX looking into this as well as I'm stumped on this.
regards
g
and then pass that CHAR to WC_TP_ENCODE()?
I know it will probably not work, but i dont have a TP at hand, so i can't test it for myself