void send_PICTURE_TAKEN_message(uint16_t imageID) { wait_for_send_message(); messageToSend[0] = 3; /* length */ messageToSend[1] = MID_PICTURE_TAKEN; /* message ID */ messageToSend[2] = (uint8_t)(imageID >> 8); /* image ID MSB */ messageToSend[3] = (uint8_t)imageID; /* image ID LSB */ messageToSendLength = 4; flag_want_to_send_message(); //send_message(); }
void send_IMAGE_DOWNLOAD_INFO_message(uint16_t numPackets) { wait_for_send_message(); messageToSend[0] = 3; messageToSend[1] = MID_IMAGE_DOWNLOAD_INFO; messageToSend[2] = (uint8_t)(numPackets >> 8); messageToSend[3] = (uint8_t)numPackets; messageToSendLength = 4; flag_want_to_send_message(); // send_message(); }
void send_IMAGE_DATA_packet() { // wait until we can send a packet wait_for_send_message(); uint8_t currPacketLength; if((imageSendState.currentPacket == imageSendState.numPackets - 1) && (imageSendState.imageFileSize % IMAGE_PACKET_SIZE != 0)) { currPacketLength = imageSendState.imageFileSize % IMAGE_PACKET_SIZE; } else { currPacketLength = IMAGE_PACKET_SIZE; } if(imageSendState.currentPacket == imageSendState.numPackets - 1) { DLOG("Last packet\n\r"); } currPacketLength += 4; // add the length required for the packet size, message id and the current packet number data //if(currPacketNum > 1140) { // DLOG("#"); // DLOG(currPacketNum); // DLOG(": "); //} messageToSend[0] = currPacketLength - 1; messageToSend[1] = MID_IMAGE_DATA; messageToSend[2] = (uint8_t)imageSendState.currentPacket; messageToSend[3] = (uint8_t)(imageSendState.currentPacket >> 8); messageToSendLength = currPacketLength; for(int currByteNum = 4; currByteNum < currPacketLength; currByteNum++) { uint8_t currByte = (uint8_t)sdFile.read(); messageToSend[currByteNum] = currByte; //if(currPacketNum > 1140) { // DLOG((int)imagePacketToSend[currByteNum]); // DLOG(" "); //} if(messageToSend[currByte] == -1) { DLOG("ERROR: Trying to read over the end of the file!\n\r"); } } //for(int currByteNum = 0; currByteNum < currPacketLength; currByteNum++) { // if(currPacketNum > 1140) { // DLOG((int)imagePacketToSend[currByteNum]); // DLOG(" "); // } // } // if(currPacketNum > 1140) { // DLOG("\n\r"); // } //DLOG("Waiting for tx token\n\r"); //recTxToken = false; //while(!recTxToken) // comms_update(); //DLOG("Got tx token\n\r"); //send_set_class_indexed_item_indexed(CLASS_PAYLOAD, module_id, CLASS_PAYLOAD_MEM_BYTES, 0, imagePacketToSend, currPacketLength); //DLOG("Waiting for all data to be transmitted\n\r"); //DLOG("Class item sent\n\r"); //while(payload_stream.tx_fifo.head != payload_stream.tx_fifo.tail); // spin until all the data has been transmitted //DLOG("Transmitted\n\r"); //flag_want_to_send_message(); send_message(false, NUM_ACKFAIL_RETRIES); imageSendState.currentPacket++; }