我试图将二进制文件从服务器(PHP)传输到客户端。然后我需要在javascript中解析二进制文件,以便我可以使用图表绘制值。
使用JParser库解析二进制文件I' m。当我尝试读取负int16值时结果是错误的。这里有一些代码:
AJAX POST
$.ajax({
url: '/getComtrade.php',
type: 'POST',
data: { getDat: "filename.dat" },
success: function(data){
handleDatFile(data);
console.log(parser.parse('header'));
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
}
);
JPARSER STRUCT
function handleDatFile(data){
var view = new jDataView(data, undefined, undefined, true);
parser = new jParser(view, {
header: {
ID: 'uint32',
sample: 'uint32',
analogs: ['array', 'int16', 8],
digitals: ['array', 4, 29]
}
});
}
PHP代码
public static function getFileDat($fileName)
{
$filepath = COMTRADE_DIR . "/" . $fileName;
echo file_get_contents($filepath);
}
特别是十六进制值' F52E'在' -722'中解析。正确的价值是-2770'。
谢谢。