diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.proto | 2 | ||||
| -rw-r--r-- | src/ao-make-product.5c | 15 | ||||
| -rw-r--r-- | src/ao.h | 3 | ||||
| -rw-r--r-- | src/ao_packet_master.c | 2 | ||||
| -rw-r--r-- | src/ao_packet_slave.c | 4 | ||||
| -rw-r--r-- | src/ao_product.c | 2 | ||||
| -rw-r--r-- | src/teledongle-v0.1/Makefile.defs | 1 | ||||
| -rw-r--r-- | src/teledongle-v0.2/Makefile.defs | 1 | ||||
| -rw-r--r-- | src/telemetrum-v0.1-sirf/Makefile.defs | 1 | ||||
| -rw-r--r-- | src/telemetrum-v0.1-sky/Makefile.defs | 1 | ||||
| -rw-r--r-- | src/telemetrum-v1.0/Makefile.defs | 1 | ||||
| -rw-r--r-- | src/tidongle/Makefile.defs | 1 | 
12 files changed, 30 insertions, 4 deletions
| diff --git a/src/Makefile.proto b/src/Makefile.proto index 106333a6..eedb878a 100644 --- a/src/Makefile.proto +++ b/src/Makefile.proto @@ -214,7 +214,7 @@ all: ../$(PROG)  	nickle $< > $@  ao_product.h: ao-make-product.5c -	$(call quiet,NICKLE,$<) $< -m altusmetrum.org -p $(PRODUCT) -v $(VERSION) > $@ +	$(call quiet,NICKLE,$<) $< -m altusmetrum.org -i $(IDPRODUCT) -p $(PRODUCT) -v $(VERSION) > $@  ao_product.rel: ao_product.c ao_product.h  	$(call quiet,CC) -c $(CFLAGS) -D PRODUCT_DEFS='\"ao_product.h\"' -o$@ $< diff --git a/src/ao-make-product.5c b/src/ao-make-product.5c index 933032dd..5f2eb8e8 100644 --- a/src/ao-make-product.5c +++ b/src/ao-make-product.5c @@ -37,11 +37,19 @@ write_int(int a, string description)  	printf ("#define AO_%s_NUMBER %d\n\n", description, a);  } +void +write_hex(int a, string description) +{ +	printf ("/* %s */\n", description); +	printf ("#define AO_%s_NUMBER 0x%04x\n\n", description, a); +} +  string manufacturer = "altusmetrum.org";  string product = "TeleMetrum";  string version = "0.0";  int serial = 1;  int user_argind = 0; +int id_product = 0x000a;  argdesc argd = {  	.args = { @@ -58,6 +66,12 @@ argdesc argd = {  			.expr_name = "prod",  			.desc = "Product name." },  		{ +			.var = { .arg_int = &id_product }, +			.abbr = 'i', +			.name = "id_product", +			.expr_name = "id_p", +			.desc = "Product ID." }, +		{  			.var = { .arg_int = &serial },  			.abbr = 's',  			.name = "serial", @@ -82,6 +96,7 @@ main()  	write_ucs2(product, "iProduct");  	write_ucs2(sprintf("%06d", serial), "iSerial");  	write_int(serial, "iSerial"); +	write_hex(id_product, "idProduct");  	write_string(version, "iVersion");  } @@ -1034,7 +1034,7 @@ struct ao_fifo {   * Packet-based command interface   */ -#define AO_PACKET_MAX	8 +#define AO_PACKET_MAX		64  #define AO_PACKET_SYN		(uint8_t) 0xff  struct ao_packet { @@ -1043,6 +1043,7 @@ struct ao_packet {  	uint8_t		seq;  	uint8_t		ack;  	uint8_t		d[AO_PACKET_MAX]; +	uint8_t		callsign[AO_MAX_CALLSIGN];  };  struct ao_packet_recv { diff --git a/src/ao_packet_master.c b/src/ao_packet_master.c index ef86fa28..72bb908a 100644 --- a/src/ao_packet_master.c +++ b/src/ao_packet_master.c @@ -77,12 +77,14 @@ ao_packet_master(void)  {  	uint8_t	status; +	ao_config_get();  	ao_radio_set_packet();  	ao_tx_packet.addr = ao_serial_number;  	ao_tx_packet.len = AO_PACKET_SYN;  	ao_packet_master_time = ao_time();  	ao_packet_master_delay = AO_PACKET_MASTER_DELAY_SHORT;  	while (ao_packet_enable) { +		memcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);  		ao_packet_send();  		if (ao_tx_packet.len)  			ao_packet_master_busy(); diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c index e03ebdc3..9b78767f 100644 --- a/src/ao_packet_slave.c +++ b/src/ao_packet_slave.c @@ -27,8 +27,10 @@ ao_packet_slave(void)  	ao_tx_packet.len = AO_PACKET_SYN;  	while (ao_packet_enable) {  		status = ao_packet_recv(); -		if (status & AO_DMA_DONE) +		if (status & AO_DMA_DONE) { +			memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN);  			ao_packet_send(); +		}  	}  	ao_exit();  } diff --git a/src/ao_product.c b/src/ao_product.c index b42e62c0..2bd0b59c 100644 --- a/src/ao_product.c +++ b/src/ao_product.c @@ -40,7 +40,7 @@ const uint8_t ao_usb_descriptors [] =  	0x00,			/*  bDeviceProtocol */  	AO_USB_CONTROL_SIZE,	/*  bMaxPacketSize */  	LE_WORD(0xFFFE),	/*  idVendor */ -	LE_WORD(0x000A),	/*  idProduct */ +	LE_WORD(AO_idProduct_NUMBER),	/*  idProduct */  	LE_WORD(0x0100),	/*  bcdDevice */  	0x01,			/*  iManufacturer */  	0x02,			/*  iProduct */ diff --git a/src/teledongle-v0.1/Makefile.defs b/src/teledongle-v0.1/Makefile.defs index 06559b28..be7741d8 100644 --- a/src/teledongle-v0.1/Makefile.defs +++ b/src/teledongle-v0.1/Makefile.defs @@ -6,3 +6,4 @@ SRC = \  PRODUCT=TeleDongle-v0.1  PRODUCT_DEF=-DTELEDONGLE_V_0_1 +IDPRODUCT=0x000c diff --git a/src/teledongle-v0.2/Makefile.defs b/src/teledongle-v0.2/Makefile.defs index 23694fda..cbec7805 100644 --- a/src/teledongle-v0.2/Makefile.defs +++ b/src/teledongle-v0.2/Makefile.defs @@ -6,3 +6,4 @@ SRC = \  PRODUCT=TeleDongle-v0.2  PRODUCT_DEF=-DTELEDONGLE_V_0_2 +IDPRODUCT=0x000c diff --git a/src/telemetrum-v0.1-sirf/Makefile.defs b/src/telemetrum-v0.1-sirf/Makefile.defs index 7306683e..2ce6e6ed 100644 --- a/src/telemetrum-v0.1-sirf/Makefile.defs +++ b/src/telemetrum-v0.1-sirf/Makefile.defs @@ -8,3 +8,4 @@ SRC = \  PRODUCT=TeleMetrum-v0.1-SiRF  PRODUCT_DEF=-DTELEMETRUM_V_0_1 +IDPRODUCT=0x000b diff --git a/src/telemetrum-v0.1-sky/Makefile.defs b/src/telemetrum-v0.1-sky/Makefile.defs index df475baa..098ac547 100644 --- a/src/telemetrum-v0.1-sky/Makefile.defs +++ b/src/telemetrum-v0.1-sky/Makefile.defs @@ -8,3 +8,4 @@ SRC = \  PRODUCT=TeleMetrum-v0.1  PRODUCT_DEF=-DTELEMETRUM_V_0_1 +IDPRODUCT=0x000b diff --git a/src/telemetrum-v1.0/Makefile.defs b/src/telemetrum-v1.0/Makefile.defs index e3cc5eb2..624ce6e8 100644 --- a/src/telemetrum-v1.0/Makefile.defs +++ b/src/telemetrum-v1.0/Makefile.defs @@ -8,3 +8,4 @@ SRC = \  PRODUCT=TeleMetrum-v1.0  PRODUCT_DEF=-DTELEMETRUM_V_1_0 +IDPRODUCT=0x000b diff --git a/src/tidongle/Makefile.defs b/src/tidongle/Makefile.defs index 5b910b9b..fdd51732 100644 --- a/src/tidongle/Makefile.defs +++ b/src/tidongle/Makefile.defs @@ -6,3 +6,4 @@ SRC = \  PRODUCT=TIDongle  PRODUCT_DEF=-DTIDONGLE +IDPRODUCT=0x000a | 
