2007年12月28日,武汉动车段信号调试中心,空气里弥漫着咖啡因和汗液混合的酸味。周远盯着巨型显示屏上闪烁的红色三角——代表CRH3-013列车的图标停滞在武广高铁试验段K1562+300处,像一颗卡在动脉中的血栓。
“第37次追踪测试失败。”苏晴的声音从通话器传来,带着电流干扰的杂音,“C3(CTCS-3级列控系统)主控单元再次重启,位置报告丢失。”
控制台前一片死寂。德国克诺尔公司派来的技术督导汉斯一拳砸在桌上,德语咒骂声在密闭空间回荡:“又是这个幽灵故障!在柏林实验室运行完美的系统,到中国就变成神经病!”
周远没有回应。他的视线落在数据记录仪打印出的波形图上——那根代表车地通信强度的绿色曲线,在故障发生时突然塌陷成直线,如同猝死者的心电图。
“周总工,”年轻的调度员小陈怯生生地报告,“德国团队要求...终止中方自主开发的‘听诊器’后台进程。”
周远猛地抬头。角落那台运行着“听诊器”系统的服务器,是苏晴团队秘密开发的监测程序,能实时分析列控系统底层数据流。此刻它的散热风扇正发出低鸣,屏幕上滚动的代码像瀑布般流淌。
“告诉汉斯,”周远的声音冷得像冰,“关‘听诊器’可以,让他签技术责任承诺书——如果因此延误武广高铁全线联调,克诺尔承担全部赔偿。”
通话器里传来德语激烈的争辩声,接着是苏晴的翻译:“他说...除非我们交出‘听诊器’的源代码。”
控制室里所有中方人员的目光都聚焦在周远身上。窗外,寒雨敲打着玻璃幕墙,远处存车线上停放的白色动车组在探照灯下泛着冷光。离铁道部规定的全线联调启动只剩72小时。
“苏晴,”周远抓起通话器,“执行B计划。”
深夜十一点,备用数据中心。应急灯在低矮的天花板上投下惨白的光,服务器机柜的嗡鸣是唯一背景音。苏晴把笔记本电脑推向周远:“‘听诊器’截获了故障前3毫秒的关键数据包。”
屏幕上,十六进制代码如天书般滚动。在故障触发点附近,苏晴标红了一串异常字符:“看这里——车载电台发送的位置报告里,经度值突然多出一个字节!”
周远俯身细看。正常的经度数据应为“114.2685”,但故障时刻的报文却变成了“114.2685E”——多出的字母“E”像颗毒瘤嵌在数据流中。
“欧洲格式。”周远立刻意识到问题所在。经度坐标在欧标中需加E/W后缀,而中国标准是纯数字。但克诺尔的设备在中国测试,为何会突然冒出欧标数据?
“更诡异的是,”苏晴调出通信协议,“C3系统规定所有数据必须采用‘GB/T -2017’格式,根本不允许字母后缀!”
周远的指尖划过屏幕上的异常字符。他想起三周前的一次系统升级——德方坚持要安装名为“Winter Package”的补丁,声称能提升低温环境下的通信稳定性。
“查那个补丁!”周远下令。
苏晴的手指在键盘上飞舞。代码对比软件将补丁文件与原始版本并排显示。突然,一段被注释掉的函数引起注意:“Lookup_Geo_Format...地理格式查询函数?”
“这个函数在原始版本是禁用的。”苏晴快速浏览汇编代码,“但补丁里被激活了!它在每次卫星定位更新时,会检查车辆识别号前缀——”
周远脑中闪过一道霹雳!CRH3系列车的车号由“CRH3”+“序号”组成,而德国本土ICE3列车的车号是“ICE3”开头!
“函数发现车号带‘CRH’前缀,误判为欧洲‘CR’开头的区域列车(如捷克铁路CD)!”周远的声音因激动而沙哑,“于是自动添加了欧标后缀‘E’!”
苏晴的脸色瞬间惨白:“但C3系统的中国协议栈无法解析带字母的经度值...所以主控单元崩溃重启!”
死寂中,服务器风扇的嗡鸣格外刺耳。这个由德国人埋下的代码地雷,差点让中国高铁的核心控制系统在联调前夜瘫痪。
凌晨三点,克诺尔公司临时办公室。汉斯看着周远递来的分析报告,金丝眼镜后的蓝色瞳孔剧烈收缩:“不可能...我们的代码经过三重验证...”
“验证的是ICE3,不是CRH3。”周远将笔记本电脑转向他,“需要我演示函数调用栈吗?”
汉斯的手指在颤抖。他身后年轻的德国程序员突然用英语插话:“那个补丁...是慕尼黑总部临时加的,说中国北方需要...”
“闭嘴!”汉斯厉声呵斥,但已来不及了。
周远捕捉到程序员胸牌上的名字——马克斯·韦伯,正是安全简报中提到的克诺尔新锐工程师,以直言不讳着称。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!