PDO reccuperer int 32 "pointeur"
Posté : 14 oct. 2021, 19:37
Bonjour,
J'ai une fonction en php qui tourne dans un petit script sur une instance.
Je tente de faire des essais avec des modules radio.
Je ne comprends pas comment décaler l 'int 32 qui renseigne ma variable "$val". Actuellement je démarre un octet trop tôt.
frm_payload = "AuqGfY4IAAjc/A==";
Mon playlod, decrypté en Hex => 02ea867d8e080008dcfc
Actuellement je remonte $val = 80008dc (hex) soit 134219996 (dec) alors que je souhaite $val=0008dcfc soit 580860 (dec).
Voici ma fonction.
Merci pour votre aide
J'ai une fonction en php qui tourne dans un petit script sur une instance.
Je tente de faire des essais avec des modules radio.
Je ne comprends pas comment décaler l 'int 32 qui renseigne ma variable "$val". Actuellement je démarre un octet trop tôt.
frm_payload = "AuqGfY4IAAjc/A==";
Mon playlod, decrypté en Hex => 02ea867d8e080008dcfc
Actuellement je remonte $val = 80008dc (hex) soit 134219996 (dec) alors que je souhaite $val=0008dcfc soit 580860 (dec).
Voici ma fonction.
Merci pour votre aide
function decodeFrame($message)
{
//echo sprintf("Received message on topic [%s]\n%s\n\n", $message);
$obj = json_decode($message);
$device=$obj->{'end_device_ids'};
$uplinkMessage=$obj->{'uplink_message'};
$payload=base64_decode($uplinkMessage->{'frm_payload'});
$rssi=$uplinkMessage->{'rx_metadata'}[0]->{"rssi"};
echo sprintf(" RSSI: %d\n", $rssi);
echo sprintf(" DeviceID: %s\n", $device->{'device_id'});
echo sprintf("DeviceEUI: %s\n", $device->{'dev_eui'});
echo sprintf(" Payload: %s\n", bin2hex($payload));
$memoryStream = fopen('php://memory', 'rw+');
fwrite($memoryStream, $payload);
rewind($memoryStream);
$buffer = new ResourceBuffer($memoryStream);
$buffer->skip(3);
$wireCut =$buffer->getUnsignedByte() ;
$batteryLevel =$buffer->getUnsignedByte() ;
$val = $buffer->getUnsignedInt();
echo sprintf(" Pulses: %d\n", $val);
echo sprintf(" Battery: %d\n", $batteryLevel);
echo sprintf(" Wire cut: %d\n", $wireCut);
//echo $obj->{'received_at'}."\n";
$timestamp=new DateTime('NOW');
logFrame("LORA-".$device->{'dev_eui'},
$timestamp->format("Y-m-d H:i:s"),
$rssi,
$val, "", 0x0);
}