Data Exchange Protocol between Language Teacher®
PC-750 and Personal Computer
Serial port settings
Baud rate |
4800 |
Data bits |
8 |
Parity |
None |
Stop bits |
2 |
Exchange diagram
Data record
|
Bytes |
Value, hex |
Start marker |
1 |
0x7E |
Type of data |
1 |
Personal phones = 0x00
Business phones = 0x01
Memo = 0x02
Anniversary = 0x03
Schedule = 0x04
Account = 0x05
Deposit = 0x06
Withdrawal = 0x07
Transfer = 0x08
English User's Dictionary = 0x09
Russian User's Dictionary = 0x0A |
Data length in bytes |
1 |
nDataLen |
Divider1* |
1 (0) |
0x00 |
Data |
nDataLen |
<Data>
0xF0(0xFE)** - divider between fields |
Divider2* |
1 (0) |
0x00 |
CRC |
1 |
1. CRC = Sum of transmitted bytes from <Type of data> to <Divider2>
2. CRC = 0xFF - CRC |
End marker |
1 |
0xF3 |
*Divider1 and Divider2 are absent when User's Dictionary is transmitted for PC750R and PC750P
** Divider between fields has the code 0xF0 for PC750R and PC750P and the code 0xFE for PC750A
Protocol description
- Receiver sends Record Reception Request - 0x5C.
- After reception of Record Reception Request Transmitter sends the records of the selected section in the following order:
- Start marker - 0x7E
- type of data -
Private phones = 0x00
Business phones = 0x01
Memo = 0x02
Anniversary = 0x03
Schedule = 0x04
Account = 0x05
Deposit = 0x06
Withdrawal = 0x07
Transfer = 0x08
English User's Dictionary = 0x09
Russian User's Dictionary = 0x0A
- Data length in bytes
- Divider1 - 0x00
- Data ( fields divider - 0xF0, there is no divider after the last field)
- Divider2 - 0x00
- CRC - complement of the sum of the all trasmitted bytes ( without Start marker) to 0xFF.
- End marker - 0xF3
- Reciever receives the data and check the CRC. If CRC is OK, go to the step 1. If CRC is bad, connection closes.
- After the transmission of the last record Transmitter sends End of transmission (0xF5) immediately after the End marker of the last record and connection closes.
Note:
In PC750R and PC750P Divider1 and Divider2 (0x00) are absent when User's Dictionary is transmitted for PC750R and PC750P.
Data format
Type of data |
Field No. |
Field Name |
Bytes, max. |
Personal phones |
1 |
Name |
48 |
2 |
Address |
72 |
3 |
Phone |
48 |
4 |
Fax |
48 |
5 |
Pager |
24 |
Business phones |
1 |
Company |
40 |
2 |
Address |
50 |
3 |
Telephone |
40 |
4 |
Fax |
40 |
5 |
Contact - Position |
40 |
6 |
Contact - Name |
40 |
Memo |
1 |
Heading |
48 |
2 |
Content |
192 |
Anniversary |
1 |
Date |
2(date) |
2 |
Heading |
48 |
3 |
Contents |
168 |
Schedule |
1 |
Date |
4(date + year) |
2 |
Start Time |
2(time) |
3 |
End Time |
2(time) |
4 |
Content |
192 |
5 |
Alarm |
2(time) |
Account |
1 |
A/c Number |
24 |
2 |
A/c Title |
96 |
3 |
A/c Owner |
72 |
4 |
Credit Amount |
10 |
5 |
Transact. Amount |
24 |
Deposit, Withdrawal |
1 |
Transaction Date |
2(date + year) |
2 |
Description |
168 |
3 |
Transact. Amount |
10 |
4 |
A/c Number |
24 |
Transfer |
1 |
Transaction Date |
4(date + year) |
2 |
Description |
168 |
3 |
Transact. Amount |
10 |
4 |
From A/c Number |
24 |
5 |
To A/c Number |
24 |
English User's Dictionary,
Russian User's Dictionary
|
1 |
Headword |
24 |
2 |
Translation |
230 |
Note: New line symbol inthe textual data has the code 0x0A (not 0x0A 0x0D)
Date, Year and Time encoding
|
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Date |
Month |
Day |
- |
- |
Date+Year |
Century |
Year |
Month |
Day |
Time |
Hours |
Minutes |
- |
- |
Every byte in Date, Year and Time are encoded as binary-decimal number. That means that every half byte represents one decimal digit. To avoid zero bytes every half byte is incremented by 1.
So if we have Time as follow:
0x34 0x66
We decrement every byte by 0x11. Now we have 0x23 0x55.
Every half byte should be interpreted as decimal digit now: 23h 55m
Another example for Date+Year:
0x2A 0xAA 0x23 0x3A should be interepreted as 19 99 12 29 or 29-dec-1999
|