satdump/plugins/proba_support/proba/instruments/vegetation/vegs_reader.cpp
2024-05-09 01:16:08 +02:00

47 lines
No EOL
1.1 KiB
C++

#include "vegs_reader.h"
#include "common/ccsds/ccsds_time.h"
#include "common/repack.h"
#include "logger.h"
namespace proba
{
namespace vegetation
{
VegetationS::VegetationS(int frm_size, int line_size)
{
img_data.resize(line_size);
lines = 0;
this->frm_size = frm_size;
this->line_size = line_size;
tmp_words = new uint16_t[line_size * 2];
}
VegetationS::~VegetationS()
{
delete[] tmp_words;
}
void VegetationS::work(ccsds::CCSDSPacket &packet)
{
if ((int)packet.payload.size() < frm_size)
return;
repackBytesTo12bits(&packet.payload[18], frm_size - 18, tmp_words);
for (int i = 0; i < line_size; i++)
img_data[lines * line_size + i] = tmp_words[i] << 4;
lines++;
img_data.resize((lines + 1) * line_size);
}
image::Image VegetationS::getImg()
{
return image::Image(img_data.data(), 16, line_size, lines, 1);
}
} // namespace swap
} // namespace proba