Current Preset Script

GPC2 script programming for Titan Two. Code examples, questions, requests.

Current Preset Script

Postby deadbotempire » Tue Feb 16, 2021 4:53 pm

Need help with a preset script. I'm using the modal code from the forums but in other projects I'm not able to get the bytes working in the Interactive Configuration. Need to know if I can write to a single variable in an Interactive configuration. I have several working projects but I would like to develop a working template for iteration. Would like to email my code for help with my script.

Code: Select all
 
////////////////////////////////////////////////////////////////////////////////
// temp_config_16_ic.gph
////////////////////////////////////////////////////////////////////////////////
/*
<cfgdesc>
 
[CURRENT-PRESET:]
byteoffset = 0
bitsize = 8
bitoffset = 0
control = slider
minimum = 1
maximum = 2
step = 1
default = 1
color = #FF0000
 
[PRESET-1:]
control = info
color = #FF0000
 
[PRESET-1: MODE-1]
byteoffset = 1
bitsize = 1
bitoffset = 0
control = checkbox
item = Mode 1
default = 1
color = #FF0000
group = true 
 
[PRESET-1: MODE-2]
byteoffset = 1
bitsize = 1
bitoffset = 1
control = checkbox
item = Mode 2
default = 1
color = #FF0000
group = true 
 
[PRESET-1: MODE-3]
byteoffset = 1
bitsize = 1
bitoffset = 2
control = checkbox
item = Mode 3
default = 1
color = #FF0000
group = true
 
[PRESET-1: MODE-4]
byteoffset = 1
bitsize = 1
bitoffset = 3
control = checkbox
item = Mode 4
default = 1
color = #FF0000
group = true
 
[PRESET-1: MODE-5]
byteoffset = 1
bitsize = 1
bitoffset = 4
control = checkbox
item = Mode 5
default = 1
color = #FF0000
group = true
 
[PRESET-1: MODE-6]
byteoffset = 1
bitsize = 1
bitoffset = 5
control = checkbox
item = Mode 6
default = 1
color = #FF0000
group = true
 
[PRESET-1: MODE-7]
byteoffset = 1
bitsize = 1
bitoffset = 6
control = checkbox
item = Mode 7
default = 1
color = #FF0000
group = true 
 
[PRESET-1: MODE-8]
byteoffset = 1
bitsize = 1
bitoffset = 7
control = checkbox
item = Mode 8
default = 1
color = #FF0000
group = true 
 
[PRESET-2:]
control = info
color = #FF0000
 
[PRESET-2: MODE-1]
byteoffset = 2
bitsize = 1
bitoffset = 0
control = checkbox
item = Mode 1
default = 1
color = #FF0000
group = true
 
[PRESET-2: MODE-2]
byteoffset = 2
bitsize = 1
bitoffset = 1
control = checkbox
item = Mode 2
default = 1
color = #FF0000
group = true
 
[PRESET-2: MODE-3]
byteoffset = 2
bitsize = 1
bitoffset = 2
control = checkbox
item = Mode 3
default = 1
color = #FF0000
group = true 
 
[PRESET-2: MODE-4]
byteoffset = 2
bitsize = 1
bitoffset = 3
control = checkbox
item = Mode 4
default = 1
color = #FF0000
group = true
 
[PRESET-2: MODE-5]
byteoffset = 2
bitsize = 1
bitoffset = 4
control = checkbox
item = Mode 5
default = 1
color = #FF0000
group = true
 
[PRESET-2: MODE-6]
byteoffset = 2
bitsize = 1
bitoffset = 5
control = checkbox
item = Mode 6
default = 1
color = #FF0000
group = true 
 
[PRESET-2: MODE-7]
byteoffset = 2
bitsize = 1
bitoffset = 6
control = checkbox
item = Mode 7
default = 1
color = #FF0000
group = true 
 
[PRESET-2: MODE-8]
byteoffset = 2
bitsize = 1
bitoffset = 7
control = checkbox
item = Mode 8
default = 1
color = #FF0000
group = true 
 
</cfgdesc>
*/

////////////////////////////////////////////////////////////////////////////////
// temp_config_16.gph
////////////////////////////////////////////////////////////////////////////////
#define PRESET_1  1
#define PRESET_2  2
 
uint8 bCurrentPreset;
uint8 bPreset1, bPreset2;
uint8 MODE1_ON, MODE2_ON, MODE3_ON, MODE4_ON;
uint8 MODE5_ON, MODE6_ON, MODE7_ON, MODE8_ON;
 
init {
pmem_load();
pmem_read(0, &bCurrentPreset);
pmem_read(1, &bPreset1);
pmem_read(2, &bPreset2);
////////////////////////////////////////////////////////////////////////////////
// Preset Module
////////////////////////////////////////////////////////////////////////////////
if(bCurrentPreset==PRESET_1){
  printf("Current Preset: PRESET-1");
  MODE1_ON = (pmem_read(1) >> 0) & 0b1;
  MODE2_ON = (pmem_read(1) >> 1) & 0b1;
  MODE3_ON = (pmem_read(1) >> 2) & 0b1;
  MODE4_ON = (pmem_read(1) >> 3) & 0b1;
  MODE5_ON = (pmem_read(1) >> 4) & 0b1;
  MODE6_ON = (pmem_read(1) >> 5) & 0b1;
  MODE7_ON = (pmem_read(1) >> 6) & 0b1;
  MODE8_ON = (pmem_read(1) >> 7) & 0b1;
}else if (bCurrentPreset==PRESET_2){
  printf("Current Preset: PRESET-2");
  MODE1_ON = (pmem_read(2) >> 0) & 0b1;
  MODE2_ON = (pmem_read(2) >> 1) & 0b1;
  MODE3_ON = (pmem_read(2) >> 2) & 0b1;
  MODE4_ON = (pmem_read(2) >> 3) & 0b1;
  MODE5_ON = (pmem_read(2) >> 4) & 0b1;
  MODE6_ON = (pmem_read(2) >> 5) & 0b1;
  MODE7_ON = (pmem_read(2) >> 6) & 0b1;
  MODE8_ON = (pmem_read(2) >> 7) & 0b1;
}
 
if(MODE1_ON){printf("MODE 1: ON");} else if (!MODE1_ON) {printf("MODE 1: OFF");}
if(MODE2_ON){printf("MODE 2: ON");} else if (!MODE2_ON) {printf("MODE 2: OFF");}
if(MODE3_ON){printf("MODE 3: ON");} else if (!MODE3_ON) {printf("MODE 3: OFF");}
if(MODE4_ON){printf("MODE 4: ON");} else if (!MODE4_ON) {printf("MODE 4: OFF");}
if(MODE5_ON){printf("MODE 5: ON");} else if (!MODE5_ON) {printf("MODE 5: OFF");}
if(MODE6_ON){printf("MODE 6: ON");} else if (!MODE6_ON) {printf("MODE 6: OFF");}
if(MODE7_ON){printf("MODE 7: ON");} else if (!MODE7_ON) {printf("MODE 7: OFF");}
if(MODE8_ON){printf("MODE 8: ON");} else if (!MODE8_ON) {printf("MODE 8: OFF");}
}
////////////////////////////////////////////////////////////////////////////////
// main
////////////////////////////////////////////////////////////////////////////////
#pragma METAINFO("temp_config_16", 1, 0, "DeadbotE")
 
#include "temp_config_16_ic.gph"
#include "temp_config_16.gph"
 
 
main {}
 
 
User avatar
deadbotempire
Corporal
Corporal
 
Posts: 4
Joined: Fri May 03, 2019 6:33 am

Re: Current Preset Script

Postby J2Kbr » Tue Feb 16, 2021 7:41 pm

I just tested your script, making changes on the interactive configuration. Everything seems to be working as expected. The values were correctly printed on the output panel.
ConsoleTuner Support Team
User avatar
J2Kbr
General of the Army
General of the Army
 
Posts: 20323
Joined: Tue Mar 18, 2014 1:39 pm

Re: Current Preset Script

Postby deadbotempire » Wed Feb 17, 2021 12:41 pm

Scachi fixed the issue via Discord. bitsize = 1 instead of bitsize = 8 with the corresponding bitoffset even though I was writing to one variable.
User avatar
deadbotempire
Corporal
Corporal
 
Posts: 4
Joined: Fri May 03, 2019 6:33 am


Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 68 guests