void print_decrypted(void)
{
	printf("Odszyfrowane dane (string)    : %s\n", szSecretData);
	printf("Odszyfrowane dane (hex)       : ");
	DUMP_HEX(szSecretData, sizeof(szSecretData));
	printf("\n");
}
void print_encrypted(void)
{
	printf("\nZaszyfrowane dane (hex)       : ");
	DUMP_HEX(szSecretData, sizeof(szSecretData));
	printf("\n\n");

}
void print_plaintext(void)
{
	// niezaszyfrowane dane
	printf("Niezaszyfrowane dane (string) : %s\n", szSecretData);
	printf("Niezaszyfrowane dane (hex)    :");
	DUMP_HEX(szSecretData, sizeof(szSecretData));
	printf("\n");
}
PUBLIC
void
Jdb_kern_info_cpu::dump_cp0_regs()
{
  Mword val;

  DUMP_CP0("EBase", read_c0_ebase(), val);
  DUMP_INT("Ebase.CPUNum", (val & 0x3ff));
  DUMP_CP0("EntryHi", read_c0_entryhi(), val);
  DUMP_HEX("EntryHi.ASID", (val & 0xff));
  DUMP_CP0("EPC", read_c0_epc(), val);
  DUMP_CP0("Status", read_c0_status(), val);
  DUMP_CP0("Cause", read_c0_cause(), val);
  DUMP_CP0("PRId", read_c0_prid(), val);
  DUMP_CP0("HWREna", read_c0_hwrena(), val);
  DUMP_CP0("Config", read_c0_config(), val);
  if (val & MIPS_CONF_M) {
    DUMP_CP0("Config1", read_c0_config1(), val);
    if (val & MIPS_CONF_M) {
      DUMP_CP0("Config2", read_c0_config2(), val);
      if (val & MIPS_CONF_M) {
        DUMP_CP0("Config3", read_c0_config3(), val);
        if (val & MIPS_CONF3_ULRI)
          DUMP_CP0("UserLocal", read_c0_userlocal(), val);
      }
    }
  }

  if (cpu_has_vz)
    DUMP_CP0("GuestCtl0", read_c0_guestctl0(), val);
  if (cpu_has_guestctl0ext)
    DUMP_CP0("GuestCtl0Ext", read_c0_guestctl0ext(), val);
  if (cpu_has_vz)
    DUMP_CP0("GTOffset", read_c0_gtoffset(), val);
  if (cpu_has_guestctl1) {
    DUMP_CP0("GuestCtl1", read_c0_guestctl1(), val);
    DUMP_HEX("GuestCtl1.ID", (val & GUESTCTL1_ID));
  }
  if (cpu_has_guestctl2) {
    DUMP_CP0("GuestCtl2", read_c0_guestctl2(), val);
    DUMP_HEX("GuestCtl2.VIP", (val & GUESTCTL2_VIP));
  }
}
Beispiel #5
0
int main() {

	kaco::Core core;
	const uint8_t node_id = 10;

	auto callback = [] (const uint8_t node_id) {
		PRINT("New device! ID = "<<(unsigned)node_id);
	};
	core.nmt.register_new_device_callback(callback);

	bool success = core.start(BUSNAME, BAUDRATE);
	if (!success) {
		ERROR("Starting core failed.");
		return EXIT_FAILURE;
	}

	std::this_thread::sleep_for(std::chrono::seconds(1));

	core.nmt.reset_all_nodes();

	std::this_thread::sleep_for(std::chrono::seconds(1));

	core.nmt.send_nmt_message(node_id,kaco::NMT::Command::start_node);

	std::this_thread::sleep_for(std::chrono::seconds(1));

	// set digital output
	core.sdo.download(node_id, 0x6200, 0x1, 1, {0x7F});

	std::this_thread::sleep_for(std::chrono::seconds(1));

	// get device type (usually expedited transfer)
	std::vector<uint8_t> device_type = core.sdo.upload(node_id,0x1000,0x0);
	for (uint8_t device_type_byte : device_type) {
		DUMP_HEX(device_type_byte);
	}
	
	std::this_thread::sleep_for(std::chrono::seconds(1));

	// get device name (usually segmented transfer)
	std::vector<uint8_t> device_name = core.sdo.upload(node_id,0x1008,0x0);
	std::string result(reinterpret_cast<char const*>(device_name.data()), device_name.size());
	PRINT("Device name: "<<result);

	std::this_thread::sleep_for(std::chrono::seconds(3));
	core.stop();

}
Beispiel #6
0
int main() {

	PRINT("This example runs a counter completely without SDO transfers.");
	PRINT("There must be a CiA 401 device which is configured to send 'Read input 8-bit/Digital Inputs 1-8'");
	PRINT("and 'Read input 8-bit/Digital Inputs 9-16' via TPDO1 and to receive 'Write output 8-bit/Digital Outputs 1-8' via RPDO1.");

	kaco::Master master;
	bool success = master.start(BUSNAME, BAUDRATE);
	if (!success) {
		ERROR("Starting master failed.");
		return EXIT_FAILURE;
	}

	std::this_thread::sleep_for(std::chrono::seconds(1));

	if (master.num_devices()<1) {
		ERROR("No devices found.");
		return EXIT_FAILURE;
	}

	size_t index;
	bool found = false;
	for (size_t i=0; i<master.num_devices(); ++i) {
		kaco::Device& device = master.get_device(i);
		device.start();
		if (device.get_device_profile_number()==401) {
			index = i;
			found = true;
			PRINT("Found CiA 401 device with node ID "<<device.get_node_id());
		}
	}

	if (!found) {
		ERROR("This example is intended for use with a CiA 401 device but I can't find one.");
		return EXIT_FAILURE;
	}

	kaco::Device& device = master.get_device(index);
	const auto node_id = device.get_node_id();
	// device.start(); // already started

	success = device.load_dictionary_from_library();
	if (!success) {
		ERROR("Specializing device failed.");
		return EXIT_FAILURE;
	}

	DUMP(device.get_entry("Manufacturer device name"));

	// TODO: first configure PDO on device side?

	device.add_receive_pdo_mapping(0x180+node_id, "Read input 8-bit/Digital Inputs 1-8", 0, 0); // offset 0,
	device.add_receive_pdo_mapping(0x180+node_id, "Read input 8-bit/Digital Inputs 9-16", 1, 0); // offset 1
	
	// transmit PDO on change
	device.add_transmit_pdo_mapping(0x200+node_id, {{"Write output 8-bit/Digital Outputs 1-8", 0, 0}}); // offset 0

	// transmit PDO every 500ms
	//device.add_transmit_pdo_mapping(0x20A, {{"write_output", 0, 0, 0}}, kaco::TransmissionType::PERIODIC, std::chrono::milliseconds(500));

	for (uint8_t i=0; i<10; ++i) {

		PRINT("Set output to 0x"<<std::hex<<i<<" (via cache!) and wait 1 second");
		device.set_entry("Write output 8-bit/Digital Outputs 1-8", i, 0, kaco::WriteAccessMethod::cache);
		std::this_thread::sleep_for(std::chrono::seconds(1));

		DUMP_HEX(device.get_entry("Write output 8-bit/Digital Outputs 1-8",0,kaco::ReadAccessMethod::cache));
		DUMP_HEX(device.get_entry("Read input 8-bit/Digital Inputs 1-8",0,kaco::ReadAccessMethod::cache));
		DUMP_HEX(device.get_entry("Read input 8-bit/Digital Inputs 9-16",0,kaco::ReadAccessMethod::cache));

	}

	master.stop();

}