bool OpenPlannerSimulator::LoadSimulationData(PlannerHNS::WayPoint& start_p)
{
	ostringstream fileName;
	fileName << "SimuCar_";
	fileName << m_SimParams.id;
	fileName << ".csv";

	string simuDataFileName = UtilityHNS::UtilityH::GetHomeDirectory()+UtilityHNS::DataRW::LoggingMainfolderName+UtilityHNS::DataRW::SimulationFolderName + fileName.str();
	UtilityHNS::SimulationFileReader sfr(simuDataFileName);
	UtilityHNS::SimulationFileReader::SimulationData data;

	if(sfr.ReadAllData(data) == 0)
		return false;

	start_p = PlannerHNS::WayPoint(data.startPoint.x, data.startPoint.y, data.startPoint.z, data.startPoint.a);
	start_p.v = data.startPoint.v;
	start_p.cost = data.startPoint.c;
	return true;
}
Esempio n. 2
0
//----------------------------------------------------------------------
int idaapi ana(void)
{
//получить один байт
uchar code = ua_next_byte();

switch ( code )
  {
  //Mnemonic Operand Instruction Code
  //                        B1            B2             B3        B4
  case 0x00:
    {
    //ROR A, 1                0000 0000
    cmd.itype = NEC_78K_0S_ror;
    cmd.Op1.type = o_reg;
    cmd.Op1.reg = rA;
    cmd.Op2.type = o_imm;
    cmd.Op2.value = 1;
    cmd.Op2.regmode = 1;
    }  break;

  case 0x02:
    {
    //RORC A, 1               0000 0010
    cmd.itype = NEC_78K_0S_rorc;
    cmd.Op1.type = o_reg;
    cmd.Op1.reg = rA;
    cmd.Op2.type = o_imm;
    cmd.Op2.value = 1;
    cmd.Op2.regmode = 1;
    }  break;

  case 0x04:
    {
    //CLR1 CY                 0000 0100
    cmd.itype = NEC_78K_0S_clr1;
    cmd.Op1.type = o_phrase;
    cmd.Op1.reg  = bCY;
    } break;

  case 0x05:
    {
    //XCH A, saddr            0000 0101      Saddr-offset
    cmd.itype = NEC_78K_0S_xch;
    cmd.Op1.type = o_reg;
    cmd.Op1.reg  = rA;
    cmd.Op2.type = o_mem;
    cmd.Op2.dtyp = dt_byte;
    cmd.Op2.addr=saddr(ua_next_byte());
    } break;

  case 0x06:
    {
    //NOT1 CY                 0000 0110
    cmd.itype = NEC_78K_0S_not1;
    cmd.Op1.type = o_phrase;
    cmd.Op1.reg = bCY;
    } break;

  case 0x07:
    {
    //XCH A, sfr              0000 0111      Sfr-offset
    cmd.itype = NEC_78K_0S_xch;
    cmd.Op1.type = o_reg;
    cmd.Op1.reg  = rA;
    cmd.Op2.type = o_mem;
    cmd.Op2.dtyp = dt_byte;
    cmd.Op2.addr = sfr(ua_next_byte());
    } break;

  case 0x08:
    {
    //NOP                     0000 1000
    cmd.itype = NEC_78K_0S_nop;
    } break;

  case 0x0A:  // All 0x0A commands
    {
    uchar code2 = ua_next_byte();
    switch ( code2 )
      {
      case 0x88:
      case 0x98:
      case 0xA8:
      case 0xB8:
      case 0xC8:
      case 0xD8:
      case 0xE8:
      case 0xF8:
        {
        //BT saddr.bit, $addr16   0000 1010      1 B2 B1 B0 1000  Saddr-offset   jdisp
        cmd.itype = NEC_78K_0S_bt;
        cmd.Op1.type  = o_bit;
        cmd.Op1.dtyp  = dt_byte;
        cmd.Op1.addr  = saddr(ua_next_byte());
        cmd.Op1.value = (code2>>4) & 0x07;
        jdisp(cmd.Op2, ua_next_byte(), 4);
        } break;

      case 0x84:
      case 0x94:
      case 0xA4:
      case 0xB4:
      case 0xC4:
      case 0xD4:
      case 0xE4:
      case 0xF4:
        {
        //BT sfr.bit,   $addr16   0000 1010      1 B2 B1 B0 0100  Sfr-offset  jdisp
        //BT PSW.bit,   $addr16   0000 1010      1 B2 B1 B0 1000  0001 1110   jdisp
        cmd.itype = NEC_78K_0S_bt;
        uchar code3 = ua_next_byte();
        if ( code3==0x1E )
          {
          cmd.Op1.type  = o_bit;
          cmd.Op1.reg   = rPSW;
          cmd.Op1.value = (code2>>4)&0x07;
          jdisp(cmd.Op2, code3, 4);
          }
        else
          {
          cmd.Op1.type  = o_bit;
          cmd.Op1.dtyp  = dt_byte;
          cmd.Op1.addr  = sfr(code3);
          cmd.Op1.value = (code2>>4) & 0x07;
          jdisp(cmd.Op2, ua_next_byte(), 4);
          }
        } break;

      case 0x08:
      case 0x18:
      case 0x28:
      case 0x38:
      case 0x48:
      case 0x58:
      case 0x68:
      case 0x78:
        {
        //BF saddr.bit, $addr16   0000 1010      0 B2 B1 B0 1000  Saddr-offset   jdisp
        //BF PSW.bit,   $addr16   0000 1010      0 B2 B1 B0 1000  0001 1110       jdisp
        cmd.itype = NEC_78K_0S_bf;
        uchar code3=ua_next_byte();
        if ( code3==0x1E )
          {
          cmd.Op1.type  = o_bit;
          cmd.Op1.reg   = rPSW;
          cmd.Op1.value = (code2>>4)&0x07;
          jdisp(cmd.Op2, ua_next_byte(), 4);
          }
        else
          {
          cmd.Op1.type  = o_bit;
          cmd.Op1.dtyp  = dt_byte;
          cmd.Op1.addr  = saddr(code3);
          cmd.Op1.value = (code2>>4) & 0x07;
          jdisp(cmd.Op2, ua_next_byte(), 4);
          }
        } break;
Esempio n. 3
0
int main ( int argc, char** argv )
{
	int golombM;
	int quant;

	if (argc != 3 && argc != 5) {
		usage(argc, argv);
		return -1;
	}

	if (argc == 5) {
		golombM = std::atoi(argv[3]);
		quant = std::atoi(argv[4]);
	} else {
		golombM = GOLOMB_ENC_M;
		quant = QUANTIZATION;
	}

	std::string finname(argv[1]);
	std::string foutname(argv[2]);

	SFReader sfr(finname);
	BitStream bs(foutname, BitStream::WRITE);

	MonkeyCoder pc(quant);

	if (sfr.open()) {
		printf("Unable to open file %s for reading!\n", argv[1]);
		return -1;
	}

	if (bs.open()) {
		printf("Unable to open file %s for writing!\n", argv[2]);
		return -1;
	}

	bs.writeBits((uint32_t)sfr.getNFrames(),    32);
	bs.writeBits((uint32_t)sfr.getSamplerate(), 32);
	bs.writeBits((uint32_t)sfr.getChannels(),   32);
	bs.writeBits((uint32_t)golombM,             32);
	bs.writeBits((uint32_t)quant,               32);

	if (sfr.open()) {
		printf("Unable to open file %s for reading!\n", argv[1]);
		return -1;
	}

	for (uint32_t i = 0; i < sfr.getNFrames(); i++) {
		int16_t sample[2];
		int32_t diff[2];

		sfr.nextFrame(sample);
		pc.encode(sample, diff);

		Golomb::encode(golombM, diff[0], bs);
		Golomb::encode(golombM, diff[1], bs);
	}

	sfr.close();
	bs.close();

	printf("Done! Encoded %u frames.\n", sfr.getNFrames());
}