Exemple #1
0
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();
}
Exemple #2
0
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();
}
Exemple #3
0
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++;

}