}
void *
-pmt_uniform_vector_writeable_elements(pmt_t vector, size_t &len)
+pmt_uniform_vector_writable_elements(pmt_t vector, size_t &len)
{
if (!vector->is_uniform_vector())
- throw pmt_wrong_type("pmt_uniform_vector_writeable_elements", vector);
- return _uniform_vector(vector)->uniform_writeable_elements(len);
+ throw pmt_wrong_type("pmt_uniform_vector_writable_elements", vector);
+ return _uniform_vector(vector)->uniform_writable_elements(len);
}
////////////////////////////////////////////////////////////////////////////
// Return non-const pointers to the elements
-void *pmt_uniform_vector_writeable_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
-
-uint8_t *pmt_u8vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-int8_t *pmt_s8vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-uint16_t *pmt_u16vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-int16_t *pmt_s16vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-uint32_t *pmt_u32vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-int32_t *pmt_s32vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-uint64_t *pmt_u64vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-int64_t *pmt_s64vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-float *pmt_f32vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-double *pmt_f64vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-std::complex<float> *pmt_c32vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
-std::complex<double> *pmt_c64vector_writeable_elements(pmt_t v, size_t &len); //< len is in elements
+void *pmt_uniform_vector_writable_elements(pmt_t v, size_t &len); //< works with any; len is in bytes
+
+uint8_t *pmt_u8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+int8_t *pmt_s8vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+uint16_t *pmt_u16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+int16_t *pmt_s16vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+uint32_t *pmt_u32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+int32_t *pmt_s32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+uint64_t *pmt_u64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+int64_t *pmt_s64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+float *pmt_f32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+double *pmt_f64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+std::complex<float> *pmt_c32vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
+std::complex<double> *pmt_c64vector_writable_elements(pmt_t v, size_t &len); //< len is in elements
/*
* ------------------------------------------------------------------------
public:
bool is_uniform_vector() const { return true; }
virtual const void *uniform_elements(size_t &len) = 0;
- virtual void *uniform_writeable_elements(size_t &len) = 0;
+ virtual void *uniform_writable_elements(size_t &len) = 0;
virtual size_t length() const = 0;
};
CPPUNIT_ASSERT_EQUAL(s1, rd[1]);
CPPUNIT_ASSERT_EQUAL(s2, rd[2]);
- @TYPE@ *wr = pmt_@TAG@vector_writeable_elements(v1, len);
+ @TYPE@ *wr = pmt_@TAG@vector_writable_elements(v1, len);
CPPUNIT_ASSERT_EQUAL(len, N);
wr[0] = @TYPE@(0);
CPPUNIT_ASSERT_EQUAL(@TYPE@(0), wr[0]);
}
@TYPE@ *
-pmt_@TAG@vector::writeable_elements(size_t &len)
+pmt_@TAG@vector::writable_elements(size_t &len)
{
len = length();
return &d_v[0];
}
void*
-pmt_@TAG@vector::uniform_writeable_elements(size_t &len)
+pmt_@TAG@vector::uniform_writable_elements(size_t &len)
{
len = length() * sizeof(@TYPE@);
return &d_v[0];
}
@TYPE@ *
-pmt_@TAG@vector_writeable_elements(pmt_t vector, size_t &len)
+pmt_@TAG@vector_writable_elements(pmt_t vector, size_t &len)
{
if (!vector->is_@TAG@vector())
- throw pmt_wrong_type("pmt_@TAG@vector_writeable_elements", vector);
- return _@TAG@vector(vector)->writeable_elements(len);
+ throw pmt_wrong_type("pmt_@TAG@vector_writable_elements", vector);
+ return _@TAG@vector(vector)->writable_elements(len);
}
@TYPE@ ref(size_t k) const;
void set(size_t k, @TYPE@ x);
const @TYPE@ *elements(size_t &len);
- @TYPE@ *writeable_elements(size_t &len);
+ @TYPE@ *writable_elements(size_t &len);
const void *uniform_elements(size_t &len);
- void *uniform_writeable_elements(size_t &len);
+ void *uniform_writable_elements(size_t &len);
};
size_t nshorts = 2 * nsamples_this_frame; // 16-bit I & Q
pmt_t uvec = pmt_make_s16vector(nshorts, 0);
size_t ignore;
- int16_t *samples = pmt_s16vector_writeable_elements(uvec, ignore);
+ int16_t *samples = pmt_s16vector_writable_elements(uvec, ignore);
// fill in the complex sinusoid
size_t nshorts = 2 * nsamples_this_frame; // 16-bit I & Q
pmt_t uvec = pmt_make_s16vector(nshorts, 0);
size_t ignore;
- int16_t *samples = pmt_s16vector_writeable_elements(uvec, ignore);
+ int16_t *samples = pmt_s16vector_writable_elements(uvec, ignore);
// fill in the complex sinusoid
size_t nshorts = 2 * nsamples_this_frame; // 16-bit I & Q
pmt_t uvec = pmt_make_s16vector(nshorts, 0);
size_t ignore;
- int16_t *samples = pmt_s16vector_writeable_elements(uvec, ignore);
+ int16_t *samples = pmt_s16vector_writable_elements(uvec, ignore);
// fill in the complex sinusoid
size_t nshorts = 2 * nsamples_this_frame; // 16-bit I & Q
pmt_t uvec = pmt_make_s16vector(nshorts, 0);
size_t ignore;
- int16_t *samples = pmt_s16vector_writeable_elements(uvec, ignore);
+ int16_t *samples = pmt_s16vector_writable_elements(uvec, ignore);
// fill in the complex sinusoid
size_t i2c_data_len;
pmt_t i2c_data = pmt_make_u8vector(len - 2, 0); // skip rid+mbz+addr = 2 bytes
uint8_t *w_data =
- (uint8_t *) pmt_u8vector_writeable_elements(i2c_data, i2c_data_len);
+ (uint8_t *) pmt_u8vector_writable_elements(i2c_data, i2c_data_len);
memcpy(w_data, d_payload + payload_offset + 4, i2c_data_len); // skip first word
size_t spi_data_len;
pmt_t spi_data = pmt_make_u8vector(len - 2, 0); // skip rid+mbz+addr = 2 bytes
uint8_t *w_data =
- (uint8_t *) pmt_u8vector_writeable_elements(spi_data, spi_data_len);
+ (uint8_t *) pmt_u8vector_writable_elements(spi_data, spi_data_len);
memcpy(w_data, d_payload + payload_offset + 4, spi_data_len); // skip first word
// The length includes an extra 2 bytes for storing the mbz and addr
pmt_t i2c_data = pmt_make_u8vector(len-2, 0);
- // Get a writeable address to copy the data from the packet
+ // Get a writable address to copy the data from the packet
size_t ignore;
- uint8_t *w_data = (uint8_t *) pmt_u8vector_writeable_elements(i2c_data, ignore);
+ uint8_t *w_data = (uint8_t *) pmt_u8vector_writable_elements(i2c_data, ignore);
memcpy(w_data, d_payload + payload_offset + 4, len-2);
size_t spi_data_len;
pmt_t spi_data = pmt_make_u8vector(len - 6, 0); // skip rid+mbz+addr = 2 bytes
uint8_t *w_data =
- (uint8_t *) pmt_u8vector_writeable_elements(spi_data, spi_data_len);
+ (uint8_t *) pmt_u8vector_writable_elements(spi_data, spi_data_len);
memcpy(w_data, d_payload + payload_offset + 8, spi_data_len); // skip first 2 words
pmt_t v_pkt = pmt_make_u8vector(pkt_size, 0);
transport_pkt *pkt =
- (transport_pkt *) pmt_u8vector_writeable_elements(v_pkt, ignore);
+ (transport_pkt *) pmt_u8vector_writable_elements(v_pkt, ignore);
n_read = d_urx->read(pkt, pkt_size, &underrun);
long n_bytes = nshorts*2;
pmt_t uvec = pmt_make_s16vector(nshorts, 0);
size_t ignore;
- int16_t *samples = pmt_s16vector_writeable_elements(uvec, ignore);
+ int16_t *samples = pmt_s16vector_writable_elements(uvec, ignore);
// fill in the complex sinusoid
pmt_t v_pkt = pmt_make_u8vector(sizeof(transport_pkt), 0);
transport_pkt *pkt =
- (transport_pkt *) pmt_u8vector_writeable_elements(v_pkt, ignore);
+ (transport_pkt *) pmt_u8vector_writable_elements(v_pkt, ignore);
pkt->set_header(0, channel, 0, n_bytes);
pkt->set_timestamp(0xffffffff);
pmt_t v_packets = pmt_make_u8vector(sizeof(transport_pkt) * n_packets, 0);
transport_pkt *pkts =
- (transport_pkt *) pmt_u8vector_writeable_elements(v_packets, psize);
+ (transport_pkt *) pmt_u8vector_writable_elements(v_packets, psize);
for(int n=0; n < n_packets; n++) {
new_packet:
// This code needs to become "smart" and only make a new packet when full
pmt_t v_packet = pmt_make_u8vector(sizeof(transport_pkt), 0);
- transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writeable_elements(v_packet, psize);
+ transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writable_elements(v_packet, psize);
payload_len = 0;
pkt->set_header(0, channel, 0, payload_len);
// Get a readable address to the data which also gives us the length
size_t data_len;
- uint8_t *i2c_data = (uint8_t *) pmt_u8vector_writeable_elements(data, data_len);
+ uint8_t *i2c_data = (uint8_t *) pmt_u8vector_writable_elements(data, data_len);
// Make the USB packet
if(!pkt->cs_i2c_write(i2c_addr, i2c_data, data_len))
// Get a readable address to the data which also gives us the length
size_t data_len;
- uint8_t *spi_data = (uint8_t *) pmt_u8vector_writeable_elements(data, data_len);
+ uint8_t *spi_data = (uint8_t *) pmt_u8vector_writable_elements(data, data_len);
// Make the USB packet
if(!pkt->cs_spi_write(enables, format, opt, spi_data, data_len))
}
// Extract the packet and return appropriately
- transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writeable_elements(v_pkt, n_bytes);
+ transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writable_elements(v_pkt, n_bytes);
// The channel is used to find the port to pass the samples on
long channel = pkt->chan();
return; // Don't know where to send the sample... possibility on abrupt close
pmt_t v_samples = pmt_make_u8vector(payload_len, 0);
- uint8_t *samples = pmt_u8vector_writeable_elements(v_samples, ignore);
+ uint8_t *samples = pmt_u8vector_writable_elements(v_samples, ignore);
memcpy(samples, pkt->payload(), payload_len);
long payload_len = 0;
pmt_t v_packet = pmt_make_u8vector(sizeof(transport_pkt), 0);
- transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writeable_elements(v_packet, psize);
+ transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writable_elements(v_packet, psize);
pkt->set_header(0, CONTROL_CHAN, 0, payload_len);
pkt->set_timestamp(0xffffffff);
long payload_len = 0;
pmt_t v_packet = pmt_make_u8vector(sizeof(transport_pkt), 0);
- transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writeable_elements(v_packet, psize);
+ transport_pkt *pkt = (transport_pkt *) pmt_u8vector_writable_elements(v_packet, psize);
pkt->set_header(0, CONTROL_CHAN, 0, payload_len);
pkt->set_timestamp(0xffffffff);
size_t n_bytes;
bool underrun; // this will need to go, as it is taken care of in the packet headers
- transport_pkt *pkts = (transport_pkt *) pmt_u8vector_writeable_elements(v_packets, n_bytes);
+ transport_pkt *pkts = (transport_pkt *) pmt_u8vector_writable_elements(v_packets, n_bytes);
int ret = d_utx->write (pkts, n_bytes, &underrun);
size_t n_bytes;
- transport_pkt *pkts = (transport_pkt *) pmt_u8vector_writeable_elements(v_packets, n_bytes);
+ transport_pkt *pkts = (transport_pkt *) pmt_u8vector_writable_elements(v_packets, n_bytes);
long n_packets = static_cast<long>(std::ceil(n_bytes / (double)transport_pkt::max_pkt_size()));
// Parse the packets looking for C/S packets and dump them to a disk if
pmt_t v_pkt = pmt_make_u8vector(sizeof(transport_pkt), 0);
transport_pkt *q_pkt =
- (transport_pkt *) pmt_u8vector_writeable_elements(v_pkt, ignore);
+ (transport_pkt *) pmt_u8vector_writable_elements(v_pkt, ignore);
q_pkt->set_header(0, CONTROL_CHAN, 0, 0);
q_pkt->set_timestamp(0xffffffff);
// Create data to place as a response, filled with 0xff
size_t ignore;
pmt_t i2c_data = pmt_make_u8vector(i2c_bytes, 0xff);
- uint8_t *w_data = (uint8_t *) pmt_u8vector_writeable_elements(i2c_data, ignore);
+ uint8_t *w_data = (uint8_t *) pmt_u8vector_writable_elements(i2c_data, ignore);
// Generate a reply and put it in the queue for the RX stub to read
if(!q_pkt->cs_i2c_read_reply(rid, i2c_addr, w_data, i2c_bytes))
// Create data to place as a fake response
size_t ignore;
pmt_t spi_data = pmt_make_u8vector(n_bytes, 0xff);
- uint8_t *w_data = (uint8_t *) pmt_u8vector_writeable_elements(spi_data, ignore);
+ uint8_t *w_data = (uint8_t *) pmt_u8vector_writable_elements(spi_data, ignore);
// Generate a reply and put it in the queue for the RX stub to read
if(!q_pkt->cs_spi_read_reply(rid, w_data, n_bytes))