void SendPacketToSPIFromArray(BYTE numBytes,BYTE * data){ BYTE ss = data[0]; if(ss<3){ println_I("invalid SS pin"); return; } if(!SetCoProcMode(ss,IS_DO)) SetChannelValueCoProc(ss,1); SetChannelValueCoProc(ss,0); BYTE i; for (i=0;i<numBytes;i++){ data[i+1]=GetByteSPI(data[i+1]); } SetChannelValueCoProc(ss,1); }
void setOutputMine(int group, float v){ if( dyPid[group].outputChannel==DYPID_NON_USED|| !pidGroups[group].config.Enabled) return; Print_Level l = getPrintLevel(); //setPrintLevelNoPrint(); int val = (int)(v); if(dyPid[group].outputMode == IS_SERVO){ val += 128; if (val>255) val=255; if(val<0) val=0; }else if(dyPid[group].outputMode == IS_DO){ if(val>0) val=1; else val=0; }else{ val += 128; if (val>255) val=255; if(val<0) val=0; } int set = (int)val; //print_W(" set ");p_int_W(group);print_W(" to ");p_int_W(set); dyPid[group].outVal=set; SetChannelValueCoProc(dyPid[group].outputChannel,dyPid[group].outVal); setPrintLevel(l); }
void setOutputMine(int group, float v){ if( dyPid[group].outputChannel==DYPID_NON_USED|| ((pidGroups[group].Enabled == FALSE) && (vel[group].enabled==FALSE))) return; Print_Level l = getPrintLevel(); setPrintLevelNoPrint(); int val = (int)(v); //BYTE center = getBcsIoDataTable()[dyPid[group].outputChannel].PIN.currentConfiguration; if(dyPid[group].outputMode == IS_SERVO){ val += 128; if (val>254) val=254; if(val<0) val=0; }else if(dyPid[group].outputMode == IS_DO){ if(val>0) val=1; else val=0; }else{ val += 128; if (val>255) val=255; if(val<0) val=0; } int set = (int)val; if (dyPid[group].outVal==set){ //if(!(RunEvery(&force[chan->channel])>0)) return; }else{ print_I(" Setting PID output, was ");p_int_I(dyPid[group].outVal);print_I(" is now: ");p_int_I(set);print_I(" on DyIO chan: ");p_int_I(dyPid[group].outputChannel);print_I(", "); } dyPid[group].outVal=set; println_I("PID setting output for group: ");p_int_I(group); SetChannelValueCoProc(dyPid[group].outputChannel,dyPid[group].outVal); setPrintLevel(l); }