signed FlashSoftloader (struct plc * plc, uint32_t options)

{
	struct vs_module_spec vs_module_spec =
	{
		PLC_MODULEID_SOFTLOADER,
		0,
		0,
		0
	};
	ModuleSpec (&plc->SFT, &vs_module_spec);
	if (ModuleSession (plc, 1, &vs_module_spec))
	{
		return (-1);
	}
	if (ModuleWrite (plc, &plc->SFT, 0, &vs_module_spec))
	{
		return (-1);
	}
	if (ModuleCommit (plc, options))
	{
		return (-1);
	}
	return (0);
}
signed FlashParameters (struct plc * plc, uint32_t options)

{
	struct vs_module_spec vs_module_spec =
	{
		PLC_MODULEID_PARAMETERS,
		0,
		0,
		0
	};
	ModuleSpec (&plc->PIB, &vs_module_spec);
	if (ModuleSession (plc, 1, &vs_module_spec))
	{
		return (-1);
	}
	if (ModuleWrite (plc, &plc->PIB, 0, &vs_module_spec))
	{
		return (-1);
	}
	if (ModuleCommit (plc, options))
	{
		return (-1);
	}
	return (0);
}
Beispiel #3
0
signed FlashFirmware (struct plc * plc, uint32_t options) 

{
	struct vs_module_spec vs_module_spec [] = 
	{
		{
			PLC_MODULEID_PARAMETERS,
			0,
			0,
			0
		},
		{
			PLC_MODULEID_FIRMWARE,
			0,
			0,
			0
		}
	};
	ModuleSpec (&plc->PIB, &vs_module_spec [0]);
	ModuleSpec (&plc->NVM, &vs_module_spec [1]);
	if (ModuleSession (plc, (sizeof (vs_module_spec) / sizeof (struct vs_module_spec)), vs_module_spec)) 
	{
		return (-1);
	}
	if (ModuleWrite (plc, &plc->PIB, 0, &vs_module_spec [0])) 
	{
		return (-1);
	}
	if (ModuleWrite (plc, &plc->NVM, 1, &vs_module_spec [1])) 
	{
		return (-1);
	}
	if (ModuleCommit (plc, options)) 
	{
		return (-1);
	}
	return (0);
}