FAQ杂记: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
</div> | </div> | ||
| | | | ||
* PSAM卡baudrate问题:在Q3上波特率是9600到9600*8, 波特率默认是9600,这个速度是卡和模块之间协商的,是一个自动的过程,(if the card can support higher baudrate, when get ATR of the card, the module will send an increase baudrate command to the card, if card support the increase, then the communication will use a high baudrate).Q2P上暂时支持不到38400,模块厂商在查。 | |||
具体卡有没有使用高波特率,普通日志看不出,需要取QXDM日志。 | |||
* 在Q2A7及以前版本,如果某SIM卡,终端上已经允许了打电话,发短信,Prefered network type也勾选了带2G的选项,但是还是不能打电话,发短信,说明SIM卡可能只支持4G,语音只支持VoLTE。Q2P上有VoLTE选项,所以支持这样的卡没问题。 | * 在Q2A7及以前版本,如果某SIM卡,终端上已经允许了打电话,发短信,Prefered network type也勾选了带2G的选项,但是还是不能打电话,发短信,说明SIM卡可能只支持4G,语音只支持VoLTE。Q2P上有VoLTE选项,所以支持这样的卡没问题。 | ||
* 在TMS上通过配置参数文件来配置重启时间及间隔天数。[https://ftp.wizarpos.com/advanceSDK/Configure_restart_daysandtimefromTMS.pdf 参考文档] | * 在TMS上通过配置参数文件来配置重启时间及间隔天数。[https://ftp.wizarpos.com/advanceSDK/Configure_restart_daysandtimefromTMS.pdf 参考文档] | ||
Line 22: | Line 24: | ||
* 目前所有model上,MAX版本Google拼音输入法已移除,有需要的客户另外安装,[https://ftp.wizarpos.com/advanceSDK/GooglePinyinIME.apk Q2上APK,已签名] | * 目前所有model上,MAX版本Google拼音输入法已移除,有需要的客户另外安装,[https://ftp.wizarpos.com/advanceSDK/GooglePinyinIME.apk Q2上APK,已签名] | ||
* Q2P 以上的版本WIFI支持5G。 LTE目前没有支持5G的。 | * Q2P 以上的版本WIFI支持5G。 LTE目前没有支持5G的。 | ||
* | * ACM串口,侧边的otg USB支持,需安装打开ACM属性的oem,终端上需要选择slave模式打开。另外一端也是CDC模式或者Host模式。 | ||
* [https://ftp.wizarpos.com/techsupport/software/检验是否带MDB.png 检验终端是否带MDB方法] | * [https://ftp.wizarpos.com/techsupport/software/检验是否带MDB.png 检验终端是否带MDB方法] | ||
* [https://ftp.wizarpos.com/advanceSDK/VA21BatteryInfo.zip VA21BatteryInfo.zip] | * [https://ftp.wizarpos.com/advanceSDK/VA21BatteryInfo.zip VA21BatteryInfo.zip] | ||
Line 37: | Line 39: | ||
** POS机上侧边的otg USB, 连Android板,需要Android板上编译高通的usb驱动,高通usb驱动,我们这边最高Android12上的,客户需要,我们可以提供。拷贝驱动到这个目录, kernel/drivers/usb/serial, 然后编译。 | ** POS机上侧边的otg USB, 连Android板,需要Android板上编译高通的usb驱动,高通usb驱动,我们这边最高Android12上的,客户需要,我们可以提供。拷贝驱动到这个目录, kernel/drivers/usb/serial, 然后编译。 | ||
** UU线连接Android板,需要Android板上打开UU线驱动{CONFIG_USB_SERIAL_PL2303,CONFIG_USB_SERIAL_FTDI_SIO},要判断Andrioid板上是否打开UU线驱动,步骤{先插拔UU线,再运行这个命令adb shell dmesg},取dmesg日志。查看到日志里面有这一行:pl2303 converter now attached to...意味着打开了UU线,可以进行通讯。Android板上编译UU线驱动,是这两个:1.LA.UM.9.15.2/LINUX/android/kernel/msm-4.19/drivers/usb/serial/ftdi_sio.c 2.Linux drivers/usb/serial/pl2303.c | ** UU线连接Android板,需要Android板上打开UU线驱动{CONFIG_USB_SERIAL_PL2303,CONFIG_USB_SERIAL_FTDI_SIO},要判断Andrioid板上是否打开UU线驱动,步骤{先插拔UU线,再运行这个命令adb shell dmesg},取dmesg日志。查看到日志里面有这一行:pl2303 converter now attached to...意味着打开了UU线,可以进行通讯。Android板上编译UU线驱动,是这两个:1.LA.UM.9.15.2/LINUX/android/kernel/msm-4.19/drivers/usb/serial/ftdi_sio.c 2.Linux drivers/usb/serial/pl2303.c | ||
* 关于Dukpt实现一次一密的会话定义:DUKPT是指每一次Transaction使用一个唯一的密钥。每个Transaction的密钥都不相同。慧银PINPad对于一次会话的定义: | |||
** 每个PINPad的open和close之间:只要使用过了任何一个密钥,下一次open后就认为开始一个新的会话,KSN就需要加1;如果没有使用过任何密钥,这次会话不算,即一下open不会开始一个新的会话。from redmine:26868 | |||
** 每个新会话开始,所有会话密钥的KSN都使用新的值。 | |||
** 在每次open和close之间,如果PIN key第二次使用,强制认为开始一个新回话。 | |||
** 在每次open和close之间,如果MAC key或者MAC key response第二次使用,强制认为开始一个新回话。20230705补充说明:就是说mac key和response mac key可以在不增加ksn的情况下各自使用一次。如果计算一次mac再计算一次response mac,则他们用同一个ksn。同时增加一个方法calculateResponseMac返回计算的mac数组,让调用者自己比较是否正确。 | |||
** Data key也符合上述规则 | |||
[上述规则的英文描述,可以直接拷贝给客户。Regarding the DUKPT Implementation and the Definition of a Session (One-Key-Per-Transaction): | |||
DUKPT (Derived Unique Key Per Transaction) means that each transaction uses a unique key — no two transactions share the same key. | |||
The definition of a session is as follows: | |||
Between each open and close operation on a PINPad: | |||
If any key is used during this period, then the next open is considered the start of a new session, and the KSN (Key Serial Number) must be incremented. | |||
If no keys are used during the open/close period, then this does not count as a session, and the KSN remains unchanged. | |||
At the start of a new session, all session keys use a new KSN value. | |||
If the PIN key is used a second time between one open and close, it is forced to start a new session. | |||
If the MAC key or MAC response key is used a second time between one open and close, it is also forced to start a new session. | |||
This means that the MAC key and response MAC key can each be used once per session without increasing the KSN. | |||
If a MAC is calculated once and a response MAC is calculated once, both use the same KSN. A new method calculateResponseMac is added to return the MAC array so the caller can compare it themselves. | |||
The Data key follows the same rules above.] | |||
*低电量警告:当电量低于15%或者剩余使用时间少于3小时都会报 | |||
*screenshot(截屏)相关,不支持快捷键截屏,支持开发应用截屏,但是密码键盘做了保护截不了。deviceowner应用可以控制终端点击。Demo下载。 AnyDesk显示,不能操作。 | |||
*SDK printBarcode()方法使用CODE128无法打印字母数字混合内容 的验证结果 | |||
经调试验证,该问题是由于要打印的内容过长导致。 | |||
打印机可以通过sendESCCommand()方法设置条形码宽度。传参为 | |||
new byte[]{0x1D, 0x77, (byte)0x02)}, | |||
new byte[]{0x1D, 0x77, (byte)0x03)}, | |||
new byte[]{0x1D, 0x77, (byte)0x04)}, | |||
new byte[]{0x1D, 0x77, (byte)0x05)}, | |||
new byte[]{0x1D, 0x77, (byte)0x06)} | |||
默认是0x03 | |||
设置条形码最小宽度是0x02,对于客户所要打印的“ASIACELL 5,000 IQD” 在设置打印机条形码最小宽度时,也只能打印到“ASIACELL 5,00”,与客户期望相差“0 IQD”。 | |||
对printBarcode()方法使用CODE128在设置不同二维码宽度的验证: | |||
0x02档 最多可打印 28个数字 或 14个英文 或 14个英文符号 或 14个空格 | |||
0x03档 最多可打印 16个数字 或 8个英文 或 8个英文符号 或 8个空格 | |||
0x04档 最多可打印 10个数字 或 5个英文 或 5个英文符号 或 5个空格 | |||
0x05档 最多可打印 6个数字 或 3个英文 或 3个英文符号 或 3个空格 | |||
0x06档 最多可打印 4个数字 或 2个英文 或 2个英文符号 或 2个空格 | |||
数字与字母结合的情况,由于sdk里ByteUtil.generateDataForCode128方法对数字和字母的长度计算使用的不同的计算方式,codeC和codeB, | |||
所以具体数字+字母混合内容的打印,在不等数字和不等字母组合上有差异,需要手动输入调试与确认。 | |||
}} | }} |
Latest revision as of 05:30, 23 May 2025
This content is restricted to authorized users only. Please log in to access additional information.